• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 使用代码验证linux子进程与父进程的关系

使用代码验证linux子进程与父进程的关系

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了linux父进程子进程,linux 查看父进程,linux 查询父进程,linux父进程,linux进程间通信代码等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

pid_t Fork(void)
{
    pid_t pid = fork();
    if (pid < 0) {
        fprintf(stderr, "Fork error: %s\n", strerror(errno));
        exit(0);
    }

    return pid;
}
</div>

#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
</div>

#include "basic.h"

int main()
{
    int pid = Fork();
    int x = 2;

    if (pid == 0) {
        printf("child: pid = %d, ppid = %d, x = %d\n", getpid(), getppid(), ++x);
        sleep(3);

        printf("child: pid = %d, ppid = %d, x = %d\n", getpid(), getppid(), ++x);
        exit(0);
    }

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

}

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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 使用代码验证linux子进程与父进程的关系

相关文章

  • 2017-05-28C++编程中的格式化输出详解
  • 2017-05-28C++双向循环列表用法实例
  • 2017-05-28如何使用递归和非递归方式反转单向链表
  • 2017-05-28浅谈CMake配置OpenCV 时静态链接与动态链接的选择
  • 2017-05-28三种获取网页源码的方法(使用MFC/Socket实现)
  • 2017-05-28C语言实现输入一颗二元查找树并将该树转换为它的镜像
  • 2017-05-28Linux vmstat命令实战详细解析
  • 2017-05-28C语言学生管理系统源码分享
  • 2017-05-28C++中sprintf()函数的使用详解
  • 2017-05-28C/C++动态分配与释放内存的区别详细解析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 详解C++设计模式编程中责任链模式的应用
    • C语言指针入门学习面面观
    • 对C语言中sizeof细节的三点分析介绍
    • C语言求解最长公共子字符串问题及相关的算法分析
    • C++实现八皇后问题的方法
    • C++的头文件和实现文件详解
    • 剖析C++编程当中指针作为函数参数的用法
    • C 语言进制之间的转换
    • 由static_cast和dynamic_cast到C++对象占用内存的全面分析
    • C++ 异常处理 catch(...)介绍

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有