Print argv and environ with fork .
2015-10-27 11:21
288 查看
The comdination of 8_17 and 8_16
The source code of 8_17.c
cat -n 8_17.c1 #include "apue.h"
2
3 int main(int argc, char * argv[])
4 {
5 int i;
6 char **envp;
7 extern char **environ;
8
9 for(i = 0; i < argc; ++i){
10 printf("argc[%d]:%s\n",i,argv[i]);
11 }
12
13 for(envp = environ; *envp != NULL; ++envp){
14 printf("%s\n",*envp);
15 }
16 exit(0);
17 }
The correction of 8_16.c
<bldc:/home/tingbinz/apue.3e/SBSCODE/8>R*_*G:vim 8_16.c#include "apue.h"
#include <sys/wait.h>
char *env_init[] = {"USER=unknown","PATH = /tmp",NULL };
int main()
{
pid_t pid;
if ((pid = fork()) < 0){
err_sys("fork error");
}
else if (pid == 0){
if (execle("/home/tingbinz/bin/echoall","echo","ls",(char *)0,env_init) < 0)
err_sys("execle errpr");
}
if (waitpid(pid,NULL,0) < 0)
err_sys("waitpid error");
if ((pid = fork()) < 0)
err_sys("fork error");
else if (pid == 0){
if(execlp("echoall","/tmp","8_16.c",(char *)0) < 0)
err_sys("fork error");
}
return 0;
}
~
~
~
~
"8_16.c" 28L, 539C written
The result:
<bldc:/home/tingbinz/apue.3e/SBSCODE/8>R*_*G:./execelpargc[0]:echo
argc[1]:ls
USER=unknown
PATH = /tmp
<bldc:/home/tingbinz/apue.3e/SBSCODE/8>R*_*G:argc[0]:/tmp
argc[1]:8_16.c
_=./execelp
相关文章推荐
- HTML5 规范
- Android 学习 之 资源文件 动态修改strings.xml中的字符资源
- jquery实现的V字形显示效果代码
- Android 蓝牙开发基本流程
- 3. Python中的序列——字符串
- LeetCode题解——Factorial Trailing Zeroes
- C++中的函数重载
- 编译LTIB遇到的问题及解决的方法
- windows配置eclipse+cakephp开发
- 2016VMware研发笔试题回忆总结
- linux系统启动过程(详解)
- 关于java异常调用
- Ajax学习总结
- Mysql配置优化浅谈
- 关于斜视椎体的矩阵上解释
- 将图片写入相册
- android stadio点滴1
- 那些不让客户察觉到但可以把oracle拖慢的参数
- .NET MVC4 用HttpClient后台post 请求webapi
- [转]推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler