使用代碼驗(yàn)證linux子進(jìn)程與父進(jìn)程的關(guān)系
/******** basic.c ********/
#include "basic.h"
pid_t Fork(void)
{
pid_t pid = fork();
if (pid < 0) {
fprintf(stderr, "Fork error: %s\n", 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 = %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);
}
通過(guò) gcc fork.c basic.c -o fork 編譯即可的 fork 程序。 運(yùn)行 ./fork
可以看出父進(jìn)程首先退出,退出前child的PPID為12256, 退出后子進(jìn)程的PPID變?yōu)榱?1.說(shuō)明父進(jìn)程退出后的子進(jìn)程由 init 超級(jí)進(jìn)程1領(lǐng)養(yǎng)。而該進(jìn)程是不絕不會(huì)退出的。
- linux vps服務(wù)器進(jìn)程kswapd0與events/0消耗大量CPU的問(wèn)題
- linux 創(chuàng)建守護(hù)進(jìn)程的相關(guān)知識(shí)
- linux系統(tǒng)使用python監(jiān)控apache服務(wù)器進(jìn)程腳本分享
- linux根據(jù)pid獲取進(jìn)程名和獲取進(jìn)程pid(c語(yǔ)言獲取pid)
- shell監(jiān)控linux系統(tǒng)進(jìn)程創(chuàng)建腳本分享
- linux獲取進(jìn)程執(zhí)行時(shí)間方法示例
- Linux進(jìn)程通信(IPC)方式簡(jiǎn)介
- linux c 獲得當(dāng)前進(jìn)程的進(jìn)程名和執(zhí)行路徑(示例)
- 淺析linux環(huán)境下一個(gè)進(jìn)程最多能有多少個(gè)線程
- linux下監(jiān)視進(jìn)程 崩潰掛掉后自動(dòng)重啟的shell腳本
- Linux C 獲取進(jìn)程退出值的實(shí)現(xiàn)代碼
- 深入探討linux下進(jìn)程的最大線程數(shù)、進(jìn)程最大數(shù)、進(jìn)程打開(kāi)的文件數(shù)
- 深入理解linux下查看進(jìn)程內(nèi)存的使用情況
- linux下查看swap分區(qū)被哪些進(jìn)程占用實(shí)現(xiàn)腳本
- Linux BASH多進(jìn)程并行處理的方法實(shí)現(xiàn)
- Linux Shell中判斷進(jìn)程是否存在的代碼
- Linux/window下怎樣查看某個(gè)端口被哪個(gè)程序/進(jìn)程占用
- linux殺進(jìn)程的多種方法
相關(guān)文章
C語(yǔ)言中動(dòng)態(tài)內(nèi)存分配malloc、calloc和realloc函數(shù)解析
C語(yǔ)言跟內(nèi)存申請(qǐng)相關(guān)的函數(shù)主要有 alloca、calloc、malloc、free、realloc等,下面這篇文章主要給大家介紹了關(guān)于C語(yǔ)言中動(dòng)態(tài)內(nèi)存分配malloc、calloc和realloc函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-03-03C語(yǔ)言 二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)實(shí)例
本篇文章主要介紹C語(yǔ)言中二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ),這里提供了一個(gè)實(shí)例代碼進(jìn)行參考,這樣對(duì)二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)有更深入的了解,希望能幫到學(xué)習(xí)這塊知識(shí)的同學(xué)2016-07-07Qt5連接并操作PostgreSQL數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例
本文主要介紹了Qt5連接并操作PostgreSQL數(shù)據(jù)庫(kù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12C和C++中的基本數(shù)據(jù)類型的大小及表示范圍詳解
這篇文章主要介紹了C和C++中的基本數(shù)據(jù)類型的大小及表示范圍詳解,基本數(shù)據(jù)類型有int、long、long long、float、double、char、string,正文有詳細(xì)介紹,歡迎參考2018-01-01VisualStudio2019配置OpenCV的詳細(xì)過(guò)程
這篇文章主要介紹了VisualStudio2019配置OpenCV,配置系統(tǒng)環(huán)境找到高級(jí)系統(tǒng)設(shè)置等一系列操作,本文分步驟通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01