open(),close() 打開/關閉文件


Open

open()是一個系統調用函數,用來打開或創建一個文件,通過不同的oflag選項實現不同功能。

使用時open()函數需要包含的頭文件:<sys/types.h>,<sys/stat.h>,<fcntl.h>

函數原型:

  int open(const char *pathname, int oflags);

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

參數列表:

  pathname:要打開或創建的文件的全路徑名

  oflag:函數選項(可以是用 ' | ' 傳遞多個選線實現不同功能)。     

  O_RDONLY(只讀打開)、

  O_WRONLY(只寫打開)、

  O_RDWR(讀寫打開)中的一個於下列一個或多個常數

  O_APPEND: 追加到文件尾 O_CREAT: 若文件不存在則創建它。使用此選擇項時,需同時說明第三個參數mode,用其說明新聞件的訪問權限

  O_EXCL: 如果同時指定

  O_CREAT,而該文件又是存在的,報錯;也可以測試一個文件是否存在,不存在則創建。

  O_TRUNC: 如果次文件存在,而且為讀寫或只寫成功打開,則將其長度截短為0 O_SYNC: 使每次write都等到物理I\O操作完成。

  mode:對於open而言,僅當是用 O_CREAT 選項是才使用此參數,表示新建文件的權限設置。文件權限使用 3位 8進制數 (eg:0666)表示。

返回值:

  成功返回文件描述符,出錯返回-1 。

 

Close

close()是一個系統調用函數(systemcall)。作用關閉一個打開的文件。

需要包含的頭文件:<unistd.h>

函數原型:

  int close(int fd)

參數:

  fd:需要關閉文件的文件描述符。

返回值:

  成功返回 0;   出錯返回 -1;

  當一個進程終止的時候,它所有的打開文件都是由內核自動關閉。很多程序都使用這一功能而不顯式地調close關閉一個已打開的文件。 但是,作為一名優秀的程序員,應該顯式的調用close來關閉已不再使用的文件。

 

使用open創建一個文件,close關閉:open.c

 1 #include <stdio.h>
 2 #include <unist.h>
 3 #include <sys/types.h>
 4 #include <sys/stat.h>
 5 #include <fcntl.h>
 6  
 7 #define FILE_PATH   "./test.txt"
 8  
 9 int main(void)
10 {
11    int fd;
12   /*創講一個權限為0666的文件,並以讀寫方式打開,若文件已存在進行提示*/
13 if ((fd = open(FILE_PATH, O_RDWR | O_CREAT | O_EXCL, 0666)) < 0) { 14 printf("open error\n");      /*當前目標已存在test.txt文件,打印“open error”*/ 15 exit(-1); 16 } else { 17 printf("open success\n");     /*不存在創建該文件,打印“open success”*/ 18 }
19   close(fd);        /*關閉文件*/ 20
return 0; 21 }

 


免責聲明!

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



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