嵌入式linux-C函數(shù)快速參考_第1頁
嵌入式linux-C函數(shù)快速參考_第2頁
嵌入式linux-C函數(shù)快速參考_第3頁
嵌入式linux-C函數(shù)快速參考_第4頁
嵌入式linux-C函數(shù)快速參考_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、內(nèi)存管理函數(shù)相關函數(shù):malloc頭文件:#include函數(shù)原型:void*malloc(size_tsize);函數(shù)說明:分配內(nèi)存返回值:成功返回分配的內(nèi)存的首地址失敗返回NULL相關函數(shù):free頭文件:#include函數(shù)原型:voidfree(void*ptr);函數(shù)說明:釋放內(nèi)存,參數(shù)ptr為函數(shù)malloc返回的指針,調(diào)用free后ptr所指向的內(nèi)存會被系統(tǒng)回收。返回值:無相關函數(shù)頭文件mmap(內(nèi)存映射)函數(shù)原型函數(shù)說明#include#includevoidmmap(void*start,size_tlength,intprot,intflags,intfd,off_toff

2、set);mmap用來將某個文件映射到內(nèi)存中,通過對內(nèi)存的讀寫實現(xiàn)對文件的操作。參數(shù)含義如下:start:指向映射后的內(nèi)存起始地址,通常設為NULL,表示讓系統(tǒng)來選定映射地址。操作成功后,start里的值為映射后的內(nèi)存首地址。length:指定文件中被映射的部分的長度,以字節(jié)為單位。0表示全部映射。prot映射區(qū)域可被執(zhí)行映射區(qū)域可被讀取映射區(qū)域可被寫入映射區(qū)域不能存取:映射區(qū)域的使用方式,有以下選項PROT_EXECPROT_READPROT_WRITEPROT_NONEflag:設置映射區(qū)域的屬性,有以下選項MAP_FIXEDMAP_SHARED如果start指定的地址無法映射,則放棄映射

3、對映射區(qū)域的修改會復制回文件,而且允許其他映射該文件的進程共享不會影響被映射的文件MAP_PRIVATEMAP_ANONYMOUS建立匿名映射,不涉及文件,無法和其他進程共享MAP_LOCKED將映射區(qū)域鎖住:文件描述符,代表要映射的文件返回值:fdoffset:文件映射的偏移量。通常設置為0,代表從文件開始處映射,offset必須是分頁大小的整數(shù)倍無相關函數(shù):munmap頭文件:#include#include函數(shù)原型:函數(shù)說明:intmunmap(void*start,size_tlength);取消參數(shù)start所指向的映射內(nèi)存。當進程結(jié)束時,內(nèi)存映射會自動取消,但關閉對應的文件描述符不

4、會取消映射返回值:0:操作成功T:操作失敗,錯誤原因存于errno中二、字符串處理函數(shù)相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:返回值:bzero#includevoidbzero(void*s,intn);將參數(shù)s指向的內(nèi)存區(qū)域前n個字節(jié),全部設置為0無相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:返回值:memcpy#includevoid*memcpy(void*dest,constvoid*src,size_tn);拷貝src所指向的內(nèi)存前n個字節(jié)到dest所指向的內(nèi)存返回dest的值相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:返回值:memcmp#includeintmemcpy(constvoid*

5、s1,constvoid*s2,size_tn);比較s1和s2所指向內(nèi)存區(qū)域前n個字節(jié)若完全相同則返回0。若s1指向的內(nèi)存中的值大于s2指向的內(nèi)存,則返回大于0的值,否則返回小于0的值相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:返回值:memset#includevoid*memset(void*s,intc,size_tn);將參數(shù)s所指向的內(nèi)存前n個字節(jié)以參數(shù)c填入返回s的值相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:strcat#includechar*strcat(char*dest,constchar*src);將參數(shù)str指向的字符串拷貝到參數(shù)dest所指向的字符串尾,dest所指向的內(nèi)存空

