LinuxC一些函數(shù)所屬的頭文件_第1頁(yè)
LinuxC一些函數(shù)所屬的頭文件_第2頁(yè)
LinuxC一些函數(shù)所屬的頭文件_第3頁(yè)
LinuxC一些函數(shù)所屬的頭文件_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、LinuxC一些函數(shù)所屬的頭文件在編寫(xiě)程序時(shí),有時(shí)總是不記得所使用的函數(shù)在哪個(gè)庫(kù)函數(shù)中?,F(xiàn)在先把自己以前經(jīng)常用到的函數(shù)頭文件總結(jié)一下。有不對(duì)的地方還請(qǐng)指教。1,系統(tǒng)調(diào)用文件的操作函數(shù)#inlcludeintopen(char*name,inthow)第二個(gè)參數(shù),O_RDONLYO_WRONLYO_RDWRO_CREAT#includeintclose(intfd)size_tread(intfd,void*buf,size_tcount)size_twrite(intfd,constvoid*buf,size_tcount)sleep(1)系統(tǒng)睡眠一秒鐘,最小單位為一秒。#definemsle

2、ep(x)usleep(x*1000)msleep(500);系統(tǒng)睡眠0.5秒#includeperror(會(huì)出現(xiàn)錯(cuò)誤的函數(shù)名)#includechar*strerror(interrnum)依據(jù)錯(cuò)誤代碼errnum來(lái)查找錯(cuò)誤原因字符串char*strcpy(char*dest,constchar*src)intstrcmp(char*s1,constchar*s2)s1若等于s2的值則返回0值intstrncmp(char*s1,constchar*s2,intn)前n個(gè)字符串比較2,進(jìn)程控制函數(shù)#includepid_tfork(void)子進(jìn)程中返回0父進(jìn)程中返回子進(jìn)程ID出錯(cuò)返回-1p

3、id_tgetpid(void)pid_tgetppid(void)pid_tvfork(void)exec函數(shù)族進(jìn)程pid的類(lèi)型為pid_t類(lèi)型,它包含于#includevsys/types.h若定義一個(gè)進(jìn)程pid變量,則需要包含此頭文件exit(n)結(jié)束進(jìn)程父進(jìn)程可以由wait函數(shù)來(lái)獲得子進(jìn)程結(jié)束裝狀態(tài)。在進(jìn)程結(jié)束的時(shí)候,會(huì)關(guān)閉文件描述符號(hào),做一些清理工作,只保留進(jìn)程返回狀態(tài)等信息調(diào)用exit(),子進(jìn)程會(huì)關(guān)閉所有打開(kāi)的進(jìn)程描述符exit會(huì)作清理工作,比如說(shuō),釋放內(nèi)存(在C+里面會(huì)主動(dòng)的調(diào)用析構(gòu)函數(shù),),關(guān)閉文件句柄的工作,包括刷新IO流。_exit(n)直接退出,不會(huì)做一些清理工作,也不

4、會(huì)關(guān)閉文件描述符。#includepid_twait(int*status)等待任意子進(jìn)程結(jié)束。子進(jìn)程結(jié)束狀態(tài)值由status返回。如WEXITSTATUS(status)可以獲得exit(2)中返回的值,status=2,這樣就可以知道所等待的為哪個(gè)進(jìn)程。如果不用這個(gè)宏轉(zhuǎn)換,則status=512.pid_twaitpid(pid_tpid,intstatus,intoptions)可以指定等待某個(gè)進(jìn)程號(hào)pid的進(jìn)程結(jié)束在使用waitpid函數(shù)時(shí)還用到了pid參數(shù),所以還要加上#includevsys/types.h關(guān)于進(jìn)程等待函數(shù)還有很多宏將status轉(zhuǎn)換為需要的值,需要了解。3,進(jìn)程間

