#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
int _num=8;
if ((pid = vfork()) < 0) { //创建子进程失败
perror("vfork is failed");
exit(1);
} else if (pid == 0) { //运行时子进程
printf("this is child process\n");
_num++;
printf("the num is :%d\n",_num);
exit(0);
} else { // >0 vfork()返回值是子进程pid
printf("this is parent process\n");
_num++;
printf("the num is :%d\n",_num);
}
return 0;
}
运行结果:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
int _num=8;
if ((pid = fork()) < 0) {
perror("fork is failed");
exit(1);
} else if (pid == 0) {
printf("this is child process\n");
_num++;
printf("the num is :%d\n",_num);
exit(0);
} else {
printf("this is parent process\n");
_num++;
printf("the num is :%d\n",_num);
}
return 0;
}
运行结果:
相关推荐
Linux 系统中通过 fork/vfork 系统调用来创建新进程。本文将介绍如何使用 fork/vfork 系统调用来创建新进程并使用 exec 族函数在新进程中执行任务。 fork 系统调用 要创建一个进程,最基本的系统调用是 fork: # ...
本文分享了Linux vfork与fork简单对比分析,分享给大家,具体如下: fork相关问题: 一、fork基础了解 fork作用为创建一个子进程,在使用了fork命令后,内核会分配新的内存块和数据结构给子进程,并且将父进程的...
4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 ...
详细的描述linux系统调用fork、vfork、clone在内核中的实现,既有详细文字描述又有全部的源码加注释,有助于深入理解linux进程地址空间
4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 文件系统 ...
4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作
系统调用函数fork()是创建一个新进程的方式,当然vfork()也可以创建进程,但是实际上其还是调用了fork()函数。fork()函数是Linux系统中一个比较特殊的函数,其一次调用会有两个返回值,下面是fork()函数的声明: ...
4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 文件...
4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 文件...
4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 文件系统 ...
4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 文件系统 ...
3,要求分别用fork和vfork创建子进程。 实验五 创建子进程一,在子进程中递归打印/home目录中的内容(用exec系列函数调用第二次实验中的代码完成此功能); 1.子进程结束的时候完成以下功能: 打印字符...
sfork是Linux上新系统调用的原型,它为启动进程提供了同步的单线程接口。 sfork可以看作是vfork一种变体,它做了使vfork实际上有用和可用的最少工作量。 尤其是, sfork消除了vfork在子进程中可以执行的所有传统...
下图示出了系统V和4.XBSD的最近进展情况。 4.XBSD是由加州大学贝克莱分校计算机系统研究组开发的。该研究组也发布BSD NET1和BSD NET2版,它们包含了4.XBSD系统公众可用源代码。SVRX是AT& T的系统V的简称。XPG3是...
1.11 系统调用和库函数 1.12 小结 习题 第2章 UNIX标准化及实现 2.1 引言 2.2 UNIX标准化 2.2.1 ISO C 2.2.2 IEEE POSIX 2.2.3 Single UNIX Specification 2.2.4 FIPS 2.3 UNIX系统...
1.11 系统调用和库函数16 1.12 小结17 习题18 第2章unix标准化及实现19 2.1 引言19 2.2 unix标准化19 2.2.1 iso c 19 2.2.2 ieee posix 20 2.2.3 single unix specification 25 .2.2.4 fips 26 2.3 unix...
1.11 系统调用和库函数16 1.12 小结17 习题18 第2章unix标准化及实现19 2.1 引言19 2.2 unix标准化19 2.2.1 iso c 19 2.2.2 ieee posix 20 2.2.3 single unix specification 25 .2.2.4 fips 26 2.3 unix...
1.11 系统调用和库函数 16 1.12 小结 17 习题 18 第2章 UNIX标准化及实现 19 2.1 引言 19 2.2 UNIX标准化 19 2.2.1 ISO C 19 2.2.2 IEEE POSIX 20 2.2.3 Single UNIX Specification 25 2.2.4 FIPS...
1 1.1 引言 1 1.2 UNIX体系结构 1 1.3 登录 1 1.4 文件和目录 3 1.5 输入和输出 6 1.6 程序和进程 8 1.7 出错处理 10 1.8 用户标识 12 1.9 信号 14 1.10 时间值 15 1.11 系统调用和库函数 ...
1.11 系统调用和库函数 16 1.12 小结 17 习题 18 第2章 UNIX标准化及实现 19 2.1 引言 19 2.2 UNIX标准化 19 2.2.1 ISO C 19 2.2.2 IEEE POSIX 20 2.2.3 Single UNIX Specification 25 2.2.4 FIPS...