zoukankan      html  css  js  c++  java
  • lseek使用说明

    lseek使用说明

    表头文件
    #include<sys/types.h>
    #include<unistd.h>


    定义函数
    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取值不当。

    #define BUFFER_SIZE 1024
    int main(int argc,char **argv)  
    {  
        int  readfd, writefd;  
        long filelen=0;  
        int  ret=1;  
        char buffer[BUFFER_SIZE];  
        char *ptr;  
      
        /*打开源文件*/   
        if((readfd=open("test.txt", O_RDONLY|O_CREAT)) == -1)   
        {   
            printf("Open Error
    ");   
            exit(1);   
        }   
       
          /*创建目的文件*/   
        if((writefd=open("dest.txt", O_WRONLY|O_CREAT)) == -1)   
        {   
            printf("Open Error
    ");   
            exit(1);   
        }   
        
        /*测得文件大小*/  
        filelen= lseek(readfd,0L,SEEK_END);  
        lseek(readfd,0L,SEEK_SET);  
        printf("read file size is %d
    ",filelen);  
        
        /*进行文件拷贝*/  
        while(ret)   
        {   
            ret= read(readfd, buffer, BUFFER_SIZE);  
            if(ret==-1)  
            {  
                printf("read Error
    ");   
                exit(1);          
            }  
            write(writefd, buffer, ret);  
            filelen-=ret;  
            bzero(buffer,BUFFER_SIZE);  
        }   
     
        close(readfd);   
        close(writefd);   
        exit(0);   
    }
  • 相关阅读:
    学习bn算法
    记录pytorch的几个问题
    Python: 你不知道的 super
    cmd里面怎么复制粘贴
    tensorflow的transpose
    应该做一个软件,直接把视频里面的英语,转换成字幕,然后翻译
    继续修改,爬虫贴吧,上次的每次只取一个图片.
    Deleting elements
    Map, filter and reduce
    List methods
  • 原文地址:https://www.cnblogs.com/lesroad/p/9831529.html
Copyright © 2011-2022 走看看