UNIXLinux環(huán)境高級編程.ppt

UNIXLinux環(huán)境高級編程.ppt

ID:50962328

大?。?25.00 KB

頁數:41頁

時間:2020-03-16

UNIXLinux環(huán)境高級編程.ppt_第1頁
UNIXLinux環(huán)境高級編程.ppt_第2頁
UNIXLinux環(huán)境高級編程.ppt_第3頁
UNIXLinux環(huán)境高級編程.ppt_第4頁
UNIXLinux環(huán)境高級編程.ppt_第5頁
資源描述:

《UNIXLinux環(huán)境高級編程.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、低級文件I/O系統(tǒng)調用open()read()write()lseek()dup()dup2()fcntl()lockf()flock()ioctl()close()文件描述當打開一個現存文件或創(chuàng)建一個新文件時,內核向進程返回一個文件描述符。當讀、寫一個文件時,用open或creat返回的文件描述符標識該文件,將其作為參數傳送給read、write、lseek和close等。按照慣例,UNIXshell使文件描述符:0-stdin1-stdout2-stderr在POSIX.1應用程序中,標準I/O描述符被定義為:0-STDIN_FI

2、LENO;1-STDOUT_FILENO;2-STDERR_FILENO這些常數都定義在頭文件中。文件描述符的范圍是0~OPEN_MAX。早期的UNIX版本采用的上限值是19(即20),現在很多系統(tǒng)則將其增加至256且可以以內核參數的辦法設置,比方說1024。原始系統(tǒng)數據類型在UNIX/Linux的開發(fā)過程中用到的以_t結尾的數據為系統(tǒng)原始數據。系統(tǒng)原始數據在頭文件中被定義。出錯處理UNIX函數出錯時,往常返回一個負值,而且整型變量errno通常設置為具有特定信息的一個值。例如,open函

3、數如成功執(zhí)行則返回一個非負文件描述符,如出錯則返回-1。在open出錯時,有大約15種不同的errno值。某些函數并不返回負值而是使用另一種約定。例如,返回一個指向對象的指針的大多數函數,在出錯時,將返回一個null指針(NULL)。文件中定義了變量errno以及可以賦與它的各種常數。這些常數都以E開頭。在Linux系統(tǒng)中,errno定義在頭文件/usr/include/asm/errno.h,多達124條。errnoPOSIX定義errno為:externinterrno;對于errno應當知道兩條規(guī)則:1:如果沒

4、有出錯,則其值不會被一個例程清除。因此,僅當函數的返回值指明出錯時,才檢驗其值。2:任一函數都不會將errno值設置為0,在中定義的所有常數都不為0。錯誤處理的標準函數strerror():功能:以字符串方式打印錯誤信息。用法:#includechar*strerror(interrnum);返回:指向消息字符串的指針。perror()功能:在標準錯誤上產生一條基于其參數串和errno的當前值出錯消息。用法:#includevoidperror(constchar*msg);輸出

5、:首先輸出由msg指向的字符串,然后是一個冒號,一個空格,然后是對應于errno值的出錯信息,然后是一個新行符。處理錯誤的示例1#include#includemain(intargc,char*argv[]){fprintf(stderr,"EACCES=%d:%s",EACCES,strerror(EACCES));errno=ENOENT;perror(argv[0]);}結果:假設,編譯后生成a.out,則輸出為:EACCES=13:Permissiondenied./a.out:Nos

6、uchfileordirectory處理錯誤的示例2#include#includemain(intargc,char*argv[]){inti,fd;for(i=1;i#include#includein

7、topen(constchar*name,intoflag);intopen(constchar*ame,intoflag,mode_tmode);返回值:成功時為文件描述符,出錯則為-1。出錯時errno被設置。open的參數pathname是要打開或創(chuàng)建的文件的名字。oflag參數可用來說明此函數的多個選擇項。用下列一個或多個常數進行或運算構成oflag參數(在fcntl.h中):?O_RDONLY:只讀打開。?O_WRONLY:只寫打開。?O_RDWR:讀寫打開?O_APPEND:追加方式。?O_CREAT:若不存在則創(chuàng)建它。需

8、同時使用第三個參數mode。?O_EXCL:如果同時指定了O_CREAT,而文件已經存在,則出錯。這可測試一個文件是否存在,如果不存在則創(chuàng)建此文件成為一個原子操作。?O_TRUNC:果此文件存在,則將其長度截短為0。?O

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。