正文
1.Linux进程--进程标识号
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
函数原型
pid_t fork(void);
fork的奇异之处在于它被调用一次,却返回两次,它可能有三种不同的返回值:
1、在父进程中。fork返回新创建的子进程的PID
2、在子进程中,fork返回0。
3、假设出现错误,fork返回一个负值。
用途:
1、一个进程希望复制自身。从而父子进程能同一时候运行不同段的代码。
2、进程想运行另外一个程序
#include <sys/types.h>
#include <unistd.h>
int main(){
pid_t pid;
/*此时仅有一个进程*/
pid = fork();
/*此时已有两个进程在同一时候运行*/
if( pid < 0)
printf("error in fork!\n");
else if(pid == 0)
printf("I am the child process, ID is %d\n",getpid());
else
printf("I am the parent process, ID is %d\n",getpid());
return 0;
}
在 pid = fork() 之前,仅仅有一个进程在运行,但在这条语句之后。就变成两个进程在运行了,这两个进程共享代码段。将要运行的下一条语句就是 pid = fork() 之后的语句。两个进程中,原来就存在的那个进程被称作为”父进程”,新出现的那个进程被作为”子进程”,父子进程的差别在于进程标识符(PID)不同。
子进程的数据空间、堆栈空间都会从父进程得到一个拷贝,而不是共享。
pid_t vfork(void);
1、在父进程中,fork返回新创建的子进程的PID
2、在子进程中。fork返回0。
3、假设出现错误,fork返回一个负值。
用途:
用vfork创建的进程主要目的是用exec函数族运行另外的程序,与fork的第二个用途同样
fork 和 vfork 的差别
fork:子进程拷贝父进程的数据段。堆栈。
vfork:子进程与父进程共享数据段,堆栈。
fork:父、子进程的运行次序不确定
vfork:子进程先运行,父进程后运行
阅读全文
版权声明:本文为博主原创文章。未经博主同意不得转载。
- 本文已收录于下面专栏:
[startarticlecolumns]
[endarticlecolumns]
相关文章推荐
-
Linux C编程--进程介绍1--进程的创建
这篇文章介绍的内容包含
1.Linux进程--进程标识号
2.进程控制--进程创建1.Linux进程--进程标识号
进程(Process)是一个程序在其自身的虚拟地址空间...
- DLUTBruceZhang
- 2013年03月02日 19:46
- 2239
-
Linux C进程与多线程入门—(1)创建进程
本文出自http:http://www.wenbanana.com/?p=351稻草人博客,欢迎訪问。进程和程序的差别
进程和程序的差别能够理解为,进程是活动的程序,而程序是一个代...
- wen294299195
- 2013年01月28日 15:14
- 2031
-
LINUX shell和进程创建
一、在LINUX系统中须要用到shell来执行命令。那么shell究竟是什么?
维基百科:Unix shell也叫做命令行界面,它是Unix操作系统下传统的用户和计算机的交互界面。用户...- mxg1991
- 2014年04月28日 21:25
- 1298
-
linux C 守护进程及其创建
涉及的概念:
守护进程:在linux或者unix操作系统中在系统引导的时候会开启非常多服务,这些服务就叫做守护进程。为了添加灵活性,root能够选择系统开启的模式。这些模式叫做执行级别。每一种执行级别以...- u010927811
- 2013年07月24日 11:10
- 814
-
Linux C创建守护进程(daemon)及终端相关概念
引言
所谓守护进程(daemon),是不具备控制终端的,经常是在系统引导装入时启动,仅在系统关闭时才终止,输出的报告信息一般在日志文件。守护进程没有控制终端通常源...
- Jammg
- 2016年04月06日 12:13
- 898
广告位:PC端-博客详情通栏7(feed流)-808*120
-
linux c之创建进程fork和vfork函数之间的差别
1、函数简单介绍
1)、得到当前的进程idpid_t getpid();
2)、fork函数
要创建进程。必须调用fork函数, 系统调用for...- u011068702
- 2017年01月12日 20:36
- 415
-
linux c之管道的介绍、创建关闭和简单读写(父进程向子进程写入数据)
1、管道介绍、
进程间通信的几种主要手段中。当中管道和有名管道是最早的进程间通信机制之中的一个,管道可用于具有亲缘关系进程间的通信。有名管道克服了管道没有名字的限制,因此。除具
...
- u011068702
- 2017年02月07日 20:01
- 1217
-
Linux C编程--进程介绍1--进程的创建
这篇文章介绍的内容包含1.Linux进程--进程标识号
2.进程控制--进程创建
1.Linux进程--进程标识号
进程(Process)是一个程序在...
- oLinXi1234567
- 2014年04月23日 12:24
- 237
-
Linux C进程与多线程入门—(1)创建进程
本文出自http:http://www.wenbanana.com/?p=351稻草人博客。欢迎訪问!进程和程序的差别
进程和程序的差别能够理解为,进程是活动的程序。而程序是一个代...
- wen294299195
- 2013年01月28日 15:14
- 2031
-
Linux c进程管理—创建进程 system、execl、execlp、fork
Linux c 进程管理:
1. 创建进程:
system函数:
int system(const char*filename);
...- Y_23k_bug
- 2013年08月10日 21:56
- 6669
-
u011641885
+关注
- 原创
- 307
- 粉丝
- 38
- 喜欢
- 2
- 码云
u3032528
他的最新文章
很多其它文章
- Linux 程序设计中由线程使用不当引起的内存泄露
- 挂载 4G 网卡上网
- doxygen 配置说明
- 搭建 openwrt 本地源
- openwrt 更改默认固件大小
文章分类
-
Linux C++
3篇
-
Linux
78篇
-
游戏开发相关
1篇
-
数据库
7篇
-
虚拟机
11篇
-
Shell 脚本
15篇
-
linux命令
51篇
-
UNIX环境高级编程源程序整理与分析
6篇
-
OpenWrt
41篇
-
网络相关
7篇
-
Makefile学习整理
7篇
-
Perl
11篇
-
Linux C
72篇
-
查看电路图的方法
1篇
-
S3C2440
12篇
-
HTML
7篇
-
RHCE
12篇
展开
[StartShowSelfColumn]
[EndShowSelfColumn]
文章存档
-
2017年9月
1篇
-
2016年10月
1篇
-
2016年3月
1篇
-
2016年1月
7篇
-
2015年12月
13篇
-
2015年11月
12篇
-
2015年10月
15篇
-
2015年9月
27篇
-
2015年8月
32篇
-
2015年7月
70篇
-
2015年6月
49篇
-
2015年5月
45篇
-
2015年4月
26篇
-
2015年3月
9篇
-
2014年9月
1篇
展开
他的热门文章
-
[StartHotArticles]
-
Linux下/etc/shadow文件
10619
-
linux 清除 arp 缓存
7890
-
linux 命令之jq
7889
-
ubuntu 安装libcurl库
7536
-
openwrt U盘热插拔自己主动挂载
5790
[EndHotArticles]
[startcustom]
[endcustom]
广告位:PC端-博客详情右側视窗2(feed流)-300*300
联系我们
-
v=3&uin=2431299880&site=qq&menu=yes" target="_blank">
站点客服 -
微博客服 -
webmaster@csdn.net -
400-660-0108
京ICP证09002463号
关于|招聘|广告服务
Copyright © 1999-2018
CSDN.NET, All Rights Reserved