1. pid_t fork(void);
功能:创建父子进程
参数:无
返回值:成功:在父进程中:返回值为子进程的PID
在子进程中:返回值为0
失败:-1
注意:
1)fork函数是用来创建进程的,fork之后产生了两个进程,每个进程都会有返回值,
所以父进程中返回的是子进程的进程号(>0);在子进程中返回0
2)子进程几乎拷贝了父进程的全部内容。
包括代码、数据、系统数据段中的pc值、栈中的数据、父进程中打开的文件等;但它们的PID、PPID是不同的。
3)父子进程有独立的地址空间,互不影响;当在相应的进程中改变全局变量静态变量,都互不影响。
4)若父进程先结束,子进程成为孤儿进程被init进程收养(此时子进程的父亲就是init),子进程变成后台进程。(init进程号为1)
5)若子进程先结束,父进程如果没有及时回收,子进程变成僵尸进程(要避免僵尸进程产生)
2. pid_t getpid(void);
功能:得到正在调用此接口的进程的进程号
返回值:得到PID号
3. pid_t getppid(void);
功能:得到正在调用此接口的进程的父进程号
返回值:得到PID
4. pid_t wait(int *status) 头文件
功能:阻塞等待任意子进程的结束,回收资源
status是一个整型指针,指向的对