Linux檔案IO操作
阿新 • • 發佈:2018-11-02
Linux檔案IO操作包括開啟(open),建立(create),讀(read),寫(write)
開啟open
- int open(const char *path, int oflags);
- int open(const char *path, int oflags,mode_t mode);
- 引數path表示:路徑名或者檔名。路徑名為絕對路徑名。
- 引數oflags表示:開啟檔案所採取的動作
- O_RDONLY檔案只讀;O_WRONLY檔案只寫;O_RDWR檔案可讀可寫;O_CREAT訪問該檔案時若沒有則建立
- O_NOCTTY如果路徑指向終端,則不將裝置作為此程序的控制終端
- O_NDELAY非阻塞方式操作檔案
- mode表示:設定建立檔案的許可權。許可權的巨集定義很麻煩,可以直接用數
字替代,例如0777; - 返回值:出錯返回-1;否則返回檔案控制代碼
建立檔案creat
- int creat(const char * pathname, mode_t mode);
- 引數path表示:路徑名或者檔名。路徑名為絕對路徑名。
- 引數oflags表示:開啟檔案所採取的動作
- O_RDONLY檔案只讀;O_WRONLY檔案只寫;O_RDWR檔案可讀可寫
寫檔案write
- 關閉檔案close函式:
- int close(int fd);
- 寫檔案write函式:
- ssize_t write(int fd, const void *buf, size_t count);
- 引數fd表示:使用open 函式開啟檔案之後返回的控制代碼
- 引數*buf表示:寫入的資料
- 引數count表示:最多寫入位元組數
- ssize_t 是資料型別,在32位機器上等同與int,在64位機器上等同與long int
- void perror(const char *str),輸出錯誤資訊,str – 這是 C 字串,包含了一個自定義訊息,將顯示在原本的錯誤訊息之前。
讀檔案read
- ssize_t read(int fd,void *buf,size_t len);
- 引數fd:使用open 函式開啟檔案之後返回的控制代碼
- 引數*buf:讀出的資料儲存的位置
- 引數len:每次最多讀len 個位元組
- 返回值:錯誤返回-1,執行成功返回實際讀取值