lseek函式 操作檔案指標,實現計算檔案長度,構建空洞檔案
阿新 • • 發佈:2018-12-29
lseek(fd, 偏移量, 參照物即從哪裡開始移動);
off_t lseek(int fd, off_t offset, int whence);
- 計算檔案長度程式碼:
#include <sys/types.h> #include <unistd.h> #include<stdio.h> #include <sys/stat.h> #include <fcntl.h> #include<stdlib.h> #include<string.h> //off_t lseek(int fd, off_t offset, int whence); int main(int argc ,char *argv[]) { if (argc!=2) { printf("error! 格式:./seek +filename\n"); exit(-1); } int fd =-1; //檔案描述副 off_t ret=-1;//長度返回值 printf("%s\n",argv[1]); //第一步:開啟檔案 fd=open(argv[1],O_RDWR ); if(fd<0) { printf("檔案開啟錯誤\n"); exit(-1); } else { printf("檔案%d開啟成功\n",fd); } //測試檔案長度 ret=lseek(fd,0,SEEK_END); printf("檔案長度為:%ld個位元組\n",ret); //第三步:關閉檔案 close(fd); return 0; }
- 構建空洞檔案
構建空洞檔案應用於多個執行緒共同分別操作檔案指標來構建大檔案提高效率,比如迅雷的下載的進度條