|
|
显示test1.c源代码
[root@localhost root]# cat test1.c
#include "selfdefine.h"
int main()
{
int filedes,pid;
char *filename;
close(1);
filedes=open("linjunjie",O_RDWR|O_CREAT,0777);
fprintf(stdout,"I love you:parapid1\n");
if((pid=fork())==0)
{
fprintf(stdout,"I love you:childpid\n");
exit(0);
}
fprintf(stdout,"I love you:parapid2\n");
}
运行由该源代码编译过的执行文件
[root@localhost root]# ./test
显示linjunjie文件内容:
[root@localhost root]# cat linjunjie
I love you:parapid1
I love you:childpid
I love you:parapid1
I love you:parapid2
疑问:为什么显示出来的结果不是
I love you:parapid1
I love you:childpid
I love you:parapid2
怎么多了一行I love you:parapid1,莫非这是由创建的子进程输出的
子进程应该是从fprintf(stdout,"I love you:childpid\n");开始执行,exit(0);退出
怎么可能跑到fprintf(stdout,"I love you:parapid1\n");执行语句去执行。 |
|