5、通信-管道#includeintpipe(intfiledes2)4,進(jìn)程間通信-命名管道#include#includeintmkfifo(constchar*pathname,mode_tmode)對(duì)于命名管道的操作同普通文件的操作5,消息隊(duì)列數(shù)據(jù)類(lèi)型key_t是在頭文件sys/types.h中定義的,它是一個(gè)長(zhǎng)整形的數(shù)據(jù)。key=ftok(.,A)#include#include所屬頭文件:#includevsys/types.h#include#includevsys/msg.hintmsgid;msgid=msgget(key,IPC_CREAT|IPC_EXCL|0666);str

6、uctmsglongmtype;charmtext50;msg1,msg2;/消息隊(duì)列緩沖區(qū)intrcvtype=1;msgsnd(msgid,&msg1,6,0)6個(gè)字節(jié),最后一個(gè)參數(shù)填寫(xiě)為0表示函數(shù)調(diào)用阻塞直到滿(mǎn)足條件為止。msgrcv(msgid,&msg2,6,rcvtype,0)最后一個(gè)參數(shù)也可為IPC_NOWAIT,沒(méi)有收到消息返回-1msgctl(msgid,IPC_RMID,NULL);刪除消息隊(duì)列6,進(jìn)程間通信-信號(hào)#includeintkill(pid_tpid,intsig)intraise(intsigno);進(jìn)程向自身發(fā)送信號(hào)raise(signo)等價(jià)于kill(g

7、etpid(),signo);alarm(2)定時(shí)兩秒后,產(chǎn)生SIGALRM信號(hào),系統(tǒng)默認(rèn)處理是結(jié)束進(jìn)程。intpause(void)/pause函數(shù)使調(diào)用進(jìn)程掛起直至捕捉到一個(gè)信號(hào)。signal(SIGINT,ctrl_c)ctrl_c為函數(shù)名功能:發(fā)出信號(hào)后,調(diào)用信號(hào)處理函數(shù)7,信號(hào)集函數(shù)組阻塞信號(hào)信號(hào)集數(shù)據(jù)結(jié)構(gòu)的定義,sigset_t為結(jié)構(gòu)體數(shù)據(jù)類(lèi)型sigset_tintmask;sigemptyset(&intmask);sigaddset(&intmask,SIGINT);sigdelset(&intmask,SIGINT);sigprocmask(inthow,constsigse

8、t_t*set,sigset_t*oset)sigpromask(SIGBLOCK,&intmask,NULL)8,線程#include線程ID類(lèi)型為pthread_t為結(jié)構(gòu)體類(lèi)型獲得線程ID的辦法pthread_ttid;tid=pthread_self();pthread_create(&tid,NULL,thread,NULL)第二個(gè)參數(shù)為線程屬性,第三個(gè)參數(shù)為線程。第四個(gè)參數(shù)是可以向該線程傳遞參數(shù)。線程void*thread(void*arg)pthread_exit(void*)2)/與return(void*)2)的區(qū)別?誰(shuí)可以解答。void*tret;pthread_join(t

9、id,&tret);pthread_cancel(tid);pthread_cleanup_push(fun,NULL);第一個(gè)參數(shù)為清理函數(shù),第二個(gè)為傳參,線程清理處理程序pthread_cleanup_pop(0);0表示線程結(jié)束時(shí)不執(zhí)行清理函數(shù),非0執(zhí)行,兩函數(shù)配對(duì)使用。調(diào)用pthread_exit時(shí),或響應(yīng)取消時(shí),即使是pthread_cleanup_pop(0);也執(zhí)行清理函數(shù)。互斥鎖互斥鎖類(lèi)型為pthread_mutex_tmutex1pthread_mutex_init(&mutex1,NULL)互斥鎖的創(chuàng)建,第二個(gè)參數(shù)為空,表示默認(rèn)屬性。pthread_mutex_destory(&mutex1)清除一個(gè)互斥鎖pthread_mutex_lock(&mutex1)pthread_mutex_unlock(&mutex1)信號(hào)量#include信號(hào)量的類(lèi)型sem_tsem1;sem_init(&sem1,0,n)信號(hào)量的初始化,第二個(gè)參數(shù)Linux沒(méi)能實(shí)現(xiàn)在進(jìn)程間信號(hào)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論