6、間要足夠大返回值:返回dest的值相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:strncat#includechar*strncat(char*dest,constchar*src,size_tn);將參數(shù)str指向的字符串拷貝n個字符到參數(shù)dest所指向的字符串尾,dest所指向的內(nèi)存空間要足夠大返回值:返回dest的值相關函數(shù)頭文件函數(shù)原型函數(shù)說明返回值:strcmp:#include:intstrcmp(constchar*s1,constchar*s2);:比較參數(shù)s1和s2所指向的字符串若字符串相等則返回0若字符串S1大于字符串s2則返回大于0的整數(shù),否則返回小于0的整數(shù)相關函數(shù)頭文件函數(shù)

7、原型函數(shù)說明返回值:strncmp:#include:intStrncmp(conStchar*S1,conStchar*S2,Size_tn);比較參數(shù)si和s2所指向的字符串的前n個字符若字符串相等則返回0;若字符串si大于字符串s2則返回大于0的整數(shù),否則返回小于0的整數(shù)相關函數(shù)頭文件函數(shù)原型函數(shù)說明返回值:strcpy:#include:char*strcpy(char*dest,constchar*src);將參數(shù)str指向的字符串拷貝到參數(shù)dest所指向的地址:返回dest的值相關函數(shù)頭文件函數(shù)原型函數(shù)說明返回值:strncpy:#include:char*strncpy(char

8、*dest,constchar*src,size_tn);將參數(shù)str指向的字符串前n個字符拷貝到參數(shù)dest所指向的地址:返回dest的值相關函數(shù)頭文件函數(shù)原型函數(shù)說明返回值:strlen:#include:size_tstrlen(constchar*s);計算指定的字符串s的長度,不包括結(jié)束符0返回字符串s包含的字符數(shù)相關函數(shù)頭文件函數(shù)原型函數(shù)說明返回值strstr#includechar*strstr(constchar*haystack,constchar*needle);在字符串haystack中查找字符串needle返回指定字符串第一次出現(xiàn)的地址,否則返回NULL三、時間和隨機數(shù)

9、函數(shù)相關函數(shù)頭文件函數(shù)原型函數(shù)說明ctime#includechar*ctime(consttime_t*timeptr);將參數(shù)timeptr所指向的time_t結(jié)構(gòu)中的信息轉(zhuǎn)換成時間日期表示方法,以字符串形式返回返回值指向包含時間信息的字符串的指針相關函數(shù)localtime頭文件:函數(shù)原型:函數(shù)說明:#includestructtm*localtime(consttime_t*timeptr);將參數(shù)timeptr所指向的time_t結(jié)構(gòu)中的信息轉(zhuǎn)換成時間日期表示方法,將結(jié)果以結(jié)構(gòu)tm返回返回值:指向包含時間信息的結(jié)構(gòu)tm的指針相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:time#include

10、time_ttime(time_t*t);此函數(shù)會返回從公元1970年1月1日UTC時間0時0分0秒算起到現(xiàn)在為止經(jīng)過的秒數(shù)。若指針t不為空,則秒數(shù)也會保存到t指向的內(nèi)存中返回值:成功返回秒數(shù);失敗返回-1相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:srand#includevoidsrand(unsignedintseed);用來設置rand()產(chǎn)生隨機數(shù)時的隨機數(shù)種子,參數(shù)seed必須是整數(shù)。通常使用getpid()或time(0)的返回值當作seed返回值:無相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:rand#includeintrand(void);返回一隨機數(shù),范圍在0至RAND_MAX之間。

11、調(diào)用此函數(shù)之前,必須先利用srand()設置好隨機數(shù)種子返回值:0至RAND_MAX之間的隨機數(shù)四、文件IO函數(shù)相關函數(shù):頭文件:open#include#include#include函數(shù)原型:intopen(constchar*pathname,intflags);intopen(constchar*pathname,intflags,mode_tmode);函數(shù)說明:參數(shù)pathname指向要打開的文件路徑字符串。參數(shù)flags含義如下:O_RDONLY以只讀方式打開文件O_WRONLY以只寫方式打開文件O_RDWR以讀寫方式打開文件。O_CREAT若要打開的文件不存在則創(chuàng)建該文件O_E

