這一篇應該比前兩篇先發的...結果我忘了...現在補上來...
http://www.linuxidc.com/Linux/2014-06/103325.htm
http://www.linuxidc.com/Linux/2014-06/103326.htm
原來自學過幾次linux,但都沒怎麼實踐(其實這次也是...).很多時候知識點還是混亂的.經過上學期的匯編總結,發現總結一下知識點還是蠻有好處的.自己在整理過程中,相當於是反刍了一次知識.也把遇到的一些問題更深入的探究了一番,所以這次繼續上次的形式~
1.一些系統相關的說明性的東西
1.1頭文件保留字的規則:
--以字母E後隨一數字或大寫字母開的頭名字,保留作為錯誤代碼名
--以’ls’或’to’後隨一小些字母開頭的名字,保留作為說明地區屬性的宏名
--以’LC_’後隨一大寫字母開頭的名字,保留作為說明地區屬性的宏名
--所有以’f’或’l’為後綴的數字函數名字,保留用於對float和long double類型的數據進行運算的函數.
--以’SIG’後隨一大寫字母開頭的名字,保留用於信號數
--頭文件<fcntl.h>保留以’l_’,’F_’,’O_’和’S_’為前綴的名字
--頭文件<limits.h>保留以’_MAX’為後綴的名字
--頭文件<signal.h>保留以’sa_’和’SA_’為前綴的名字
--頭文件<sys/stat.h>保留以’st_’和’S_’為前綴的名字
--頭文件<sys/times.h>保留以’tms_’為前綴的名字
1.2 特征測試宏
通常以一個下劃線開頭’_’.下面列出幾個,但是具體的有很多,到時候用到再搜索吧.
如下:
__USE_POSIX,__USE_POSIX2,__USE_XOPEN,_POSIX_SOURCE.
估計這些都可以在相關頭文件中找到定義吧.
1.3錯誤處理
這裡主要是說明變量errno.被系統調用和庫函數用來報告錯誤.
並且在多線程的程序中,每個線程都有一個errno.
在標准C中,可以用strerror來返回錯誤信息的串.
用perror可以直接顯示相關的錯誤信息.不過參數是個串..也就是錯誤信息串..
1.4 系統標識
gethostname可以得到主機的名字.
sethostname 可以設置主機的名字
uname 可以通過參數得到操作系統和主機的信息,具體包含操作系統名,計算機的主機名,操作系統的當前版本號,操作系統當前版本內的級別號,還有使用的硬件類型.
1.5 系統能力限制
--運行時的不變值
--運行時可增加值
--路徑名可變值
--數值限制值,主要是與數的表示有關的限制值.
--其他不變值.最大消息數(NL_MSGMAX),默認的進程優先數(NZERO)等.
--最小值
--最大值
這些東西基本都可以在APUE上面找到.
也可通過sysconf來查,不過參數也是需要查的......
相關的函數有pathconf和fpathconf.這兩個是查詢文件系統相關參數的.
推薦閱讀:
Linux 多線程同步(信號量) http://www.linuxidc.com/Linux/2012-09/70825.htm
Linux C++動態鏈接庫so編寫 http://www.linuxidc.com/Linux/2012-09/70502p2.htm
Linux多線程──主線程和子線程分別循環一定次數 http://www.linuxidc.com/Linux/2012-07/65201.htm
Linux多線程──3個子線程輪流運行 http://www.linuxidc.com/Linux/2012-07/65200.htm
Linux多線程──生產者消費者 http://www.linuxidc.com/Linux/2012-07/65199.htm
Linux多線程──讀者寫者問題 http://www.linuxidc.com/Linux/2012-07/65198.htm
Linux基礎編程 多線程中的互斥鎖 pthread_mutex_lock http://www.linuxidc.com/Linux/2012-07/65030.htm
Linux基礎編程 多線程同步 pthread_cond_signal http://www.linuxidc.com/Linux/2012-07/65031.htm