1.realpath:char *realpath(src,dst)將src轉化為絕對路徑到dst,返回dst的指標
2、getopt:獲得命令列的引數,getopt(argc, argv, "ab:c:de::")
#includeint main(int argc,char **argv)
printf(「optopt +%c\n」,optopt);
} 執行 $./getopt –b
option b:b
執行 $./getopt –c
other option:c
執行 $./getopt –a
other option :?
執行 $./getopt –a12345
option a:』12345』
3、訊號量,
表頭檔案
#include
功 能:
設定某一訊號的對應動作
函式原型
:void (*signal(int signum,void(* handler)(int)))(int);
或者:typedef void(*sig_t) ( int );
sig_t signal(int signum,sig_t handler);
引數說明
:第乙個引數signum指明了所要處理的訊號型別,它可以取除了sigkill和sigstop外的任何一種訊號。
第二個引數handler描述了與訊號關聯的動作,它可以取以下三種值:
(1)乙個無返回值的函式位址
此函式必須在signal()被呼叫前申明,handler中為這個函式的名字。當接收到乙個型別為sig的訊號時,就執行handler 所指定的函式。這個函式應有如下形式的定義:
void func(int sig);
sig是傳遞給它的唯一引數。執行了signal()呼叫後,程序只要接收到型別為sig的訊號,不管其正在執行程式的哪一部分,就立即執行func()函式。當func()函式執行結束後,控制權返回程序被中斷的那一點繼續執行。
(2)sig_ign
這個符號表示忽略該訊號,執行了相應的signal()呼叫後,程序會忽略型別為sig的訊號。
(3)sigdfl
這個符號表示恢復系統對訊號的預設處理。
signaldescription
sigabrt
由呼叫abort函式產生,程序非正常退出
sigalrm
用alarm函式設定的timer超時或setitimer函式設定的interval timer超時
sigbus
某種特定的硬體異常,通常由記憶體訪問引起
sigcancel
由solaris thread library內部使用,通常不會使用
sigchld
程序terminate或stop的時候,sigchld會傳送給它的父程序。預設情況下該signal會被忽略
sigcont
當被stop的程序恢復執行的時候,自動傳送
sigemt
和實現相關的硬體異常
sigfpe
數學相關的異常,如被0除,浮點溢位,等等
sigfreeze
solaris專用,hiberate或者suspended時候傳送
sighup
傳送給具有terminal的controlling process,當terminal被disconnect時候傳送
sigill
非法指令異常
siginfo
bsd signal。由status key產生,通常是ctrl+t。傳送給所有foreground group的程序
sigint
由interrupt key產生,通常是ctrl+c或者delete。傳送給所有foreground group的程序
sigio
非同步io事件
sigiot
實現相關的硬體異常,一般對應sigabrt
sigkill
無法處理和忽略。中止某個程序
siglwp
由solaris thread libray內部使用
sigpipe
在reader中止之後寫pipe的時候傳送
sigpoll
當某個事件傳送給pollable device的時候傳送
sigprof
setitimer指定的profiling interval timer所產生
sigpwr
和系統相關。和ups相關。
sigquit
輸入quit key的時候(ctrl+\)傳送給所有foreground group的程序
sigsegv
非法記憶體訪問
sigstkflt
linux專用,數學協處理器的棧異常
sigstop
中止程序。無法處理和忽略。
sigsys
非法系統呼叫
sigterm
請求中止程序,kill命令預設傳送
sigthaw
solaris專用,從suspend恢復時候傳送
sigtrap
實現相關的硬體異常。一般是除錯異常
sigtstp
suspend key,一般是ctrl+z。傳送給所有foreground group的程序
sigttin
當background group的程序嘗試讀取terminal的時候傳送
sigttou
當background group的程序嘗試寫terminal的時候傳送
sigurg
當out-of-band data接收的時候可能傳送
sigusr1
使用者自定義signal 1
sigusr2
使用者自定義signal 2
sigvtalrm
setitimer函式設定的virtual interval timer超時的時候
sigwaiting
solaris thread library內部實現專用
sigwinch
當terminal的視窗大小改變的時候,傳送給foreground group的所有程序
sigxcpu
當cpu時間限制超時的時候
sigxfsz
程序超過檔案大小限制
sigxres
solaris專用,程序超過資源限制的時候傳送
UNIX時間函式
include time t time time t calptr 成功返回時間值,出錯返回 1 include struct timeval intgettimeofday struct timeval restrict tp,void restrict tzp 總是返回0某些平台支援用tzp說明...
Unix中的程序
1 程序id 每個程序都有乙個非負整數表示的唯一程序id。雖然是唯一的,但是程序id可以重用。大多數unix系統實現延遲重用演算法。程序id用pid t表示。一下兩個函式用來得到當前程序和父程序的pid。includepid t getpid get pid of current processs ...
unix 時間的相關函式
unix 的時間大致可分為實時的時間和結構體中的時間 計算 1900 到 1970 年之間的秒數 rfc1305 network time protocol 中規定,網路協議中的,時間戳的格式是乙個四個八位組。其值是自 1900 年以來的秒數。unix 沒有提供函式以獲得 1900 年以來的秒數,但...