linux exec函数怎么使用?linux进程中exec函数族的使用
广东IT优就业
在linux进程中通常使用fork函数来创建父子进程,虽然fork函数采用的是写实拷贝技术,但是当创建的子进程并不想继续与父进程相关的操作时那些拷贝的内容就纯粹属于浪费,那么一个子进程怎样变成一个全新的进程,此时exec函数族的函数就派上用场了。
exec函数族提供了一种在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段。在执行完之后,原调用进程的内容除了进程号外,其他全部都被替换了。
exec函数族的函数原型如下:
int execl(const char *path, const char *arg, ...);
int execv(const char *path, char *const argv[]);
int execle(const char *path, const char *arg, ..., char *const envp[]);
int execlp(const char *file, const char *arg, ...);
int execvp(const char *file, char *const argv[]);
int execve(const char *path, char *const argv[], char *const envp[]);
exec函数族共有6个函数,其中的5个是库函数,只有execve是系统调用。下边来介绍函数名字中的’l’, ‘p’, ‘e’, ‘v’的含义。
广东IT优就业
‘l’表示传递的参数是以列表形式出现即分开的,需要一个一个的传递,比如:execl(“/bin/ps”, “ps”, “ajx”, NULL), 其中第一个参数代表传递的一个要执行的程序的路径,第二个参数必须和第一个参数的文件保持一致,后边的 ajx,NULL都是参数,而且最后一个参数必须是NULL。
‘v’参数表示函数传递的参数是以组合形式的传递而不用一个一个的传递比如:char *buf[] = {“ps”, “ajx”, NULL}; execv(“/bin/ps”, buf),其中buf这个指针数组包含了需要传递参数并且最有一个参数是NULL。
‘p’参数表示exec函数要传递可执行文件的名字,不需要传递文件路径,在执行时会从环境变量中来搜索执行,比如:
execp(“ps”, “ps”, “ajx”, NULL);
‘e’参数表示传递给新进程的环境变量,比如:
char *buf[] = {“PATH=/usr/bin”, NULL};
execle(“./test”, NULL, buf);那么在新的进程中环境变量PATH就变成/usr/bin下的内容了。
exec函数族可以通过不同的参数组合来运行一个新进程,只不过不同组合传递参数的方法和意义不同而已,只要掌握明白l, p, v, e的意义就可以搞定了。
精彩IT内容推荐:
带你打开世界第一编程语言的大门:http://www.ujiuye.com/zt/java/?wt.mc_id=17009338
广东IT优就业
- 02-16导致手发麻的原因有哪些?手经常发麻大多是这3种疾病所致
- 12-1427层的高层楼房哪层最便宜:专家辟谣17层以上空气最好
- 02-25最简单的冰皮月饼怎么做的?简单美味的奶黄馅冰皮月饼
- 12-08长沙智慧电网,湖南移动助建全球首张全程全网智慧电力专网
- 01-01本田冠道在suv中的档次 中型SUV,配1.5TCVT
- 09-13cba篮筐高度是多少 篮球场基本尺寸和篮筐标准高度
- 09-16你是我的阳光英文歌歌词:你是我的阳光
- 09-30各种木耳怎么区分好坏?如何区分木耳的好坏牢记这几点
- 11-25液压支架操作与检修:三一重装液压支架检修安全指南
- 03-17抖音梯子是什么意思?抖音开龙脊是什么梗什么意思
- 05-16高尔夫380tsi gti原厂声浪:钢炮粉必冲大众发布高尔夫GTI
- 04-20公租房和房改房有什么不同?二次房改商品房与公租房并举
- 12-29大连金石滩景点介绍:大连景点丨金石滩生命奥秘博物馆
- 09-24红米note 7二手机值得吗?红米NOTE,7太强千元机真的没有能打的
- 11-27女子买二手车结果嫁给前男车主:和老公存款30万买了辆二手车
- 04-03春节菜谱大全100道家常菜 春节过后教你19道清淡的家常菜
热门
推荐
- 1前列腺炎的症状表现357
- 2糖尿病的日常饮食原则148
- 3丰鱼岩交通指南429
- 4冲刺中考黑板报内容429
- 5海南2020年8月证券从业资格考试准考证打印时间为考前3天212
- 6心无比宁静作文300字,宁静作文500字478
- 7最新流行经典励志歌曲有哪些355
- 8大二辅导员工作计划299