没有合适的资源?快使用搜索试试~ 我知道了~
首页Linux中使用exec函数族详解及示例代码 | 嵌入式Linux应用开发篇 – 03
1.exec函数族 exec 为 execute(执行),exec 函数族用来替换调用进程所执行的程序,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行,替换前后进程的 PID 不会改变。 exec函数族中包括6个函数: #include int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char *arg, ...); int execle(const char *path, const char *arg,..., char * const en
资源详情
资源评论
资源推荐

Linux中使用中使用exec函数族详解及示例代码函数族详解及示例代码 | 嵌入式嵌入式Linux应用开发篇应用开发篇 – 03
1.exec函数族函数族
exec 为 execute(执行),exec 函数族用来替换调用进程所执行的程序替换调用进程所执行的程序,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行,替换前后进程的 PID 不
会改变。
exec函数族中包括6个函数:
#include
int execl(const char *path, const char *arg, ...);
int execlp(const char *file, const char *arg, ...);
int execle(const char *path, const char *arg,..., 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[]);
这些函数统称为exec函数族,只在参数存在差别,作用相同。
后缀l:使用 list 形式来传递新程序的参数,传给新程序的所有参数以可变参数的形式从 exec 给出,最后一个参数需要为最后一个参数需要为 NULL 以表示结束以表示结束;
后缀p:表示使用 filename 做参数,如果 filename 中包含“/”,则视为路径名,否则在 PATH 环境变量所指定的各个目录中搜索可执行文件;
后缀e:表示可以传递一个指向环境字符串指针数组的指针,环境数组需要以 NULL 结束;
后缀v:表示使用 vector 形式来传递新程序的参数,传给新程序的所有参数放入一个字符串数组中,数组以 NULL 结束以表示结束;
exec 函数族只有在出错的时候才会返回,如果成功,该函数无返回,否则返回-1。
2. execlp调用默认程序示例调用默认程序示例
/**
* @brief 使用execlp拉起默认程序的示例程序
* @author Mculover666
* @note 创建一个子进程,拉起默认ping程序执行
*/
#include
#include
#include
int main(void)
{
pid_t pid;
pid = fork();
if(pid < 0)
{
/* 创建子进程失败 */
printf("fork fail.");
return -1;
}
else if(pid == 0)
{
/* 子进程执行的程序 */
execlp("ping","ping","www.mculover666.cn","-c","4",NULL);
return 0;
}
else
{
return 0;
}
}
编译:
gcc 03-execlp_test.c -o 03-execlp_test.o
执行:
3. 移植到嵌入式移植到嵌入式Linux开发板上运行测试开发板上运行测试
① 使用交叉编译工具重新编译程序:
arm-none-linux-gnueabi-gcc 03-execlp_test.c -o 03-execlp_test_arm.o
② 基于NFS文件系统,将可执行文件传到开发板上
cp 03-execlp_test_arm.o /nfs_root/
③ 开发板上执行该程序测试,结果如下:



















weixin_38689824
- 粉丝: 6
- 资源: 948
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- ARM Cortex-A(armV7)编程手册V4.0.pdf
- ABB机器人保养总结解析.ppt
- 【超详细图解】菜鸡如何理解双向链表的python代码实现
- 常用网络命令的使用 ipconfig ping ARP FTP Netstat Route Tftp Tracert Telnet nslookup
- 基于单片机控制的DC-DC变换电路
- RS-232接口电路的ESD保护.pdf
- linux下用time(NULL)函数和localtime()获取当前时间的方法
- Openstack用户使用手册.docx
- KUKA KR 30 hA,KR 60 hA机器人产品手册.pdf
- Java programming with JNI
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0