进程创建fork与vfork,孤儿进程,僵尸进程
来源:互联网 发布:2皇冠淘宝店铺转让 编辑:程序博客网 时间:2024/05/19 19:41
# include <stdio.h># include <sys/types.h># include <unistd.h># include <stdio.h>int main(void){pid_t pid;if (-1 == (pid = fork())) {perror("fork");return -1;}else if(0 == pid) //创建了一个子进程,该子进程几乎拷贝了父进程的全部内容,单两个进程中的变量互不硬性//孤儿进程 一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程( 进程号为1)所收养,并由init进程对它们完成状态收集工作。//僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程{ printf("child process, return value is %d, PID is %d, PPID is %d\n", pid, getpid(), getppid());}else{ printf("parent process, return value is %d, PID is %d, PPID is %d\n", pid, getpid(), getppid());}return 0;}1. fork ():子进程拷贝父进程的数据段,代码段
vfork ( ):子进程与父进程共享数据段
2. fork ()父子进程的执行次序不确定
vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec
或exit 之后父进程才可能被调度运行。
3. vfork ()保证子进程先运行,在她调用exec 或exit 之后父进程才可能被调度运行。如果在
调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。
0 0
- 进程创建fork与vfork,孤儿进程,僵尸进程
- 僵尸进程与孤儿进程
- 僵尸进程与孤儿进程
- 僵尸进程与孤儿进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 僵尸进程与孤儿进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- 孤儿进程与僵尸进程
- K-Means聚类MATLAB实现
- 初学AngularJs路由(二):在路由中传递参数
- linux cd -P 以物理路径进入
- 泛型获取命名空间的例子
- JAVA SSH ----Spring切面编程
- 进程创建fork与vfork,孤儿进程,僵尸进程
- android自定义圆弧进度条,可拖拽的progressBar
- spring中@value注解需要注意
- C语言基本算法--求最大公因数和最小公倍数
- python flask make_response的应用示例
- hive 调优 总结大全
- JVM的类加载机制
- C#定时器(Timer)
- 智能搜索