最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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



棧是向下生長,對向上生長。這里描述的是邏輯地址。
編譯時,gcc -static可以阻止程序使用動態(tài)庫,轉(zhuǎn)而使用靜態(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ū),需要申請一塊大的,并且把原先的內(nèi)容拷貝過去)。new_size是新緩沖區(qū)的大小,不是差值。如果ptr為空,則等同于malloc,如果size為0,則等同于free。新申請的東西未初始化。
返回的地址一定是對齊的,使其可以存儲任何的對象類型。比如,有些系統(tǒng)要求double類型數(shù)據(jù)的起始地址一定是8的倍數(shù)。
putenv,setenv,unsetenv三個函數(shù)可以更改進(jìn)程的環(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可以修改進(jìn)程的資源限制。一起時用命令來修改,針對的是所有的進(jìn)程,這個函數(shù)可以針對當(dāng)前進(jìn)程。對應(yīng)的命令式ulimit。

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

相關(guān)文章

  • C語言文件讀寫操作介紹與簡單示例

    C語言文件讀寫操作介紹與簡單示例

    這篇文章主要給大家介紹了關(guān)于C語言文件讀寫操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • C++17實(shí)現(xiàn)flyweight_factory模板類及使用示例詳解

    C++17實(shí)現(xiàn)flyweight_factory模板類及使用示例詳解

    這篇文章主要為大家介紹了C++17實(shí)現(xiàn)flyweight_factory模板類及使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C++入門教程之引用與指針

    C++入門教程之引用與指針

    初學(xué)C++時,很容易把指針和引用的用法混在一起,下面這篇文章主要給大家介紹了關(guān)于C++入門教程之引用與指針的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • C++實(shí)現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù))

    C++實(shí)現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù))

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(7.翻轉(zhuǎn)整數(shù)),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++實(shí)現(xiàn)支持泛型的LFU詳解

    C++實(shí)現(xiàn)支持泛型的LFU詳解

    這篇文章主要給大家介紹了關(guān)于C++實(shí)現(xiàn)LFU的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Redis具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • C++ 封裝 DLL 供 C# 調(diào)用詳細(xì)介紹

    C++ 封裝 DLL 供 C# 調(diào)用詳細(xì)介紹

    這篇文章主要介紹了C++ 封裝 DLL 供 C# 調(diào)用(以C# 調(diào)用C++ 二次封裝的VLC播放庫為介質(zhì),支持回調(diào)函數(shù)的封裝),需要的朋友可以參考下面我文章的具體內(nèi)容
    2021-09-09
  • C++取得本機(jī)IP的方法

    C++取得本機(jī)IP的方法

    這篇文章主要介紹了C++取得本機(jī)IP的方法,代碼簡單功能實(shí)用,具有不錯的借鑒參考價值,需要的朋友可以參考下
    2014-10-10
  • C++整數(shù)常量的前綴和后綴的示例代碼

    C++整數(shù)常量的前綴和后綴的示例代碼

    這篇文章主要介紹了C++整數(shù)常量的前綴和后綴,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 深入分析C語言中結(jié)構(gòu)體指針的定義與引用詳解

    深入分析C語言中結(jié)構(gòu)體指針的定義與引用詳解

    本篇文章是對C語言中結(jié)構(gòu)體指針的定義與引用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • 詳解c++ atomic原子編程中的Memory Order

    詳解c++ atomic原子編程中的Memory Order

    在多核編程中,我們使用內(nèi)核對象【如:事件對象(Event)、互斥量對象(Mutex,或互斥體對象)、信號量對象(Semaphore)等】來避免多個線程修改同一個數(shù)據(jù)時產(chǎn)生的競爭條件。本文將詳細(xì)介紹c++ atomic原子編程中的Memory Order。
    2021-06-06

最新評論

古浪县| 喀什市| 梧州市| 华容县| 平潭县| 东乡| 石棉县| 金平| 金坛市| 虹口区| 大安市| 吉林省| 富川| 剑阁县| 宁南县| 银川市| 来宾市| 肃南| 平罗县| 施甸县| 黄山市| 台前县| 寿宁县| 阿拉善右旗| 荔浦县| 昌乐县| 海兴县| 类乌齐县| 罗平县| 宜春市| 丰镇市| 郁南县| 南皮县| 兴义市| 洪江市| 怀仁县| 山阳县| 德化县| 宾阳县| 镇巴县| 孟村|