日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

open函数和errno全局变量

發(fā)布時間:2023/11/30 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 open函数和errno全局变量 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1open函數(shù)

man man?? 查看man文檔的首頁? 其中DESCRIPTION部分描述了man文檔的每一章的章節(jié)內(nèi)容 第2章System calls為系統(tǒng)調(diào)用,即Liunx系統(tǒng)函數(shù)。 man 2 open 查看第二章的open函數(shù)的詳細幫助文件。

open函數(shù)用于打開一個已經(jīng)的文件或者創(chuàng)建一個沒有的文件,其詳細描述如下:

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>?? //open函數(shù)對應了三個頭文件

?

int open(const char *pathname, int flags);? //打開一個已有的文件

int open(const char *pathname, int flags, mode_t mode); //文件不存在,創(chuàng)建一個新的文件

?

pathname為打開文件的路徑??? mode_t為文件權(quán)限的類型,如:777? 764等???? flags參數(shù)用于指定打開文件的方式:O_RDONLY(只讀)、O_WRONLY(只寫)或O_RDWR(讀寫),這三個參數(shù)是互斥的。flags還可以是:O_CLOEXEC, O_CREAT, O_DIRECTORY, O_EXCL, O_NOCTTY, O_NOFOLLOW, O_TRUNC和 O_TTY_INIT。當采用上述第二個open函數(shù)(有三個參數(shù))創(chuàng)建一個文件時,flags需指定為O_CREAT(O_RDWR | O_CREAT。mode_t為創(chuàng)建的文件指定一個權(quán)限。

open函數(shù)的返回值。其返回值為打開或創(chuàng)建文件的文件描述符(無符號整數(shù))。如果返回值為-1(EOF),則說明在打開或創(chuàng)建文件時發(fā)生了錯誤(打開或創(chuàng)建文件失敗),在這種情況下(函數(shù)調(diào)用失敗),詳細的錯誤信息保存在全局變量errno中,可以進行查看。

2errno全局變量

errno全局變量,是記錄系統(tǒng)的最后一次錯誤代碼(整數(shù)值,會被覆蓋),為int類型。errno全局變量定義在頭文件/usr/include/errno.h中,該文件有: extern int errno; 即是對全局變量的聲明。在程序啟動時,errno?設(shè)置為零(未初始化全局變量),C 標準庫中的特定函數(shù)修改它的值為一些非零值以表示某些類型的錯誤。您也可以在適當?shù)臅r候修改它的值或重置為零。注意:在使用errno變量時,僅需要包含頭文件errno.h即可。

errno的代碼值(整型值)都進行了宏定義,其定義在兩個頭文件中:/usr/include/asm-generic/errno-base.h(1~34)和 /usr/include/asm-generic/errno.h(35~133)。如下圖所示:

上圖中最后面的注釋部分表示該代碼值所對應的具體是哪一種錯誤類型。每個errno值對應著以字符串表示的錯誤類型,當調(diào)用“某些”函數(shù)出錯時,該函數(shù)會重新設(shè)置 errno 的值。為了查看errno代碼值對應的詳細錯誤,需要使用perror函數(shù),其功能如下圖:

perror函數(shù)在頭文件stdio.h中聲明,其將errno代表的詳細錯誤類型輸出到標準錯誤流(文件描述符為2),如顯示到屏幕上。其參數(shù)s所指的字符串是用戶自己輸入的,以提示用戶這是屬于哪一個操作的錯誤。

總結(jié)

以上是生活随笔為你收集整理的open函数和errno全局变量的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。