open函數詳解


open函數

函數原型:int open(const char*pathname,int flags);

        int open(const char*pathname,int flags,mode_t mode);

該函數有兩個函數原型,其實是參數的數量問題。

1、int open(const char*pathname,int flags);

第一個參數是要打開的文件名,第二個參數是特殊常量,用於指定怎么打開文件。具體常量如下

參數:
O_RDONLY: 只讀打開
O_WRONLY: 只寫打開
O_RDWR: 讀,寫打開
這三個常量,必須制定一個且只能指定一個
O_CREAT: 若文件不存在,則創建它,需要使用mode選項。來指明新文件的訪問權限
O_APPEND: 追加寫,如果文件已經有內容,這次打開文件所寫的數據附加到文件的末尾而不覆蓋原來的內容

返回值:成功打開返回打開文件的文件描述符,是int類型,失敗返回-1.

2、 int open(const char*pathname,int flags,mode_t mode);

前兩個參數與上相同,第三個參數是設定該文件的權限,具體參數如下

S_IRUSR    : 文件所有者有讀(r)權限

S_IWUSR   : 文件所有者有寫(w)權限

S_IRGRP   : 文件所屬組有讀(r)權限

S_IWGRP  : 文件所屬組有寫(w)權限

S_IROTH   : 文件所屬other有讀(r)權限

S_IWOTH  : 文件所屬other有寫(w)權限

例子:

if((filefd = open(G_errfile, O_CREAT|O_RDWR|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)) == -1)
{
printf("++++++++++++++=open file fail\n");
return -1;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM