unix環境高級編程——文件i/o
阿新 • • 發佈:2017-05-27
line data 範圍 weight osi p s unistd.h 指定 cli
使用open返回的文件描寫敘述符作為參數傳遞給write或read。依照慣例,UNIX中文件描寫敘述符0與標準輸入相關聯,文件描寫敘述
符1與標準輸出相關聯,文件描寫敘述符2與標準出錯輸出相關聯。
一、文件描寫敘述符
對於內核。通過文件描寫敘述符來管理文件。什麽是文件描寫敘述符?
在unix中,用open或者create建立幾個文件時候,內核向進程返回一個整數,用來記錄此文件。
以後對文件進行操作的時候。就用此文件描寫敘述符做引用。
二、open函數
open函數用於建立一個文件,函數返回文件描寫敘述符。
[cpp] view plaincopy- #include <fcntl.h>
- int open(const char *pathname, int flag);
-
int open(const char *pathname,
- //返回值,假設成功返回文件描寫敘述符。假設出錯返回-1
使用open返回的文件描寫敘述符作為參數傳遞給write或read。依照慣例,UNIX中文件描寫敘述符0與標準輸入相關聯,文件描寫敘述
符1與標準輸出相關聯,文件描寫敘述符2與標準出錯輸出相關聯。
按照POSIX標準,0、1、2通常被替換成符號常量STDIN_FILENO、
STDOUT_FILENO、STDERR_FILENO(定義在頭文件unistd.h中)。
文件描寫敘述符的範圍為0~OPEN_MAX。
pathname為文件的絕對路徑或相對路徑。
flag用於指定文件的打開/創建模式,這3個常量定義在fcntl.h中。這3個參數是必選的,並且僅僅能選擇一個:
O_RDONLY 僅僅讀模式
O_WRONLY 僅僅寫模式
O_RDWR 讀寫模式
unix環境高級編程——文件i/o