linux高級環(huán)境編程--進程

進程

進程間通信機制

信號

參考 https://www.ibm.com/developerworks/cn/linux/l-ipc/part2/index1.html

進程間通信 --管道

參考
https://liwei.life/2016/07/18/pipe/

進程環(huán)境

c函數(shù)總是從main函數(shù)開始執(zhí)行潘懊,調(diào)用main之前先調(diào)用一個特殊的啟動例程银伟,該啟動例程從內(nèi)核取得命令行參數(shù)和環(huán)境變量峰尝,然后運行main。

進程終止

有以下八種方式


image.png

exit 和 _exit 润讥、_Exit函數(shù)都是正常終止一個進程选脊,后面兩個會立即進入內(nèi)核至会,而exit則先執(zhí)行一些清理工作。還涉及一個終止狀態(tài)浑吟,即進程退出的退出狀態(tài),如exit(5)耗溜。

登記函數(shù) atexit()

一個進程可以登記最多32個函數(shù)组力,由exit()自動調(diào)用。調(diào)用順序和登記順序相反强霎,類似線程的cleanup_push和cleanup_pop函數(shù)忿项。
但稍有不同就是進程只有注冊,待用由exit()負責城舞,不用pop轩触。注意exit(0)和return 0效果是一樣的。

image.png

上圖為C程序啟動和終止的過程家夺。

環(huán)境表和環(huán)境變量
image.png

環(huán)境指針是一個二級指針脱柱。
環(huán)境字符串形式:name = value

image.png

除了獲得變量值還有設置變量值。具體函數(shù)為 putenv 拉馋、setenv榨为、unsetenv。具體查閱煌茴。

setjmp和longjmp

類似于goto随闺,但是goto不能跨越函數(shù),適用于局部跳轉(zhuǎn)蔓腐。而setjmp和longjmp主要用于嵌套出錯中矩乐,比如A調(diào)用B,B調(diào)用C回论,C運行發(fā)生了一個非致命性錯誤需要從A重新運行散罕,若逐層返回很麻煩,上面兩個函數(shù)閃亮登場傀蓉。
以下為示例欧漱,setjmp參數(shù)為特殊類型的jmp_buf。存放恢復棧狀態(tài)的所有信息葬燎,longjmp第二個參數(shù)為返回值误甚,區(qū)分不同的返回缚甩。


image.png

在這個情況下,有個很重要的問題需要去考慮靶草,即哪些變量會恢復到以前蹄胰。

C程序存儲空間布局
空間布局

正文段是CPU執(zhí)行的機器指令部分,正文段可共享(如很多shell但共享一個正文段)奕翔,正文段只讀裕寨。
初始化和未初始化就看程序中對變量有沒有賦初值,未初始化的也叫 bss段派继,一般初始化為0.
棧宾袜,自動變量以及函數(shù)調(diào)用所需保存的信息存放處。堆用來動態(tài)分配內(nèi)存驾窟。

存儲空間分配
image.png

進程控制

進程標識

ID為0的進程通常是調(diào)度進程庆猫,是內(nèi)核一部分,不執(zhí)行任何磁盤上程序绅络,ID為1為init進程月培,自舉過程后由內(nèi)核調(diào)用。

標識符函數(shù)
fork

fork調(diào)用之后恩急,子進程是父進程的副本杉畜,例如子進程獲得父進程數(shù)據(jù)空間、堆和棧的副本衷恭,父子進程之間并不共享此叠,但是一般共享正文段。

image.png
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末随珠,一起剝皮案震驚了整個濱河市灭袁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌窗看,老刑警劉巖茸歧,帶你破解...
    沈念sama閱讀 211,496評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異显沈,居然都是意外死亡举娩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,187評論 3 385
  • 文/潘曉璐 我一進店門构罗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人智玻,你說我怎么就攤上這事遂唧。” “怎么了吊奢?”我有些...
    開封第一講書人閱讀 157,091評論 0 348
  • 文/不壞的土叔 我叫張陵盖彭,是天一觀的道長纹烹。 經(jīng)常有香客問我,道長召边,這世上最難降的妖魔是什么铺呵? 我笑而不...
    開封第一講書人閱讀 56,458評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮隧熙,結(jié)果婚禮上片挂,老公的妹妹穿的比我還像新娘。我一直安慰自己贞盯,他們只是感情好音念,可當我...
    茶點故事閱讀 65,542評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著躏敢,像睡著了一般闷愤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上件余,一...
    開封第一講書人閱讀 49,802評論 1 290
  • 那天讥脐,我揣著相機與錄音,去河邊找鬼啼器。 笑死旬渠,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的镀首。 我是一名探鬼主播坟漱,決...
    沈念sama閱讀 38,945評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼更哄!你這毒婦竟也來了芋齿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,709評論 0 266
  • 序言:老撾萬榮一對情侶失蹤成翩,失蹤者是張志新(化名)和其女友劉穎觅捆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體麻敌,經(jīng)...
    沈念sama閱讀 44,158評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡栅炒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,502評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了术羔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赢赊。...
    茶點故事閱讀 38,637評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖级历,靈堂內(nèi)的尸體忽然破棺而出释移,到底是詐尸還是另有隱情,我是刑警寧澤寥殖,帶...
    沈念sama閱讀 34,300評論 4 329
  • 正文 年R本政府宣布玩讳,位于F島的核電站涩蜘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏熏纯。R本人自食惡果不足惜同诫,卻給世界環(huán)境...
    茶點故事閱讀 39,911評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望樟澜。 院中可真熱鬧误窖,春花似錦、人聲如沸往扔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,744評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萍膛。三九已至吭服,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝗罗,已是汗流浹背艇棕。 一陣腳步聲響...
    開封第一講書人閱讀 31,982評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留串塑,地道東北人沼琉。 一個月前我還...
    沈念sama閱讀 46,344評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像桩匪,于是被迫代替她去往敵國和親打瘪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,500評論 2 348

推薦閱讀更多精彩內(nèi)容