1. 程式人生 > >unix環境高級編程——文件i/o

unix環境高級編程——文件i/o

line data 範圍 weight osi p s unistd.h 指定 cli

一、文件描寫敘述符

對於內核。通過文件描寫敘述符來管理文件。什麽是文件描寫敘述符?

在unix中,用open或者create建立幾個文件時候,內核向進程返回一個整數,用來記錄此文件。

以後對文件進行操作的時候。就用此文件描寫敘述符做引用。

二、open函數

open函數用於建立一個文件,函數返回文件描寫敘述符。

[cpp] view plaincopy
  1. #include <fcntl.h>
  2. int open(const char *pathname, int flag);
  3. int open(const char *pathname,
    int flag, mode_t mode);//僅僅有新創建文件時才會使用該函數
  4. //返回值,假設成功返回文件描寫敘述符。假設出錯返回-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