函数 —— fork()将运行着的程序分成2个(几乎)完全一样的进程
生活随笔
收集整理的这篇文章主要介绍了
函数 —— fork()将运行着的程序分成2个(几乎)完全一样的进程
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
UNIX及类UNIX(UNIX-like)系统中的分叉函数。返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。
调用fork之后,数据、堆、栈有两份,代码仍然为一份但是这个代码段成为两个进程的共享代码段都从fork函数中返回,箭头表示各自的执行处。当父子进程有一个想要修改数据或者堆栈时,两个进程真正分裂。
#include<sys/types.h>//对于此程序而言此头文件types.h用不到 #include<unistd.h> #include<stdio.h> #include<stdlib.h>int main(int argc,char *argv[])/*整数类型主函数*/ { pid_t pid=fork();/*传递参数*/ if(pid<0)/*如果(进程标记<0)*/ { fprintf(stderr,"错误!"); } else if(pid==0)/*否则如果(进程标记==0)*/ { printf("百度百科:这是子进程!"); exit(0); } else/*否则*/{ printf("百度百科:这是父进程!子进程的进程标记为=%d",pid); } //可能需要时候wait或waitpid函数等待子进程的结束并获取结束状态 exit(0); }注意!样例代码仅供参考,样例代码存在着父进程在子进程结束前结束的可能性。必要的时候可以使用wait或 waitpid函数让父进程等待子进程的结束并获取子进程的返回状态。
参考连接:https://baike.baidu.com/item/fork/7143171?fr=aladdin
总结
以上是生活随笔为你收集整理的函数 —— fork()将运行着的程序分成2个(几乎)完全一样的进程的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: sqlite库——C实现,给sqlite
- 下一篇: C语言——实现用链表存储学生信息,当输入