12、XCL如果O_CREAT也被設置,此選項會去檢查文件是否存在。文件若不存在則建立該文件,否則出錯O_NOCTTY如果要打開的文件為終端機設備時,則不會將該終端機當成進程控制終端機O_TRUNC若文件存在且以可寫的方式打開時,此選項會把文件長度清為0O_APPEND寫入的數(shù)據(jù)會以附加的方式加入到文件末尾O_NONBLOCK以非阻塞的方式打開文件參數(shù)mode含義如下:S_IRWXU00700,代表文件所有者具有讀、寫和執(zhí)行的權(quán)限S_IRUSR00400,代表文件所有者具有讀的權(quán)限S_IWUSR00200,代表文件所有者具有寫的權(quán)限S_IXUSR00100,代表文件所有者具有執(zhí)行的權(quán)限S_IRWXG

13、00070,代表文件所屬組具有讀、寫和執(zhí)行的權(quán)限S_IRGRP00040,代表文件所屬組具有讀的權(quán)限S_IWGRP00020,代表文件所屬組具有寫的權(quán)限S_IXGRP00010,代表文件所屬組具有執(zhí)行的權(quán)限S_IRWXO00007,代表其他用戶具有讀、寫和執(zhí)行的權(quán)限S_IROTH00004,代表其他用戶具有讀的權(quán)限S_IWOTH00002,代表其他用戶具有寫的權(quán)限S_IXOTH00001,代表其他用戶具有執(zhí)行的權(quán)限返回值:操作成功返回要打開文件的文件描述符,否則返回-1相關函數(shù):close頭文件:#include函數(shù)原型:intclose(intfd);函數(shù)說明:當使用完文件后可以用close

14、()關閉該文件。參數(shù)fd是之前用open打開的文件描述符返回值:若文件順利關閉則返回0,否則返回-1相關函數(shù):read頭文件:#include函數(shù)原型:ssize_tread(intfd,void*buf,size_tcount);函數(shù)說明:從參數(shù)fd所指向的文件中讀取count個字節(jié)到buf指向的內(nèi)存中返回值:返回實際讀取的字節(jié)數(shù),如果返回0表示已到達文件尾或無數(shù)據(jù)可讀相關函數(shù):write頭文件:#include函數(shù)原型:ssize_twrite(intfd,constvoid*buf,size_tcount);函數(shù)說明:把參數(shù)buf指向的內(nèi)存中count個字節(jié)的內(nèi)容寫到fd所指向的文件內(nèi)返

15、回值:返回實際寫入的字節(jié)數(shù),如有錯誤發(fā)生返回-1相關函數(shù):lseek頭文件:#include#include函數(shù)原型:off_tlseek(intfd,off_toffset,intwhence);函數(shù)說明:每個已打開的文件都有一個讀寫位置。當打開文件時通常讀寫位置是指向文件開始;若是以附加的方式打開,則讀寫位置會指向文件尾。對文件的讀寫操作會引起讀寫位置的變化。參數(shù)fd為已打開的文件描述符參數(shù)offset為根據(jù)參數(shù)whence來移動讀寫位置的偏移量參數(shù)whence為移動讀寫位置的基準點,含義如下:SEEK_SET文件的開始處為基準點SEEK_CUR文件的當前位置為基準點SEEK_END文件的

16、末尾為基準點返回值:返回實際寫入的字節(jié)數(shù),如有錯誤發(fā)生返回-1相關函數(shù):sync頭文件:#include函數(shù)原型:intsync(void);函數(shù)說明:把系統(tǒng)緩沖區(qū)數(shù)據(jù)寫回磁盤,確保數(shù)據(jù)同步返回值:操作成功返回0,否則返回五、標準IO函數(shù)相關函數(shù):fopen頭文件:#include函數(shù)原型:FILE*fopen(constchar*path,constchar*mode);函數(shù)說明:參數(shù)path字符串包含要打開的文件路徑和文件名參數(shù)mode代表打開的方式,含義如下:r打開只讀文件,該文件必須存在r+打開可讀寫的文件,該文件必須存在w打開只寫文件,若該文件存在,則長度清為0;若文件不存在則新建該

