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是一个整型指针,指向的对
本文详细介绍了Linux下使用fork创建子进程的过程,包括fork函数的返回值、子进程与父进程的差异、getpid和getppid获取进程ID、wait和waitpid等待子进程结束以及exit和_exit的区别。示例代码展示了如何使用fork创建子进程,并通过wait获取子进程状态。
最低0.47元/天 解锁文章
2585

被折叠的 条评论
为什么被折叠?



