fork()函数
来源:互联网 发布:养生软件下载排行榜 编辑:程序博客网 时间:2024/06/09 17:07
函数原型:pid_t fork(void);
system,popen,exec都是通过运行指定进程,含路径
fork没有参数,是赋制进程,子进程和父进程执行位置和执行状态都一样。
fork:创建一个子程序,子进程执行当前程序的副本,返回值为子程序的PID
fork函数的特点:调用一次,返回”两次”
fork函数创建子进程后,父子进程并发执行
子进程是在fork()执行过程中产生,再接着子进程和父进程都执行完,都返回PID,但父子进程返回值不同,父进程返回子进程pid,子进程返回0,这是区分父子进程的原理。
一个父亲,多个孩子进程的框架结构
#include <stdio.h>#include <unistd.h>#include <sys/wait.h>int main(){ int i; pid_t pid;//一个父亲,多个孩子 for(i=0;i<3;i++)//i为几就产生几个进程//每个子进程i值不同 { pid=fork(); if(pid<0) perror("fork"); if(pid==0)//只有父进程能产生子进程,子进程不能产生子进程 break; } //*************************************************************** //给不同子进程派任务 switch(i)//0-4为子进程,5为父进程,共6个进程 { case 0: //0号子进程 { sleep(3); printf("i am 0\n"); } break; case 1: //1号子进程 { sleep(5); printf("i am 1\n"); } case 2: //父进程 { int ret; pid_t pid1; for(i=0;i<5;i++)//等5个子进程结束 { // wait(NULL); pid1=wait(&ret);//获取子进程的pid和返回值 printf("%d号子进程(PID:%d)执行完毕\n",WEXITSTATUS(ret),pid1); } } break; } return i;//返回编号}
阅读全文
0 0
- fork与fork函数
- fork函数
- fork 函数
- fork() 函数
- fork函数
- fork函数
- fork函数
- fork函数
- fork函数
- fork()函数
- fork函数
- fork()函数
- fork函数
- fork() 函数
- fork函数
- fork函数
- fork()函数
- fork函数
- OPENSTACK超售比例之VCPU
- redis-3.2.8
- mysql数据库恢复
- NSDecimalNumber的用法
- [LintCode 102] 带环链表(Python)
- fork()函数
- py http测试工具
- MyBatis 03
- JVM内存溢出基本思路
- Maven – 环境配置
- appscan使用指南
- 线程的终止stop与线程的中断interrupted
- 死锁
- ubuntu 设置网卡模式 混杂模式