17、文件w+打開可讀寫文件,若該文件存在,則長度清為0;若文件不存在則新建該文件a以附加方式打開只寫文件,若文件不存在則新建該文件;若文件存在,寫入的數(shù)據(jù)會被添加到文件末尾a+以附加方式打開可讀寫文件,若文件不存在則新建該文件;若文件存在,寫入的數(shù)據(jù)會被添加到文件末尾上述選項都可以再加上一個b字符,如rb,wb+表示打開的文件為二進制文件,而非純文本文件。但在Linux系統(tǒng)中會忽略該字符返回值:文件順利打開后,返回指向該流的文件指針。若打開失敗返回NULL相關函數(shù):fclsoe頭文件:#include函數(shù)原型:intfclose(FILE*stream);函數(shù)說明:關閉先前用fopen打開的文件返

18、回值:操作成功返回0,否則返回-1相關函數(shù):feof頭文件:#include函數(shù)原型:intfeof(FILE*stream);函數(shù)說明:檢測是否讀取到了文件末尾返回值:返回非零值表示到達文件末尾相關函數(shù):fflush頭文件:#include函數(shù)原型:intfflush(FILE*stream);函數(shù)說明:強制將緩沖區(qū)里的數(shù)據(jù)寫回stream指向的文件。如果參數(shù)stream為NULL,會將所有打開的文件數(shù)據(jù)更新返回值:操作成功返回0,否則返回-1相關函數(shù):getchar頭文件:#include函數(shù)原型:intgetc(void);函數(shù)說明:從標準輸入中讀取一個字符返回值:返回讀取到的字符,若返

19、回-1表示有錯誤發(fā)生相關函數(shù):getc頭文件:#include函數(shù)原型:intgetc(FILE*stream);函數(shù)說明:從參數(shù)stream指向的文件中讀取一個字符,作用和fgetc相同,為宏定義返回值:返回讀取到的字符,若返回-1則表示到了文件末尾相關函數(shù):fgetc頭文件:#include函數(shù)原型:intfgetc(FILE*stream);函數(shù)說明:從參數(shù)stream指向的文件中讀取一個字符返回值:返回讀取到的字符,若返回-1則表示到了文件末尾相關函數(shù):fgets頭文件:#include函數(shù)原型:char*fgets(char*s,intsize,FILE*stream);函數(shù)說明:從

20、參數(shù)stream指向的文件中讀取字符并存放到參數(shù)s所指向的內(nèi)存空間,知道出現(xiàn)換行符、文件末尾或者已讀取了size-1個字符為止,最后會加上0作為字符串結(jié)束返回值:操作成功返回s的值,有錯誤發(fā)生返回NULL相關函數(shù):fread頭文件:#include函數(shù)原型:size_tfread(void*ptr,size_tsize,size_tnmemb,FILE*stream);函數(shù)說明:從文件流中讀取指定大小的數(shù)據(jù)參數(shù)ptr指向要存放讀取的數(shù)據(jù)的地址空間參數(shù)size表示要讀取的基本數(shù)據(jù)單位的大小,以字節(jié)為單位參數(shù)nmemb表示要讀取的基本數(shù)據(jù)單位的個數(shù)參數(shù)stream為已打開的文件指針返回值:返回實際

21、讀取到的基本數(shù)據(jù)單位的個數(shù)。相關函數(shù):putchar頭文件:#include函數(shù)原型:intputchar(intc);函數(shù)說明:將參數(shù)c字符寫到標準輸出設備返回值:返回輸出到的字符,若返回-1則代表輸出失敗相關函數(shù):putc頭文件:#include函數(shù)原型:intputc(intc,FILE*stream);函數(shù)說明:將參數(shù)c轉(zhuǎn)為unsignedchar后寫入?yún)?shù)stream指定的文件中。作用和fputc相同,為宏定義返回值:返回輸出到的字符,若返回-1則代表輸出失敗相關函數(shù):fputc頭文件:#include函數(shù)原型:intfputc(intc,FILE*stream);函數(shù)說明:將參數(shù)c

