首先我们来介绍一下fork函数的创建,他引用了#include<unistd.h>这个头文件,用pid_t fork(void)进行创建。下面来介绍几种结束进程的方法:
fork函数的特点是调用一次返回两次。子进程返回0,父进程返回子进程的ID。
为什么父子进程会这样返回呢?
子进程返回0的理由是:一个进程只有一个父进程,所以子进程总是可以通过调用getppid()来访问父进程的ID,另外,进程ID 0 总是由内核交换进程使用,所以一个子进程的进程ID不可能为0。
父进程返回子进程ID的理由是:一个进程可以有多个子进程,但是没有一个函数可以返回其所有子进程的ID。
这里还涉及到printf输出缓冲区的问题。输出时先放在缓冲区,遇到下面四种情况才会输出:
1、遇到“\n”;
2、fflush(stdout);
3、程序结束(exit或return);
4、缓冲区满。
下面介绍两种有无换行符的函数输出结果的区别
(1)有换行符冲洗时<