用lseek函式來獲取檔案大小

2021-08-22 04:26:38 字數 1119 閱讀 9623

最近複習網路程式設計相關的知識點。

遇見了lseek。

一、獲取檔案大小

/*測得檔案大小*/int filelen;int fd;int filelen= lseek(fd,0l,seek_end);lseek(fd,0l,seek_set);

printf("file size is %d\n",filelen);

二、lseek使用說明

表頭檔案

#include

#include

定義函式

off_t lseek(int filde,off_t offset ,int whence);

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

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

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

當whence 值為seek_cur 或seek_end時,引數offet允許負值的出現。

下列是較特別的使用方式:

1) 欲將讀寫位置移到檔案開頭時:

lseek(int fildes,0,seek_set);

2) 欲將讀寫位置移到檔案尾時:

lseek(int fildes,0,seek_end);

3) 想要取得目前檔案位置時:

lseek(int fildes,0,seek_cur);

返回值:

當呼叫成功時則返回目前的讀寫位置,也就是距離檔案開頭多少個位元組。若有錯誤則返回-1,errno 會存放錯誤**。

可能設定erron的錯誤**:

ebadf: fildes不是乙個開啟的檔案描述符。

espipe:檔案描述符被分配到乙個管道、套接字或fifo。

einval:whence取值不當。

linux 使用lseek函式來獲取檔案大小

一 獲取檔案大小 測得檔案大小 int filelen int fd int filelen lseek fd,0l,seek end lseek fd,0l,seek set printf file size is d n filelen 二 lseek使用說明 表頭檔案 include incl...

linux 使用lseek函式來獲取檔案大小

一 獲取檔案大小 測得檔案大小 int filelen int fd int filelen lseek fd,0l,seek end lseek fd,0l,seek set printf file size is d n filelen 二 lseek使用說明 表頭檔案 include incl...

獲取檔案大小

1 找到檔案所在的絕對路徑。系統路徑 projectpath request.getsession getservletcontext getrealpath 檔案路徑 在上傳檔案的時候,一定會有檔案相對路徑,如果不清楚,可以打斷點然後在本地找到此檔案。檔案相對路徑 filepath 絕對路徑rea...