中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. "); //-->

        博客專欄

        EEPW首頁 > 博客 > Linux 之exit() 進(jìn)程退出函數(shù)

        Linux 之exit() 進(jìn)程退出函數(shù)

        發(fā)布人:電子禪石 時(shí)間:2022-03-29 來源:工程師 發(fā)布文章

        進(jìn)程的退出

        linux下進(jìn)程數(shù)量太多會導(dǎo)致系統(tǒng)崩潰,在使用完一個(gè)進(jìn)程之后要及時(shí)終止它。

        進(jìn)程退出一般有三種方法:

        1、在main函數(shù)中使用 return關(guān)鍵字 ,使用 return 后系統(tǒng)會調(diào)用 exit()函數(shù)來終止進(jìn)程。

        2、手動調(diào)用 exit() 來終止進(jìn)程。

        3、調(diào)用 _exit() 來終止進(jìn)程。

        exit() 和 _exit() 函數(shù)

        頭文件


        #include<unistd.h>

        #include<stdlib.h>

        1

        2

        原型


        void _exit(int status);

        void exit(int status);

        1

        2

        _exit()

        os立刻把管理內(nèi)存的結(jié)構(gòu)體、虛擬內(nèi)存釋放掉。

        exit()

        不會馬上干掉結(jié)構(gòu)體,先看先看當(dāng)前進(jìn)程有沒有文件緩存區(qū),若有則會先處理緩存區(qū)中的數(shù)據(jù),然后銷毀結(jié)構(gòu)體。


        #include<stdio.h>

        #include<stdlib.h>

        #include<unistd.h>


        int main()

        {

        pid_t res;

        res = fork();

        if(res == -1)

        {

        printf("fork err\r\n");

        }

        if(res == 0)

        {

        //不加回車換行符,讓輸出的字符串?dāng)?shù)據(jù)保留在io緩存區(qū)里面

        printf("son");

        //退出狀態(tài)設(shè)置為0,表示正常退出。

        _exit(0);

        }

        else if(res > 0)

        {

        printf("parent");

        exit(0);

        }

        }



        1

        2

        3

        4

        5

        6

        7

        8

        9

        10

        11

        12

        13

        14

        15

        16

        17

        18

        19

        20

        21

        22

        23

        24

        25

        26

        27

        編譯后執(zhí)行結(jié)果


        jl@jl-virtual-machine:~/test$ ./a.out 

        parentjl@jl-virtual-machine:~/test$ 

        jl@jl-virtual-machine:~/test$ 

        1

        2

        3

        注意第二行開頭的parent,因?yàn)樵诟高M(jìn)程中用的是 exit() 函數(shù),在進(jìn)程退出前會先處理完緩存區(qū)中的數(shù)據(jù),所以緩存區(qū)中滯留的parent在推出前被打印出來。


        使用\r\n輸出字符串則會被立即打印。


        補(bǔ)充

        C語言中的exit()函數(shù)與 return 對比

        ————————————————


        原文鏈接:https://blog.csdn.net/engineer0/article/details/109213577


        *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。

        linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


        關(guān)鍵詞: linux

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