Linux多进程——利用fork()函数进行多进程编程

来源:互联网 发布:星际2 天梯数据查询 编辑:程序博客网 时间:2024/05/29 12:57

 fork()函数是Linux系统中唯一可以创建一个新进程的方法。其新创建的进程称为子进程,原进程称为父进程。子进程将从父进程处继承了整个父进程的地址空间(包括进程上下文、代码段、进程堆栈、内存信息、打开的文件描述符、进程优先级、进程组号等)。

由于fork()函数所产生的子进程是完全复制的父进程,因此它们会运行同一个程序,父进程的代码从fork()函数的返回值开始分别在两个地址空间中同时运行,从而时两个进程分别获得其各自的fork()函数返回值,父进程返回值为子进程的进程号,子进程的返回值为0,所以可以通过判断fork()函数的返回值来确定该进程为父进程还是子进程。

fork()函数的语法如下:

头文件:#include<sys/types.h>   /*定义类型pid_t*/

                        #include<unisted.h>

函数原型: pid_t fork()
返回值:0  子进程;大于0的整数(子进程id,父进程);-1 出错

fork()函数的实例代码如下

#include <sys/types.h>#include <unistd.h>int main(){pid_t result;/*call fork() function*/result = fork();if(result == -1){printf("fork error\n");}else if(result == 0){printf("the return value is %d\n In child process!!\n my pid is %d\n",result,getpid());}else{printf("the returned valued is %d\n in father process!!\n my pid is %d\n",result,getpid());}return result;}
在Linux中对程序进行编译

gcc -wall fork.c -o fork

执行程序:

./fork

输出结果:











0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩生殖器痒经常用手抓怎么办 孩子在幼儿园生殖器官受伤怎么办? 被骗了3000块钱怎么办 小说 月经来了想体检怎么办 尿检的时候遇上月经期怎么办 消防兵改革那新兵怎么办 教师资格证体检有问题怎么办 检兵合格还在上学怎么办 运动后肌肉肿了怎么办 打架用力过猛肌肉疼痛怎么办 军检只要一项不合格怎么办 体检身高差一厘米怎么办 体检身高差两公分怎么办 体检身高差10厘米怎么办 孩子的爸爸总是打游戏怎么办 拉屎屁眼疼还有血怎么办 家里冼澡要等好多冷水怎么办 孕晚期小孩头大怎么办 报考警校体检不合格退回怎么办? 入职体检视力0.1怎么办 屁扒骨折疼要怎么办 宝宝发高烧怎么办能快速退烧 屁股上长了纹路怎么办 手机充电头歪了怎么办 屁股挠烂了化脓怎么办 手机充电那坏了怎么办 孩子在学校被老师冤枉怎么办 初中学校不好我该怎么办 天气太热屁股淹了怎么办 骑车骑的屁股疼怎么办 爬山时屁股摔紫青了怎么办 宝宝不肯脱裤子拉粑粑怎么办 国家对无地农民怎么办 生完孩子骨架变大怎么办 17岁长高很慢怎么办? 出月子腿着凉了怎么办 脚着凉了脚疼怎么办 腿着凉了特别疼怎么办 孩子骨龄大2两年怎么办 和人吃饭很尴尬怎么办 头不自觉向右偏怎么办