欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

APUE筆記之:進程環(huán)境詳解

 更新時間:2013年05月23日 15:36:52   作者:  
本篇文章是對APUE 進程環(huán)境詳解進行了詳細的分析介紹,需要的朋友參考下

在main中調用exit(1)和reutrn 1是等價的。
內核啟動一個進程的唯一的方法是調用exec,用戶程序終止進程的唯一方法是顯示或者隱式的調用_exit或者EXIT。
每個進程都會有一個進程表。進程表是一個全局的指針:environ。extern char **environ可以查看這個環(huán)境表。另外,可以通過getenv和putenv來獲取修改環(huán)境表。寫個程序試一下。
linux的段:linux正文段從0X08048000單元開始,棧底則從0xC0000000開始



棧是向下生長,對向上生長。這里描述的是邏輯地址。
編譯時,gcc -static可以阻止程序使用動態(tài)庫,轉而使用靜態(tài)庫。
malloc:分配指定字節(jié)存儲區(qū),值不確定。
calloc:原型為void *calloc(size_t nobj, size_t size),分配size*nobj個字節(jié)。
realloc:更改以前存儲區(qū)的長度。原型:void *realloc(void *ptr, size_t new_size);返回值可能還是原來的地址(如果它的后面有足夠的存儲區(qū)),可能發(fā)生了更改(后面沒有足夠的存儲區(qū),需要申請一塊大的,并且把原先的內容拷貝過去)。new_size是新緩沖區(qū)的大小,不是差值。如果ptr為空,則等同于malloc,如果size為0,則等同于free。新申請的東西未初始化。
返回的地址一定是對齊的,使其可以存儲任何的對象類型。比如,有些系統(tǒng)要求double類型數(shù)據(jù)的起始地址一定是8的倍數(shù)。
putenv,setenv,unsetenv三個函數(shù)可以更改進程的環(huán)境變量。
setenv:int setenv(const char *name, const char *value, int rewrite)//rewrite:如果已存在是否覆蓋。
putenv函數(shù)直接將入?yún)⒎湃氕h(huán)境表中,而不分配存儲區(qū)。這樣,如果是棧,則會出錯。
setjmp和longjmp是全局的goto,不過盡量不要使用,隱含了很多的陷阱,易出錯。
getrlimit和setrlimit可以修改進程的資源限制。一起時用命令來修改,針對的是所有的進程,這個函數(shù)可以針對當前進程。對應的命令式ulimit。

寫測試程序驗證:
1、  程序死循環(huán),有printf,前臺啟動和后臺啟動所占用的CPU是否相同?
2、  打開文件,然后關閉文件,說是用的時間是否太大。
還好。平均在50us(0.05毫秒)
3、  打開大的文件和打開一個小的文件,占用時間是否相同?差別是否大?
打開模式和打開時間有區(qū)別(下面的代碼:打開文件,寫同樣內容):
a+:20us
w+/w:70us
r:20us
r+:20us
打開一個大文件和打開一個小文件還是有差別的。
一個8M,一個3k,同樣適用a+打開,不寫內容:
8M:37us
3k: 12us
一個8M,一個3k,同樣適用a+打開,寫內容(1K):
8M:60us
3k: 23us
在寫一個250M文件,差不多也是60us。和8M差別不大。
改用flush后,寫后flush的平均大概在9us。
4、  寫文件:寫相同內容,寫到一個空白文件和寫到一個大文件中,時間是否相同?
差不多。
5、  一個文件,打開,寫內容。在進程外刪除整個文件,再寫文件??词裁葱Ч耗芊駥懗晒?,文件會不會重新生成,是否會在關閉的時候生成,是否會返回錯誤從而知道文件不存在了,是否可以通過errno獲得這一信息。
目前沒有好的方法,寫的函數(shù)的返回值是成功的,但是文件不存在。目前我的做法是寫的時候判斷文件是否存在。大約用9us的時間。這比打開在關閉要快很多的。
6、  一個線程順序的寫多個文件和多個線程并行的寫多個文件,同樣的量,花費的時間是否相同?
7、  文件IO的自帶緩存是什么時候寫到文件的?是在調用最后的那個write函數(shù)?還是在系統(tǒng)內部?如果是前一個,則write調用返回時間是不一樣的。

相關文章

  • C++泛型編程函(數(shù)模板+類模板)

    C++泛型編程函(數(shù)模板+類模板)

    這篇文章主要介紹了C++泛型編程函(數(shù)模板+類模板),類模板與函數(shù)模板一樣也會經(jīng)過兩次編譯,在此文中重點區(qū)分一下類模板與模板類,函數(shù)模板與模板函數(shù)的概念,泛型編程是C++開發(fā)的一大精髓,靈活地運用泛型編程,需要的朋友可以參考一下
    2022-02-02
  • C++面試之你知道有哪些可執(zhí)行體嗎

    C++面試之你知道有哪些可執(zhí)行體嗎

    可執(zhí)行體其實也叫可調用對象,這也是面試常常會考到的問題,這篇文章就來和大家詳細講講C++中的可執(zhí)行體,感興趣的小伙伴可以了解一下
    2023-06-06
  • 詳細分析c++ const 指針與指向const的指針

    詳細分析c++ const 指針與指向const的指針

    這篇文章主要介紹了c++ const 指針與指向const的指針的相關資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C++?Primer的變量和基本類型詳解

    C++?Primer的變量和基本類型詳解

    這篇文章主要為大家介紹了C++?Primer,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C/C++獲取鍵盤事件的方法

    C/C++獲取鍵盤事件的方法

    今天小編就為大家分享一篇C/C++獲取鍵盤事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • QT中QDataStream二進制數(shù)據(jù)讀寫的實現(xiàn)

    QT中QDataStream二進制數(shù)據(jù)讀寫的實現(xiàn)

    本文主要介紹了QT中QDataStream二進制數(shù)據(jù)讀寫的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • C語言職工信息管理系統(tǒng)源碼

    C語言職工信息管理系統(tǒng)源碼

    這篇文章主要為大家詳細介紹了C語言職工信息管理系統(tǒng)源碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 教你用C語言實現(xiàn)三子棋

    教你用C語言實現(xiàn)三子棋

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單三子棋程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • C++中atof?函數(shù)的介紹

    C++中atof?函數(shù)的介紹

    這篇文章主要給大家分享的是C++中atof?函數(shù)的介紹,在?stdlib.h?中?atof?函數(shù),可用于將?char?字符串轉為?float?/?double?浮點數(shù)類型,想具體了解語法的小伙伴可以參考下面文章的內容,希望對大家有所幫助
    2021-11-11
  • 淺談C++類型轉換幾種情況

    淺談C++類型轉換幾種情況

    本文主要介紹了幾種C++類型轉換,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論