寫專案的時候,當我把實現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 ...