檔案操作:
s_islnk(st_mode):是否是乙個連線.
s_isreg是否是乙個常規檔案.
s_isdir是否是乙個目錄s_ischr是否是乙個字元設 備.
s_isblk是否是乙個塊裝置
s_isfifo是否 是乙個fifo檔案.
s_issock是否是乙個socket檔案
man 2 stat ...
struct stat ; ...
struct flock
fcntl
gettimeofday
錯誤處理:
errno== eintr
程序:所有使用者態程序祖先: init程序 , pid為1
建立程序: fork,vfork,clone
程序退出 exit() wait() 和 waitpid()
訊號:
傳送訊號 kill ,也可以raise()給自己傳送訊號 ,alarm(2) 定時器 發定時訊號
忽略訊號 ,
訊號遮蔽(sigaction)使用訊號集操作
捕捉訊號 (signal)
等待訊號 pause
訊號集操作函式:
int sigemptyset(sigset_t *set);
int sigfillset(sigset_t *set);
int sigaddset(sigset_t *set, int signum);
int sigdelset(sigset_t *set, int signum);
int sigismember(const sigset_t *set, int signum);
執行緒:pthread_attr_init
pthread_attr_setschedpolicy
pthread_attr_destroy
sched_get_priority_max
pthread_attr_setschedparam
pthread_attr_setinheritsched
pthread_attr_setscope 執行緒間競爭cpu的範圍,也就是說執行緒優先順序的有效範圍
pthread_getconcurrency 併發度
同步函式:用於 mutex 和條件變數
pthread_mutex_init() 初始化互斥鎖
pthread_mutex_destroy() 刪除互斥鎖
pthread_mutex_lock():占有互斥鎖(阻塞操作)
pthread_mutex_trylock():試圖占有互斥鎖(不阻塞操作)。即,當互斥鎖空閒時,將占有該鎖;否則,立即返回。
pthread_mutex_unlock(): 釋放互斥鎖
pthread_cond_init():初始化條件變數
pthread_cond_destroy():銷毀條件變數
pthread_cond_signal(): 喚醒第乙個呼叫pthread_cond_wait()而進入睡眠的執行緒
pthread_cond_wait(): 等待條件變數的特殊條件發生
thread-local storage(或者以pthreads術語,稱作執行緒特有資料):
pthread_key_create(): 分配用於標識程序中線程特定資料的鍵
pthread_setspecific(): 為指定執行緒特定資料鍵設定執行緒特定繫結
pthread_getspecific(): 獲取呼叫執行緒的鍵繫結,並將該繫結儲存在 value 指向的位置中
pthread_key_delete(): 銷毀現有執行緒特定資料鍵
pthread_attr_getschedparam();獲取執行緒優先順序
pthread_attr_setschedparam();設定執行緒優先順序
工具函式
pthread_equal(): 對兩個執行緒的執行緒標識號進行比較
pthread_detach(): 分離執行緒
pthread_self(): 查詢執行緒自身執行緒標識號
內建函式:
獲取日曆時間 time_t time(time_t * timer);
獲取時間(可以轉化日曆時間) struct tm * gmtime(const time_t *timer); struct tm * localtime(const time_t * timer);
//固定時間格式
char * asctime(const struct tm * timeptr);
char * ctime(const time_t *timer);
double difftime(time_t time1, time_t time0);
size_t strftime(char *strdest,size_t maxsize,const char *format,const struct tm *timeptr );//自定義時間格式
Linux程式設計
一 linux設計特點 多使用者 多個使用者可以同時登入,同一使用者可以登入多次 多工 同一程式可以有多個執行緒或程序併發執行 分時。1.manpage手冊頁,共8個部分,可用man ls命令檢視。要檢視某部分介紹,用man sectionnum。要檢視某個命令的解釋,用man commandnam...
Linux程式設計
linux和unix的最大的區別是,前者是開發源 的自由軟體,而後者是對源 實行智財權保護的傳統商業軟體。從最開始 unix作業系統就是在公共環境下建立成長的。他的建立不是由於市場的需求,而是由於渴望排除編制程式的障礙。最初擁有unix商標的at t最終使unix成為商業化產品。到了1991 年的1...
linux程式設計
多程序 unix linux作業系統提供了乙個fork 系統呼叫,它非常特殊。普通的函式呼叫,呼叫一次,返回一次,但是fork 呼叫一次,返回兩次,因為作業系統自動把當前程序 稱為父程序 複製了乙份 稱為子程序 然後,分別在父程序和子程序內返回。子程序永遠返回0,而父程序返回子程序的id。這樣做的理...