亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統(tǒng) > Unix > 正文

《Unix環(huán)境高級編程》讀書筆記 第7章-進程環(huán)境

2024-06-28 13:24:48
字體:
來源:轉載
供稿:網(wǎng)友
《Unix環(huán)境高級編程》讀書筆記 第7章-進程環(huán)境1. main函數(shù)
  • int main( int argc, char *argv[] );
  • argc是命令行參數(shù)的數(shù)目,包括程序名在內(nèi)
  • argv是指向參數(shù)的各個指針所構成的數(shù)組,即指針數(shù)組
  • 當內(nèi)核執(zhí)行C程序時(使用exec函數(shù)),在調用main前先調用一個特殊的啟動例程。可執(zhí)行程序文件將此啟動例程指定為程序的起始地址——這是由連接器設置的,而連接器則是由C編譯器調用。啟動例程從內(nèi)核取得命令行參數(shù)和環(huán)境變量值,然后按上述方式調用main函數(shù)做好安排。
2. 進程終止
  • 有8種方式使進程終止,其中5種為正常終止
    1. 從main返回
    2. 調用exit
    3. 調用_exit或_Exit
    4. 最后一個線程從其啟動例程返回
    5. 從最后一個線程調用pthread_exit
  • 異常終止有3種方式:
    1. 調用abort
    2. 接到一個信號
    3. 最后一個線程對取消請求做出響應
2.1 退出函數(shù)
  1. #include <stdlib.h>
  2. void exit(int status);
  3. void _Exit(int status);
  4. #include <unistd.h>
  5. void _exit(int status);
  • _exit(由POSIX.1說明)和_Exit(由ISO C說明)立即進入內(nèi)核,而exit(由ISO C說明)則先執(zhí)行一些清理處理,然后返回內(nèi)核。
  • 3個退出函數(shù)都帶一個整型參數(shù),稱為終止狀態(tài)退出狀態(tài)。大多數(shù)Unix系統(tǒng)shell都提供檢測進程終止狀態(tài)的方法。
  • 下面幾種情況下,該進程的終止狀態(tài)是未定義的:
    1. 調用這些函數(shù)時不帶終止狀態(tài)
    2. main執(zhí)行了一個無返回值的return語句
    3. main沒有聲明返回類型為整型
2.2 函數(shù)atexit
  1. #include <stdlib.h>
  2. int atexit(void (*func)(void)); // 參數(shù)是一個函數(shù)指針
  3. Returns: 0 if OK, nonzero on error
  • 按照ISO C的規(guī)定,一個進程可以登記多至32個函數(shù),這些函數(shù)將由exit自動調用。稱這些函數(shù)為終止處理程序。
  • exit首先調用各終止處理程序,然后關閉所有打開流。exit調用這些函數(shù)的順序與它們登記的順序相反。
  • 如若程序調用exec函數(shù),則將清除所有已安裝的終止處理程序。
  • 注意:內(nèi)核使程序執(zhí)行的唯一方法是調用一個exec函數(shù)。進程自愿終止的唯一方法是顯式或隱式(通過調用exit)地調用_exit或_Exit。進程也可非自愿地由一個信號使其終止。

  • 一個C程序的啟動,以及它的各種終止方式

3. 命令行參數(shù)
  • 當執(zhí)行一個程序時,調用exec的進程可將命令行參數(shù)傳遞給新程序。這是Unix shell的一部分常規(guī)操作。
4. 環(huán)境表
  • extern char **environ;稱environ為環(huán)境指針;指針數(shù)組為環(huán)境表,其中各指針指向的字符串為環(huán)境字符串。
5. C 程序的存儲空間布局
  • 歷史沿襲至今,C程序一直由以下幾部分組成:

    1. 正文段。這是由CPU執(zhí)行的機器指令部分。通常,正文段是可由多個應用程序共享的,在存儲器中只需一個副本。正文段常常是只讀的。
    2. 初始化數(shù)據(jù)段,也稱為數(shù)據(jù)段。包含了程序中需明確地賦初值的變量。
    3. 未初始化數(shù)據(jù)段,也稱為bss段(block started by symbol,由符號開始的塊)。在程序開始執(zhí)行之前,內(nèi)核將此段中的數(shù)據(jù)初始化為0或空指針。
    4. 棧。自動變量以及每次函數(shù)調用時所需保存的信息都存放在此段中。
    5. 堆。通常在堆中進行動態(tài)存儲分配。慣例,堆位于未初始化數(shù)據(jù)段和棧之間。
  • 一種典型安排方式,這是程序的邏輯布局

  • size命令報告正文段、數(shù)據(jù)段和bss段的長度(以字節(jié)為單位)

    $ size /usr/bin/cc /bin/shtext data bss dec hex filename346919 3576 6680 357175 57337 /usr/bin/cc102134 1776 11272 115182 1c1ee /bin/sh第4、5列分別是以十進制和十六進制表示的3段總長度

