博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UNIX环境高级编程8.10exec函数
阅读量:5144 次
发布时间:2019-06-13

本文共 1361 字,大约阅读时间需要 4 分钟。

 

 

 

 

 

// proc/exec1.c 8-8#include "apue.h"#include 
const char* env_init[] = { "USER=unknown", "PATH=/home/sunyj/apue/proc/", NULL };int main(void){ pid_t pid; if ((pid = fork()) < 0) { err_sys("fork error"); } else if (pid == 0) { /* specify pathname, specify environment */ if (execle("/home/sunyj/apue/proc/echoall", "echoall", "myarg1", "MY ARG2", (char *)0, env_init) < 0) { err_sys("execle error"); } } if (waitpid(pid, NULL, 0) < 0) { err_sys("wait error"); } if ((pid = fork()) < 0) { err_sys("fork error"); } else if (pid == 0) { /* specify filename, inherit environment */ if (execlp("echoall", "echoall", "only 1 arg", (char *)0) < 0) { err_sys("execlp error"); } } return 0;}

 

 

// proc/echoall.c 8-9#include "apue.h"int main(int argc, char *argv[]){    int			i;    char		**ptr;    extern char	**environ;    for (i = 0; i < argc; i++)		/* echo all command-line args */    {        printf("argv[%d]: %s\n", i, argv[i]);    }    for (ptr = environ; *ptr != 0; ptr++)	/* and all env strings */    {        printf("%s\n", *ptr);    }    return 0;}

 

我测试的结果是,execle可以正确执行,execlp报找不到echoall的错误,除非,我将echoall的路径在shell中加入环境变量PATH中,我不清楚是为什么。

 

转载于:https://www.cnblogs.com/sunyongjie1984/p/4277407.html

你可能感兴趣的文章
Hadoop分布式文件系统中架构和设计要点汇总
查看>>
cout和printf
查看>>
#C++PrimerPlus# Chapter11_Exersice4_mytimeV4
查看>>
iOS8 针对开发者所拥有的新特性汇总如下
查看>>
Jmeter + Grafana搭建实时监控可视化
查看>>
uCGUI字符串显示过程分析和uCGUI字库的组建
查看>>
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
01: socket模块
查看>>
mysql触发器
查看>>
淌淌淌
查看>>
MySQL-定时任务
查看>>
web页面实现指定区域打印功能
查看>>
使用PHP拆分中文字符串的方法(收藏) 小节
查看>>
android系统权限的管理
查看>>
win10每次开机都显示“你的硬件设置已更改,请重启电脑……”的解决办法
查看>>
VMware环境和Window环境进行网络连接的问题
查看>>