22、轉(zhuǎn)為unsignedchar后寫入?yún)?shù)stream指定的文件中返回值:返回輸出到的字符,若返回-1則代表輸出失敗相關函數(shù):puts頭文件:#include函數(shù)原型:intputs(constchar*s);函數(shù)說明:將參數(shù)s指向的字符串寫到標準輸出設備返回值:成功返回輸出的字符個數(shù),若返回-1則代表有錯誤發(fā)生相關函數(shù):fputs頭文件:#include函數(shù)原型:intfputs(constchar*s,FILE*stream);函數(shù)說明:將參數(shù)s指向的字符串寫到參數(shù)stream指向的文件返回值:成功返回輸出的字符個數(shù),若返回-1則代表有錯誤發(fā)生相關函數(shù):fwrite頭文件:#include函數(shù)

23、原型:size_tfwrite(constvoid*ptr,size_tsize,size_tnmemb,FILE*stream);函數(shù)說明:將數(shù)據(jù)寫入文件流中參數(shù)ptr指向要寫入的數(shù)據(jù)的地址參數(shù)size表示要寫入的基本數(shù)據(jù)單位的大小,以字節(jié)為單位參數(shù)nmemb表示要寫入的基本數(shù)據(jù)單位的個數(shù)參數(shù)stream為已打開的文件指針返回值:返回實際寫入的基本數(shù)據(jù)單位的個數(shù)。相關函數(shù):fseek頭文件:#include函數(shù)原型:intfseek(FILE*stream,longoffset,intwhence);函數(shù)說明:移動文件流的讀寫位置參數(shù)stream為已打開的文件指針參數(shù)offset為移動讀寫為

24、值的位移數(shù)參數(shù)whence為移動時的基準點,含義如下:SEEK_SET文件的開始處為基準點SEEK_CUR文件的當前位置為基準點SEEK_END文件的末尾為基準點返回值:調(diào)用成功時返回0,有錯誤時返回-1相關函數(shù):ftell頭文件:#include函數(shù)原型:longftell(FILE*stream);函數(shù)說明:取得文件流當前的讀寫位置。返回值:成功時返回當前的讀寫位置,若有錯誤返回-1相關函數(shù):rewind頭文件:#include函數(shù)原型:voidrewind(FILE*stream);函數(shù)說明:把文件流的讀寫位置移動到文件開始處返回值:無六、格式化輸入輸出和錯誤處理函數(shù)相關函數(shù):print

25、f頭文件:#include函數(shù)原型:intprintf(constchar*format,);函數(shù)說明:printf會根據(jù)參數(shù)format來轉(zhuǎn)換并格式化數(shù)據(jù),然后將結(jié)果寫到標準輸出參數(shù)format可包含下列三種字符類型:1.直接輸出的一般文本ASCII控制字符,女口t、n等格式轉(zhuǎn)換字符格式轉(zhuǎn)換字符由一個百分號%及其后的格式字符組成。通常情況下,每個格式轉(zhuǎn)換字符都要和printf中的一個參數(shù)相對應。常見格式轉(zhuǎn)換符如下:%d整型參數(shù)會被轉(zhuǎn)換成有符號的十進制數(shù)%u整型參數(shù)會被轉(zhuǎn)換成無符號的十進制數(shù)%o整型參數(shù)會被轉(zhuǎn)換成無符號的八進制數(shù)%x整型參數(shù)會被轉(zhuǎn)換成無符號的十六進制數(shù),以小寫abcdef表示%

