1893|3

164

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

迅为i.MX6ULL终结者进程基础 exec函数族 [复制链接]

用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序,该子进程被新的程序替换,改变地址空间,进程映像和一些属性,但是pid号不变。
execve():
#include
int execve(const char *filename, char *const argv[], char *const envp[]);
参数含义:
filename:路径名,表示载入进程空间的新程序路径。
argv[]:命令行参数,argv[0]为命令名。
envp[]:新程序的环境变量。
返回值:成功时不会返回,使用时不用检查返回值,可通过errno检查。
以下函数都是根据execve实现:
int execl(const char *path, const char arg, …/ (char *) NULL */);
int execlp(const char *file, const char arg, …/ (char *) NULL */);
int execle(const char *path, const char arg, …/, (char *) NULL, char * const envp[] */);
int execv(const char *path, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[],char *const envp[]);
实验代码:
创建子进程,子进程使用execl调用ls查看当前目录下的文件。
exec.c:
使用execl调用shell命令查看文件信息。


执行结果:

Linux系统基于这些函数实现了“popen”,“system”等函数,这些函数能够直接调用shell等函数。

此帖出自ARM技术论坛

最新回复

exec家族学习unix可是一只拦路虎,各种这种继承那种不继承的点太多了。   详情 回复 发表于 2021-3-15 23:27
点赞 关注
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

为什要pid号不变,代码完成的什么功能,或能否解释一下

此帖出自ARM技术论坛
 
 
 

回复

1704

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 

可以用execl调用shell命令 比较爽

此帖出自ARM技术论坛
 
 
 

回复

7671

帖子

2

TA的资源

五彩晶圆(高级)

4
 

exec家族学习unix可是一只拦路虎,各种这种继承那种不继承的点太多了。

此帖出自ARM技术论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表