1 # include<stdio.h>
2 #include<stdlib.h>
3 #include<unistd.h>
4 #include<fcntl.h>
5 #include<sys/types.h>
6 #include<sys/stat.h>
7 #include<string.h>
8 int main()
9 {
10 pid_t id=fork();
11 if(id==0)
12 {
13 printf("child is running\n");
14 sleep(1);
15 char* env[]={"MYENV=/A/B/C/D/AAAA",NULL};
16 char* argv[]={"ls","-l","-n","-i",NULL};
17 // execl("/bin/ls","ls","-l","-n","-i",NULL);
18 // execlp("ls","ls","-l","-n","-i",NULL);
19 // execv("/bin/ls",argv);
20 // execvp("ls",argv);
21
22
23 // execle("./myenv","myenv",NULL,env);
24 execve("./myenv",argv,env);
25 printf("child id done\n"); //exec成功的话不执行此语句
26 exit(1);
27 }
28 else
29 {
30 pid_t ret=waitpid(id, NULL,0);
31 if(ret>0)
32 {
33 printf("father wait success\n"); }
34 else{
35 printf("child quit not normal\n");
36
37 } } return 0; }
下图就是execl execlp execv execvp的结果图
下图是execle execve的结果图