26、X整型參數(shù)會被轉(zhuǎn)換成無符號的十六進制數(shù),以大寫ABCDEF表示%f浮點型參數(shù)會被轉(zhuǎn)換成十進制數(shù)%c字符型參數(shù)會被轉(zhuǎn)換成ASCII表中對應的字符輸出%s指向字符串的參數(shù)會被逐個字符輸出,直到遇到0返回值:執(zhí)行成功返回輸出的字符數(shù),失敗則返回-1,失敗原因保存于errno中相關函數(shù):fprintf頭文件:#include函數(shù)原型:intfprintf(FILE*stream,constchar*format,);函數(shù)說明:fprintf會根據(jù)參數(shù)format來轉(zhuǎn)換并格式化數(shù)據(jù),然后將結(jié)果輸出到參數(shù)stream指向的文件中返回值:執(zhí)行成功返回輸出的字符數(shù),失敗則返回-1,失敗原因保存于errno中相

27、關函數(shù):sprintf頭文件:#include函數(shù)原型:intsprintf(char*str,constchar*format,.);函數(shù)說明:sprintf會根據(jù)參數(shù)format來轉(zhuǎn)換并格式化數(shù)據(jù),然后將結(jié)果復制到參數(shù)str指向的字符數(shù)組返回值:執(zhí)行成功返回字符串str的長度,失敗則返回-1,失敗原因保存于errno中相關函數(shù):scanf頭文件:#include函數(shù)原型:intscanf(constchar*format,);函數(shù)說明:printf會將輸入的數(shù)據(jù)根據(jù)參數(shù)format來轉(zhuǎn)換并格式化數(shù)據(jù),然后將結(jié)果保存到指定的變量中常見格式轉(zhuǎn)換符如下:%d輸入的數(shù)據(jù)為十進制數(shù)%u輸入的數(shù)據(jù)為無

28、符號的十進制數(shù)%o輸入的數(shù)據(jù)為無符號的八進制數(shù)%x輸入的數(shù)據(jù)為無符號的十六進制數(shù),以小寫abcdef表示%X整型參數(shù)會被轉(zhuǎn)換成無符號的十六進制數(shù),以大寫ABCDEF表示%f輸入的數(shù)據(jù)為float型數(shù),轉(zhuǎn)換后存于float類型變量%lf輸入的數(shù)據(jù)為double型數(shù),轉(zhuǎn)換后存于double類型變量%c輸入的數(shù)據(jù)為單個字符%s輸入的數(shù)據(jù)為字符串格式化參數(shù)后面的為保存輸入數(shù)據(jù)的參數(shù),必須是保存數(shù)據(jù)的變量的地址返回值:執(zhí)行成功返回輸入的參數(shù)的個數(shù),失敗則返回-1,失敗原因保存于errno中相關函數(shù):fscanf頭文件:#include函數(shù)原型:intfscanf(FILE*stream,constcha

29、r*format,);函數(shù)說明:fscanf會從參數(shù)stream指向的文件流中讀取字符串,再根據(jù)參數(shù)format來轉(zhuǎn)換并格式化數(shù)據(jù),返回值:執(zhí)行成功返回參數(shù)數(shù)目,失敗則返回-1,失敗原因保存于errno中相關函數(shù):strerror頭文件:#include#include函數(shù)原型:char*strerror(interrnum);函數(shù)說明:strerror根據(jù)errnum來查詢其錯誤原因的描述字符串并返回指向該字符串的指針返回值:返回描述錯誤原因的字符串指針相關函數(shù):perror頭文件:#include函數(shù)原型:voidperror(constchar*s);函數(shù)說明:perror將上一個函數(shù)發(fā)

30、生錯誤的原因輸出到標準輸出。參數(shù)s所指的字符串會先輸出,再輸出錯誤的原因。錯誤原因依照全局變量errno的值來確定返回值:無相關函數(shù):ferror頭文件:#include函數(shù)原型:intferror(FILE*stream);函數(shù)說明:ferror檢查參數(shù)stream所指向的文件流是否發(fā)生了錯誤情況返回值:如果有錯誤返回非0值七、文件和目錄函數(shù)相關函數(shù):stat頭文件:#include#include函數(shù)原型:intstat(constchar*path,structstat*buf);函數(shù)說明:stat用來將參數(shù)path指向的文件的屬性復制到參數(shù)buf所指向的結(jié)構(gòu)中類型structstat定

