第八章 进程控制 exec函数
2014-08-04 16:39
351 查看
echoall.c:
exec.c:
jiang@AY140524110335068908Z:~/new_apue$ ./a.out
argv[0]:echoall
argv[1]:myarg1
argv[2]:MY ARG2
environ:
USER=unknown
PATH=/home/jiang/new_apue
jiang@AY140524110335068908Z:~/new_apue$ argv[0]:echoall
argv[1]:only 1 arg
environ:
REMOTEHOST=14.23.84.186
SHELL=/bin/bash
TERM=ansi
HUSHLOGIN=FALSE
USER=jiang
int main(int argc,char *argv[]) { int i; char **ptr; extern char **environ; for(i=0;i<argc;i++) { printf("argv[%d]:%s\n",i,argv[i]); } printf("environ:\n"); for(ptr=environ;*ptr!=0;ptr++) { printf("%s\n",*ptr); } exit(0); }
exec.c:
#include "apue.h" #include <sys/wait.h> char *env_init[]={"USER=unknown","PATH=/home/jiang/new_apue",NULL}; int main(void) { pid_t pid; if((pid=fork())<0) { err_sys("fork error"); } else if (pid == 0) { //child if(execle("/home/jiang/new_apue/echoall.o","echoall","myarg1", "MY ARG2",(char *)0,env_init)<0) { err_sys("excele error"); } } if(waitpid(pid,NULL,0)<0) { err_sys("wait error"); } if((pid=fork())<0) { err_sys("fork error"); } else if(pid==0) { // execlp("pwd","pwd",(char*)0); if(execlp("/home/jiang/new_apue/echoall.o","echoall","only 1 arg",(char* )0)<0) { err_sys("execlp error"); } } exit(0); }
jiang@AY140524110335068908Z:~/new_apue$ ./a.out
argv[0]:echoall
argv[1]:myarg1
argv[2]:MY ARG2
environ:
USER=unknown
PATH=/home/jiang/new_apue
jiang@AY140524110335068908Z:~/new_apue$ argv[0]:echoall
argv[1]:only 1 arg
environ:
REMOTEHOST=14.23.84.186
SHELL=/bin/bash
TERM=ansi
HUSHLOGIN=FALSE
USER=jiang
相关文章推荐
- 第八章 进程控制 fork函数
- APUE第八章 进程控制
- APUE读书笔记-第八章 进程控制
- apue第八章 进程控制(3) exec函数族
- 第八章 进程控制
- 第八章 进程控制 waitpid函数
- [APUE]第八章 进程控制
- 《unix环境高级编程》第二版 第八章 进程控制 知识点
- APUE 第八章 进程控制
- UNIX高级环境编程(10)进程控制(Process Control)- 竞态条件,exec函数,解释器文件和system函数
- 《APUE》笔记-第八章-进程控制
- 8.10 进程控制_exec函数
- 第八章 进程控制 wait函数
- [APUE]第八章 进程控制
- 进程控制之exec函数
- 第八章 进程控制
- 第八章:进程控制
- 《Unix高级环境编程》第八章 进程控制
- APUE第八章 进程控制
- apue第八章 进程控制(2)