手机
当前位置:查字典教程网 >编程开发 >C语言 >使用代码验证linux子进程与父进程的关系
使用代码验证linux子进程与父进程的关系
摘要:复制代码代码如下:/********basic.c********/#include"basic.h"pid_tFork(void){pid...

复制代码 代码如下:

/******** basic.c ********/

#include "basic.h"

pid_t Fork(void)

{

pid_t pid = fork();

if (pid < 0) {

fprintf(stderr, "Fork error: %sn", strerror(errno));

exit(0);

}

return pid;

}

复制代码 代码如下:

********** basic.h ***********

#ifndef __CSAPP_BASIC_H

#define __CSAPP_BASIC_H

#include <stdio.h>

#include <errno.h>

#include <stdlib.h>

#include <signal.h>

#include <unistd.h>

#include <string.h>

/* function definition concerned with basic.c */

pid_t Fork();

#endif

复制代码 代码如下:

******* fork.c *********

#include "basic.h"

int main()

{

int pid = Fork();

int x = 2;

if (pid == 0) {

printf("child: pid = %d, ppid = %d, x = %dn", getpid(), getppid(), ++x);

sleep(3);

printf("child: pid = %d, ppid = %d, x = %dn", getpid(), getppid(), ++x);

exit(0);

}

printf("parent: pid = %d, ppid = %d, x = %dn", getpid(), getppid(), --x);

}

通过 gcc fork.c basic.c -o fork 编译即可的 fork 程序。 运行 ./fork

可以看出父进程首先退出,退出前child的PPID为12256, 退出后子进程的PPID变为了 1.说明父进程退出后的子进程由 init 超级进程1领养。而该进程是不绝不会退出的。

【使用代码验证linux子进程与父进程的关系】相关文章:

如何用C语言去除字符串两边的空字符

使用C语言实现CRC校验的方法

使用VC6.0对C语言程序进行调试的基本手段分享

C++输入一个字符串,把其中的字符按照逆序输出的两种方法解析

对C语言中sizeof细节的三点分析介绍

c语言中十六进制转二进制显示的实现方法

linux下access函数的用法介绍

c++基础语法:普通继承

C++中一维数组与指针的关系详细总结

C 转移表/转换表的深入分析

精品推荐
分类导航