unix学习笔记---解释器文件(interpreter file)
来源:互联网 发布:linux c语言遍历目录 编辑:程序博客网 时间:2024/06/05 08:25
鉴于世风不古,在讲正题前,先假设个场景:小明在马路边捡到一分钱,不知道怎么办,就打电话给114,114把电话转接给了警察局,把小明的情况告诉了警察叔叔,由警察叔叔来处理。
进入正题:解释器文件就是114,而警察局警察叔叔就是指定的解释器。这样做的好处就是可以在解释器文件里指定解释器,来对相应的场景情况进行相应的处理,比如若我是114,我可以选择把小明的钱直接密下。(这追求。。。)。
除了系统中在bin目录下设定好的解释器,可以自己编写解释器,其实就是程序。具体实例和步骤如下:
本例所有程序在自定义的工作目录 /home/wwe/code/interpreter下完成。
1.编写自己的解释器:
1.1 文件名为echoarg.c
#include <stdio.h> //function: print out all the args int main(int argc,char *argv[]) { int i; for(i = 0; i < argc;i++) printf("arg[%d]: %s\n",i,argv[i]); return 0; }
1.2 编译:
1.3 将生成的a.out更名为 echoarg,得到了自己定义的解释器。
2.创建解释器文件--interp
2.1 新建文本文档,命名为interp
2.2 在文件中写入解释器所在的位置
#! /home/wwe/code/interpreter/echoarg
2.3 查看、更改权限:
[root@localhost interpreter]# ll -rw------- 1 root root 37 Aug 23 00:54 interp
可见没有执行权限,更改。
[root@localhost interpreter]# chmod 777 interp1 -rwxrwxrwx 1 root root 38 Aug 23 00:27 interp
3.测试:新建文件interpreter.c
#include <unistd.h>#include <stdio.h>int main(){ pid_t pid; int status; status = execl("/home/wwe/code/interpreter/interp1","interp1","myarg1","myarg2",(char*)0); if(status < 0) printf("execl_err: %d\n",status); return 1;}
结果:
[root@localhost interpreter]# ./a.out arg[0]: /home/wwe/code/interpreter/echoargarg[1]: /home/wwe/code/interpreter/interp1arg[2]: myarg1arg[3]: myarg2
在解释器文件中加入可选参数:
#! /home/wwe/code/interpreter/echoarg "I come from interp1 file"
结果:
[root@localhost interpreter]# ./a.out arg[0]: /home/wwe/code/interpreter/echoargarg[1]: "I come from interp1 file"arg[2]: /home/wwe/code/interpreter/interp1arg[3]: myarg1arg[4]: myarg2
- unix学习笔记---解释器文件(interpreter file)
- 解释器文件(interpreter file)
- 设计模式学习笔记十六(Interpreter解释器模式)
- 解释器文件(Interpreter Files)
- Interpreter(解释器)
- 设计模式学习笔记——解释器(Interpreter)模式
- [Python学习]解释器Interpreter
- 解析器文件--Interpreter File
- 设计模式学习笔记(十七)——Interpreter解释器
- 设计模式学习笔记--解释器模式Interpreter与访问者模式Visitor(Java版)
- 解释器模式(Interpreter)
- Interpreter(解释器模式)
- 解释器模式(Interpreter)
- Interpreter(解释器)模式
- 解释器模式(Interpreter)
- 解释器(interpreter)模式
- 解释器模式(Interpreter)
- 解释器模式(Interpreter)
- 完美解决IE6不支持position:fixed
- Java学习笔记——接口
- 当导入一个工程时出现的Library包的问题
- 网络爬虫--之爬起校招信息代码
- android SQLiteDatabase attempt to re-open an already-closed object:
- unix学习笔记---解释器文件(interpreter file)
- Android应用自动更新功能的代码实现
- Erlang编程实战2
- IE7下当position:fixed遇到text-align:center的解决方法
- hdu4699Editor
- Hibernate Session篇--Hibernate的缓存及对象的状态
- Flex textInput图角特效
- Invalid project description
- C++11 理解 (十九) 之 使用或禁用对象的默认函数