Linux 下目錄是/這樣的 而windows是怎麼記呢?和w是不是一樣的反向?所以Linux的目錄就是反的反向,好記了。
一:open函數
名稱:open
目標:打開一個文件。
頭文件:#include
#include
#include < fcntl.h>
函數原形:int open(const char * pathname,int flags);
int open(const char * pathname,int flags,mode_t mode);
參數: pathname 文件名
flags 打開模式
返回值:-1 遇到錯誤
int 打開成功,返回文件描述符。
這個系統調用在進程和文件之間建立一條連接,這個連接被稱為文件描述符,它就像一條由進程通向內核的管道。
要打開一個文件,必須指定文件名和打開模式,有3種打開模式:只讀,只寫,可讀可寫,分別對應於O_RDONLY,O_WRONLY,O_RDWR,這在頭文件/usr/include/fcntl.h中有定義。
打開文件是內核提供的服務,如果在打開過程中內核檢測到任何錯誤,這個系統調用就會返回-1。錯誤的類型是各種各樣的,如:要打開的文件不存在。即使文件存在可能因為權限不夠而無法打開,在open的聯機幫助中列出了各種可能的錯誤,大家可以看看。
UNIX允許一個文件被多個進程訪問,也就是說當一個文件被一個進程打開後,這個文件還可以被其它進程打開。
如果文件被順利打開內核會返回一個正整數的值,這個數值就叫文件描述符,文件描述符是是一個簡單的整數,用以標明每一個被進程所打開的文件,描述符0代表標准輸出,對應的宏是 STDOUT_FILENO,描述符1代表標准輸入,對應的宏為STDIN_FILENO,描述符2代表標准錯誤輸出,對應的宏為STDERR_FILENO,系統給進程分配描述符都是從3開始的,如果同時打開好幾個文件,它們所對應的的文件描述符是不同的,如果一個文件打開多次,對應的文件描述符也不相同。必須通過文件描述符對文件操作。下面的程序可以證明這一點。
二:read函數
名稱:read
目標:把數據讀到緩沖區。
頭文件:#include < unistd.h>
函數原形:ssize_t read(int fd, void *buf, size_t count)
參數: fd 文件描述符
buf 用來存放數據的目的緩沖區
count 要讀取的字節數
返回值:-1 遇到錯誤
numread 成功關閉,返回所讀取的字節數目。
read這個系統調用請求內核從fd所指定的文件中讀取qty字節的數據,存放到buf所指定的內存空間中,內核如果成功地讀取了數據,就返回所讀取的字節數目。否則返回-1。
當文件的字節數沒有你想要的那麼多時,read就會判斷下一個數值是不是’