今天在看到《Unix环境高级编程》里面说,execl()继承控制终端,不太明白这个是怎么回事,做了一个小实验。代码如下
testexec.c
1 #include <unistd.h>
2 #include <stdio.h>
3
4 int main(void)
5 {
6 close(0);
7 close(1);
8 close(2);
9
10 printf("haha\n");
11
12 int pid = fork();
13 if(pid)
14 {
15 printf("Father\n");
16 }
17 else
18 {
19 execl("./print", NULL);
20 }
21 }
print.c
1 #include <stdio.h>
2
3 int main(void)
4 {
5 printf("Wow...\n");
6 }
运行结果是,最后什么都没有输出