使用代碼驗(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);
}
通過 gcc fork.c basic.c -o fork 編譯即可的 fork 程序。 運(yùn)行 ./fork
可以看出父進(jìn)程首先退出,退出前child的PPID為12256, 退出后子進(jìn)程的PPID變?yōu)榱?1.說明父進(jìn)程退出后的子進(jìn)程由 init 超級進(jìn)程1領(lǐng)養(yǎng)。而該進(jìn)程是不絕不會退出的。
- linux vps服務(wù)器進(jìn)程kswapd0與events/0消耗大量CPU的問題
- linux 創(chuàng)建守護(hù)進(jìn)程的相關(guān)知識
- linux系統(tǒng)使用python監(jiān)控apache服務(wù)器進(jìn)程腳本分享
- linux根據(jù)pid獲取進(jìn)程名和獲取進(jìn)程pid(c語言獲取pid)
- shell監(jiān)控linux系統(tǒng)進(jìn)程創(chuàng)建腳本分享
- linux獲取進(jìn)程執(zhí)行時間方法示例
- Linux進(jìn)程通信(IPC)方式簡介
- linux c 獲得當(dāng)前進(jìn)程的進(jìn)程名和執(zhí)行路徑(示例)
- 淺析linux環(huán)境下一個進(jìn)程最多能有多少個線程
- linux下監(jiān)視進(jìn)程 崩潰掛掉后自動重啟的shell腳本
- Linux C 獲取進(jìn)程退出值的實(shí)現(xiàn)代碼
- 深入探討linux下進(jìn)程的最大線程數(shù)、進(jìn)程最大數(shù)、進(jìn)程打開的文件數(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下怎樣查看某個端口被哪個程序/進(jìn)程占用
- linux殺進(jìn)程的多種方法
相關(guān)文章
C語言中動態(tài)內(nèi)存分配malloc、calloc和realloc函數(shù)解析
C語言跟內(nèi)存申請相關(guān)的函數(shù)主要有 alloca、calloc、malloc、free、realloc等,下面這篇文章主要給大家介紹了關(guān)于C語言中動態(tài)內(nèi)存分配malloc、calloc和realloc函數(shù)的相關(guān)資料,需要的朋友可以參考下2022-03-03Qt5連接并操作PostgreSQL數(shù)據(jù)庫的實(shí)現(xiàn)示例
本文主要介紹了Qt5連接并操作PostgreSQL數(shù)據(jù)庫的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下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ì)過程
這篇文章主要介紹了VisualStudio2019配置OpenCV,配置系統(tǒng)環(huán)境找到高級系統(tǒng)設(shè)置等一系列操作,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-01-01