6. 共享庫
  • 共享庫使得可執(zhí)行文件中不再需要包含公用的庫函數(shù),而只需要在所有進程都可以引用的存儲區(qū)中保存這種庫例程的一個副本。減少了每個可執(zhí)行文件的長度,但增加了一些運行時間開銷。這種時間開銷發(fā)生在該程序第一次被執(zhí)行時,或者每個共享函數(shù)庫函數(shù)第一次被調用時。
  • 另一個優(yōu)點是可以用庫函數(shù)的新版本代替老版本而無需對使用該庫的程序重新連接編譯。
7. 存儲空間分配
  • ISO C說明了3個用于存儲空間動態(tài)分配的函數(shù)

    malloc,初始值不確定calloc,每一位都初始化為0realloc,新增區(qū)域內(nèi)的初始值不確定

  1. #include <stdlib.h>
  2. void *malloc(size_t size);
  3. void *calloc(size_t nobj, size_t size);
  4. void *realloc(void *ptr, size_t newsize);
  5. All three return: non-null pointer if OK, NULL on error
  6. void free(void *ptr);
  • 這3個分配函數(shù)所返回的指針一定是適當對齊的,滿足最苛刻的對齊要求,使其可用于任何數(shù)據(jù)對象。
  • 返回通用指針void *
  • 這些分配例程通常用sbrk系統(tǒng)調用實現(xiàn)。該系統(tǒng)調用擴充或縮小進程的堆。雖然sbrk可以擴充或縮小進程的存儲空間,但是大多數(shù)malloc和free的實現(xiàn)都不減少進程的存儲空間。釋放的空間可供以后再分配,將它們保持在malloc池中而不返回給內(nèi)核。
  • 大多數(shù)實現(xiàn)所分配的存儲空間比所要求的要稍大一些,額外的空間用來記錄管理信息——分配塊的長度、指向下一個分配塊的指針等。
  • 常見錯誤:1. 釋放一個已經(jīng)釋放了的塊;2. 調用free時所用的指針不是3個alloc函數(shù)的返回值;3. 忘記調用free造成內(nèi)存泄露。
8. 替代的存儲空間分配程序
  • libmalloc
  • vmalloc
  • quick-fit,歷史上所使用的標準malloc算法是最佳適配或首次適配存儲分配策略。quick-fit算法比上述兩種快,但可能使用較多存儲空間
  • jemalloc
  • TCMalloc,高性能、高擴展性和高存儲效率。開源,是Google-perftools工具中的一個
  • 函數(shù)alloca,在當前函數(shù)的棧幀上分配存儲空間,而不是在堆上。

    優(yōu)點:當函數(shù)返回時,自動釋放它所使用的棧幀,不再需要自己釋放空間缺點:alloca函數(shù)增加了棧幀的長度,而某些系統(tǒng)在函數(shù)已經(jīng)被調用后不能增加棧幀長度,于是也就不能支持alloca函數(shù)。本書4個平臺均支持該函數(shù)。