31、義如下:structstat返回值dev_tst_dev;/文件的設備編號ino_tst_ino;/文件的i-nodemode_tst_mode;/文件的類型和訪問權(quán)限nlink_tst_nlink;/文件的硬鏈接數(shù)uid_tst_uid;/文件所有者的用戶識別碼gid_tst_gid;/文件所屬組的識別碼dev_tst_rdev;/若文件為設備文件,則為設備編號off_tst_size;/文件大小,以字節(jié)計算unsignedlongst_blksize;/文件系統(tǒng)的I/O緩沖區(qū)大小unsignedlongst_blocks;/占用文件塊的個數(shù)time_tst_atime;/文件最近一次被存取

32、或執(zhí)行的時間time_tst_mtime;/文件最后一次被修改的時間time_tst_ctime;/i-node最近一次被修改的時間j,執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):fstat頭文件:#include#include函數(shù)原型:intfstat(intfd,structstat*buf);函數(shù)說明:fstat用來將參數(shù)fd指向的文件的屬性復制到參數(shù)buf所指向的結(jié)構(gòu)中。fstat和stat作用完全一樣,區(qū)別在于通過文件描述符而不是路徑來指定文件返回值:執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):lstat頭文件:#include#include函

33、數(shù)原型:intlstat(constchar*path,structstat*buf);函數(shù)說明:lstat與stat作用相同,都是取得指定文件的屬性。差別在于,當目標文件為符號鏈接時,lstat會返回該鏈接本身的屬性返回值:執(zhí)行成功返回0失敗返回-1,錯誤代碼存于errno相關函數(shù):link頭文件:#include函數(shù)原型:intlink(constchar*oldpath,constchar*newpath);函數(shù)說明:link用參數(shù)newpath指定的名稱創(chuàng)建一個新的硬鏈接到參數(shù)oldpath所指定的已存在文件返回值:執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):syml

34、ink頭文件:#include函數(shù)原型:intsymlink(constchar*oldpath,constchar*newpath);函數(shù)說明:symlink用參數(shù)newpath指定的名稱創(chuàng)建一個新的符號鏈接到參數(shù)oldpath所指定的文件,該文件不一定要存在返回值:執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):chmod頭文件:#include#include函數(shù)原型:intchmod(constchar*path,mode_tmode);函數(shù)說明:chmod會按照參數(shù)mode指定的權(quán)限來修改參數(shù)path指向的文件返回值:執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno

35、相關函數(shù):truncate頭文件:#include函數(shù)原型:inttruncate(constchar*path,off_tlength);函數(shù)說明:truncate將參數(shù)path指定的文件大小修改為參數(shù)length指定的大小。若原來文件大小超出length,則超出的部分被刪去返回值:執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):rename頭文件:#include函數(shù)原型:intrename(constchar*oldpath,constchar*newpath);函數(shù)說明:rename將參數(shù)oldpath所指定的文件名改成參數(shù)newpath所指定的文件名稱返回值:執(zhí)行成功返

36、回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):remove頭文件:#include函數(shù)原型:intremove(constchar*path);函數(shù)說明:remove刪除參數(shù)path所指定的文件返回值:執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):chdir頭文件:#include函數(shù)原型:intchdir(constchar*path);函數(shù)說明:chdir將當前的工作目錄改變到參數(shù)path指定的路徑返回值:執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):mkdir頭文件:#include函數(shù)原型:intmkdir(constchar*filename,m

37、ode_tmode);函數(shù)說明:mkdir創(chuàng)建以參數(shù)filename命名的目錄,參數(shù)mode表示新目錄的權(quán)限返回值:執(zhí)行成功返回0,失敗返回-1,錯誤代碼存于errno相關函數(shù):opendir頭文件:#include#include函數(shù)原型:DIR*opendir(constchar*name);函數(shù)說明:opendir打開參數(shù)name指定的目錄,并返回DIR*形式的目錄流返回值:執(zhí)行成功返回打開的目錄流,失敗返回NULL,錯誤代碼存于errno相關函數(shù):readdir頭文件:#include#include函數(shù)原型:structdirent*readdir(DIR*dir);函數(shù)說明:rea

