linux程式設計

2021-08-14 09:51:57 字數 2526 閱讀 1549

檔案操作:

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。這樣做的理...