9. 環(huán)境變量
  • Unix內(nèi)核并不查看這些字符串,它們的解釋完全取決于各個應用程序。
  • LANG、PATH、HOME、PWD、TERM ...
  1. #include <stdlib.h>
  2. char *getenv(const char *name);
  3. Returns: pointer to value associated with name, NULL if not found
  1. #include <stdlib.h>
  2. int putenv(char *str); // name已存在,替換
  3. Returns: 0 if OK, nonzero on error
  4. int setenv(const char *name, const char *value, int rewrite); // 當name已存在時,根據(jù)rewrite參數(shù)而覆蓋或保持原值
  5. int unsetenv(const char *name); // 即使name不存在也不算出錯
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
久久久天天操| 国产精品外围在线观看| 一个人在线观看免费视频www| 人妻精品久久久久中文字幕69| 国产成人拍精品视频午夜网站| 色老头久久综合| 天堂中文字幕一二区| 日韩精品av| 99久久99九九99九九九| 日本 片 成人 在线| 在线 丝袜 欧美 日韩 制服| 亚洲色图综合| 国产精品99精品久久免费| 精品亚洲国产成av人片传媒| 国产馆手机在线观看| 人人澡人人透人人爽| 一本一道久久a久久精品综合蜜臀| 久久久pmvav| 97国产精品久久久| 国产蜜臀av在线一区二区三区| 黄色a级片免费| 91成人福利| 国产精品一区二区三区毛片淫片| av在线播放天堂| 国产在线观看免费播放| 亚洲一区二区三区中文字幕在线| 国产高清一区二区| 永久免费的av网站| 亚洲国产精品麻豆| 午夜小视频在线观看| 欧美精品播放| 色综合综合网| 久久美女艺术照精彩视频福利播放| 男插女视频网站| 一级片视频播放| 欧美丰满老妇| 天天干天天综合| 亚洲欧美偷拍三级| 好吊妞视频这里有精品| 日本中文字幕有码| 亚洲线精品一区二区三区| 海角社区69精品视频| 久久精品无码中文字幕| 懂色av中文字幕一区二区三区| 亚洲资源在线看| 欧美18免费视频| 黑人巨大狂躁日本妞在线观看| 欧美a一区二区| 国产区视频在线播放| 最新天堂资源在线资源| 欧美一级二级三级视频| 亚洲精品国产精品乱码不99| 国产老头和老头xxxx×| 欧美精品色一区二区三区| 美国黑人一级大黄| 波多野结衣一区二区三区| 亚洲综合日韩在线| 精品毛片乱码1区2区3区| avav在线播放| 制服丝袜亚洲色图| 一区二区免费不卡在线| 国产一二三精品| 中文字幕日产av| 99综合视频| 亚洲成av人片在www色猫咪| 成人福利视频在线看| 91在线视频在线观看| 日本一区二区三区四区在线观看| 国产精品videossex| 国产三级视频在线播放| 92福利视频午夜1000合集在线观看| 国产99在线 | 亚洲| 人人做人人澡人人爽欧美| 成人黄色片免费| 欧美97人人模人人爽人人喊视频| 91九色蝌蚪porny| 中国老女人av| 亚洲AV无码国产精品午夜字幕| 欧美风情第一页| 国产精品久久久久一区二区国产| 国产精品伦理一区| 国产18精品乱码免费看| 久久99精品久久久久久青青91| 97国产一区二区| 日本高清视频www| 在线观看免费国产成人软件| 888久久久| 久久国产精品99久久久久久丝袜| 一区二区三区国产盗摄| 亚洲二区在线播放| 国产精品色在线| 91精品啪在线观看麻豆免费| 日韩欧美亚洲精品| 欧美在线高清视频| 丝袜亚洲另类欧美重口| 一二三四视频免费观看在线看| 无国产精品白浆免费视| 欧美亚洲禁片免费| 天天av天天翘| 欧美大尺度激情区在线播放| 高清乱码毛片入口| 日韩在线中文| 久久精品综合| 久久久人成影片免费观看| 亚洲精华国产欧美| 欧美在线一区视频| 国产精品亚洲片夜色在线| 欧美成人精品一区二区免费看片| 色偷偷成人一区二区三区91| 久久综合久久美利坚合众国| 日本午夜在线亚洲.国产| 波多野结衣一二区| 国产制服丝袜在线| 国产美女主播一区| 欧美一级片一区| 国产精品极品美女在线观看免费| 91网址在线看| 视频在线99re| 欧美日韩免费在线观看| 99久久一区二区| 日韩伦理一区二区三区av在线| 亚洲国产尤物| 精品国产123区| 日本伊人精品一区二区三区介绍| 亚洲国产精品久久久久久6q| 日韩欧美在线网址| 日韩免费毛片| 亚洲成a人片77777在线播放| 日本韩国欧美一区二区三区| 久久久久久久久久久久久久久久久久久久| 制服丝袜网站| 亚洲欧美视频一区二区三区| 国产精品视频免费观看www| 日本中文字幕一区二区视频| 国内精品视频在线| 中文字幕欧美人妻精品一区| 亚洲大胆人体大胆做受1| 国产精品视频一区在线观看| 久久久久久久激情视频| 韩日精品中文字幕| 日韩天天综合| 日本色图在线| 国产精品香蕉在线观看| 西野翔中文久久精品国产| 一区二区高清在线| 日韩精品国产精品| 在线免费中文字幕| 久久影院午夜论| 日韩av福利| 久久精品一区二区三区资源网| 国产91色在线|亚洲| 色噜噜狠狠狠综合曰曰曰| 亚洲精品欧美日韩专区| 黑人巨大xxx| 综合久久国产| 污网站视频在线观看| 欧美一卡二卡在线观看| 91蝌蚪porny成人天涯| 国产永久在线观看| 国产一级网站视频在线| 色天天综合久久久久综合片| 国产福利一区二区| 日本少妇一区二区三区| 国产精品久久久久久福利| 97精品一区二区视频在线观看| 91在线丨porny丨国产| 成人毛片一区二区| 日韩成人激情在线| 中文亚洲免费| 影视一区二区| 欧美与亚洲与日本直播| 中文字幕第38页| 7777狠狠狠琪琪电影| 97品白浆高清久久久久久| 狠狠干成人综合网| 欧在线一二三四区| 中文乱码字幕高清在线观看| 26uuu久久天堂性欧美| 精品国产乱码久久久久久88av| 精品91久久久久| www.尤物.com| 国产精华一区二区三区| 久久久久久久久久一区二区| 性做久久久久久免费观看欧美| 91欧美视频在线| www.先锋影音av| 成都免费高清电影| 婷婷久久综合九色综合99蜜桃| 潘金莲一级淫片aaaaaaa| 丰满的亚洲女人毛茸茸| 米奇777在线影院线| 国产精品videossex国产高清| 日韩美女视频19| 裸体一区二区三区| 最新在线地址| 激情视频免费在线| 亚洲综合色自拍一区| 免费观看特级毛片| 久热这里只精品99re8久| 日日夜夜网站| 91精品国产一区二区三区动漫| 五月天中文字幕一区二区| 九色porny蝌蚪视频在线观看| 好吊视频一区二区三区四区| 日韩美脚连裤袜丝袜在线| 美女国产在线| 一区二区国产在线观看| 91在线观看下载| 欧美黑人狂野猛交老妇| 精品一区二区三区在线观看国产| 一二三区视频在线观看| 丰满人妻一区二区三区无码av| 色欲狠狠躁天天躁无码中文字幕| 精品国产精品网麻豆系列| 91亚洲精品久久久蜜桃借种| 古装做爰无遮挡三级聊斋艳谭| 国产一区再线| 精品激情国产视频| 亚洲精品美国一| 精品日韩欧美在线| 明星国产一级毛片范冰冰视频| 玛雅亚洲电影| 免费黄色网址在线| 亚洲欧美aaa| 成人黄色片视频| 国产视频精品久久| 欧美tickling挠脚心丨vk| 日韩精品在线观看网站| 91亚洲一线产区二线产区| 欧美猛交xxxxx| 欧美91精品久久久久国产性生爱| 国产一区二区三区影视| 一级网站在线观看| 亚洲天堂免费av| mm视频在线视频| 另类av一区二区| 欧美自拍偷拍网| 青青一区二区三区| 欧美一区二区三区在线电影| 日韩精品一卡二卡| 欧美大香线蕉线伊人久久| 97视频在线观看网站| 永久免费看片视频教学| 免费国产a级片| 中文字幕久精品免费视频| 日韩av新片网| 久草资源在线观看| 黄色视屏在线免费观看| 免费看欧美黑人毛片| 天天操夜夜拍| 国产成人免费高清视频| 亚洲黄色小说视频| 日韩精品成人一区二区在线观看| 国产精品无码专区av免费播放| 日韩aaaaaa| 国产 日韩 亚洲 欧美| 亚洲图片在线视频| 在线成人视屏| 亚洲视频每日更新| 久久人人88| 桥本有菜亚洲精品av在线| 在线观看av每日更新免费| www.射射射| 写真福利片hd在线播放| 日韩精品免费播放| 免费不卡在线观看av| 日本精品va在线观看| 在线观看视频你懂的| 国产精品宾馆| 精品欧美一区二区精品少妇| 亚洲最大成人在线| 欧洲一区在线电影| 欧美日韩天堂| 午夜在线播放| 国产精品伦理一区二区三区| 免费aⅴ网站| 一二三四区在线观看| 欧美性受极品xxxx喷水| 日韩一区二区三区精品视频第3页| 99精品免费在线观看| 亚洲视频免费播放| 天天干 夜夜操| 欧美变态tickling挠脚心| 精品不卡视频| 久久免费福利视频| 黄色影院在线看| 久久国产成人精品国产成人亚洲| 天天看片激情网站| 91精品国产91久久久久久久久| 一级黄色在线播放| 中文字幕久久久久| 欧美日韩亚洲系列| 久久影院午夜论| 巨乳女教师的诱惑| 婷婷av一区二区三区| 国产极品尤物在线| 日日欢夜夜爽一区| 精品无码一区二区三区爱欲| 亚洲精品国精品久久99热一| 日本亚洲欧美成人| 中文字幕一区二区三区人妻在线视频| 99国产精品久久久久久久成人| 97精品人妻一区二区三区蜜桃| 欧美一级片一区| 日韩精品一级| 国产精品77777竹菊影视小说| 中国免费黄色片| 欧美xxx性| 在线观看国产精品淫| 亚洲免费成人在线视频| 国内一区二区在线| 欧美日韩亚洲国内综合网| 亚洲黄色www| 一级理论片在线观看| 亚洲免费网站观看视频| 国产又粗又长又大视频| 久久都是精品| 欧美曰成人黄网| 天天操天天是| 忘忧草在线影院两性视频| 日韩欧美另类中文字幕| 91激情五月电影| 三年中国中文观看免费播放| 在线免费电影网| 成人免费av在线| 妞干网在线播放| 91短视频版在线观看www免费| 91精品在线观看视频|