38、ddir返回參數(shù)dir所指向的目錄流的下一個entry,結(jié)構(gòu)dirent定義如下:structdirent_ino_td_ino;/此條目的inode_off_td_off;/從目錄文件開始到該條目的位移unsignedshortintd_reclen;/d_name的長度,不包含NULLunsignedchard_type;/d_name的文件類型chard_name256;/文件名返回值:執(zhí)行成功返回下一個條目,失敗或讀到目錄文件末尾返回NULL相關函數(shù):closedir頭文件:#include#include函數(shù)原型:intclosedir(DIR*dir);函數(shù)說明:closedir關

39、閉參數(shù)dir指向的目錄流返回值:執(zhí)行成功返回0失敗返回-1,錯誤代碼存于errno相關函數(shù):getcwd頭文件:#include函數(shù)原型:char*getcwd(char*buf,size_tsize);函數(shù)說明:getcwd將當前的工作目錄絕對路徑復制到參數(shù)buf所指向的內(nèi)存空間。參數(shù)size為buf空間的大小返回值:執(zhí)行成功返回buf的值,失敗返回NULL,錯誤代碼存于errno八、進程相關函數(shù)相關函數(shù):頭文件:函數(shù)原型:函數(shù)說明:abort#includevoidabort(void);引起進程異常終止,此時所有已打開的文件流會自動關閉,緩沖區(qū)里的數(shù)據(jù)也會自動寫回返回值:無相關函數(shù):as

40、sert頭文件:#include函數(shù)原型:voidassert(intexpression);函數(shù)說明:該函數(shù)會判斷參數(shù)expression是否成立。若不成立則會顯示錯誤信息并調(diào)用abort來終止進程返回值:無相關函數(shù):exit頭文件:#include函數(shù)原型:voidexit(intstatus);函數(shù)說明:用來正常終止目前進程的執(zhí)行,并把參數(shù)status返回給父進程。進程所有的緩沖區(qū)數(shù)據(jù)會自動寫回并關閉所有的文件返回值:無相關函數(shù):_exit頭文件:#include函數(shù)原型:void_exit(intstatus);函數(shù)說明:用來立刻終止目前進程的執(zhí)行,并把參數(shù)status返回給父進程。但

41、不會處理緩沖區(qū)數(shù)據(jù)和打開的文件返回值:無相關函數(shù):fork頭文件:#include函數(shù)原型:pid_tfork(void);函數(shù)說明:創(chuàng)建一個新的子進程,子進程會復制父進程的數(shù)據(jù)和堆??臻g,并繼承父進程的用戶代碼、組代碼、環(huán)境變量、已打開的文件等。返回值:若成功在父進程返回新創(chuàng)建的子進程的進程號,而在子進程中返回0;如果失敗則返回-1相關函數(shù):getpid頭文件:#include函數(shù)原型:pid_tgetpid(void);函數(shù)說明:取得當前進程的進程號返回值:當前進程的進程號相關函數(shù):getppid頭文件:#include函數(shù)原型:pid_tgetppid(void);函數(shù)說明:取得當前進程

42、的父進程的進程號返回值:當前進程父進程的進程號相關函數(shù):system頭文件:#include函數(shù)原型:intsystem(constchar*string);函數(shù)說明:該函數(shù)會調(diào)用fork創(chuàng)建子進程,由子進程來執(zhí)行參數(shù)string代表的命令返回值:調(diào)用成功時會返回執(zhí)行命令后的返回值,否則要檢查errno來確定原因相關函數(shù):wait頭文件:#include#include函數(shù)原型:pid_twait(int*status);函數(shù)說明:暫停當前進程的執(zhí)行,直到有信號來或子進程結(jié)束。如果在調(diào)用wait時子進程已經(jīng)結(jié)束,則會立刻返回。子進程的結(jié)束狀態(tài)值由參數(shù)status返回返回值:結(jié)束的子進程的進程號相關函數(shù):waitpid頭文件:#include#include函數(shù)原型:pid_twai

溫馨提示

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

評論

0/150

提交評論