我前段时间看unix 编程,里面提到shell的编写, 作者说unix 命令在shell里面执行,是由shell进程fork一个进程去执行命令的, 而且当时我自己还写了个简单的shell,的确是这样, 问题是,为什么所有的子进程都属于INIT呢? 我刚在shell里执行一个脚本,发现它的父进程是init, 按照开始说的理论,应该是shell的进程才对啊。 谁知点一下?
unix进程专辑,介绍unix进程的各个方面,主要内容来源于W. Richard Stevens和Stephen A. Rago的经典作:APUE(Advanced Programming in the unix® Environment: Second Edition)。包括如下几个部分: 本文来自Chinaunix博客,如果查看原文请点:http://blog.chinaunix.net/u1/53238/showart_1915831.html
就是unix高级环境编程的第一章的一个例子。 main() { while(fgets(buf,1024,stdin)!=NULL) { if(pid = fork()<0) printf("error..."); printf("pid=[%d]",pid); if(pid == 0) printf("ok..."); } exit(0); } 有一点不太明白,就是第二个printf()为什么会运行两遍???而且都是pid=0!!!谢谢各位大侠...