Linux檔案操作函式

2021-09-25 10:48:18 字數 1161 閱讀 5049

寫專案的時候,當我把實現linux的基本功能的**寫完之後,寫斷點續傳時,有點難度(我對lseek學的不好)。

send這個函式是不能傳整形值的只能傳字元型別

1、open( int open (const char *filename,int flag,/* int mode */) )

返回值:  1)-1    出錯                2) >=0   返回乙個檔案描述符fd

filename:開啟的檔名(不給路徑時只會在當前目錄下搜尋)

mode:建立檔案時,我們給這個檔案的屬性    (nnn)

2、read(int read(int fd , void * buf , size_t size))

fd:讀取的檔案 ,由open的返回值指定

buf:指定讀取的資料儲存的起始位置

size:指定一次最多讀取的位元組個數(不能超過緩衝區的大小)

返回值:1)-1出錯            2)返回讀取的資料位元組數

3、write(int write(int fd , void *buf ,size_t size))

fd:寫入的檔案描述符

buf :寫入的資料的起始位置

size:寫入資料的長度(位元組)

返回值:1)-1出錯            2)返回讀取的資料位元組數

4、close(int close(int fd))

fd:關閉的檔案描述符

返回值:1)-1  出錯             2)0   成功

5、lseek的用法

lseek()是用來控制乙個開啟檔案的讀寫位置

lseek是乙個系統呼叫函式,其次它的引數有三個(檔案型別指標,位移量,起始點),引數offset 為根據引數whence來移動讀寫位置的位移數.

第三個引數有三種情況

eek_set 將讀寫位置指向檔案頭後再增加offset個位移量。

seek_cur 以目前的讀寫位置往後增加offset個位移量。

seek_end 將讀寫位置指向檔案尾後再增加offset個位移量。

如果將第二個引數置0,那這三個分別代表,將fd指向檔案開始,fd指向目前位置,fd指向檔案尾部。

那麼我們就可以用來獲取檔案大小了  int size = lseek(fd,0,seek_end);

Linux 檔案操作函式

底層檔案操作函式 includeint open const char pathname,int flags int open const char pathname,int flags,mode t mode 返回值 成功,返回檔案描述符 失敗,返回 1,失敗原因記錄在errno中 int clo...

Linux檔案與目錄操作函式

目錄操作 getcwd獲得當前工作目錄,pathconf獲得系統目錄最大長度,chdir fchdir更改當前工作目錄,mkdir rmdir建立和刪除目錄。檔案操作 stat fstat lstat獲得檔案資訊,chmod fchmod修改檔案許可權,chown fchown lchown修改檔案...

linux檔案操作函式說明

1 open max常量 1 檔案描述符的範圍 0 open max 2 早期unix版本規定open max 19,即乙個程序可以開啟20個檔案 3 現在unix擴充套件了,一般open max 63,即乙個程序可以開啟64個檔案了 2 open函式 原型 int open const char ...