首页 > 系统相关 >Linux系统编程08-lseek.md

Linux系统编程08-lseek.md

时间:2022-10-14 22:25:38浏览次数:54  
标签:lseek md int 08 fd 文件 include SEEK

#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
  • 参数:

    • fd: 文件描述符,通过open得到,用来操作某个文件

    • offset: 偏移量

    • whence: 指定的标记

      • SEEK_SET 设置文件指针的偏移量
      • SEEK_CUR 设置偏移量,当前位置+第二个参数offset的值
      • SEEK_END 设置偏移量,文件大小+第二个参数offset的值
  • 返回值:返回文件指针的位置

  • 作用:

    • 移动文件指针到文件头 lseek(fd, 0, SEEK_SET);

    • 当前文件指针的位置 lseek(fd, 0, SEEK_CUR);

    • 获取文件长度 lseek(fd, 0, SEEK_END);

    • 拓展文件长度,当前文件10b -> 110b,增加了100个字节 lseek(fd,100,SEEK_END);
      需要写一次数据

实例:拓展文件的长度

lseek.c

#include <sys/types.h>
#include <unistd.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>

int main(int argc, char const *argv[])
{
    int fd = open("hello.txt", O_RDWR);
    if (fd == -1)
    {
        perror("open err");
        return -1;
    }
    //拓展文件长度
    int ret = lseek(fd, 100, SEEK_END);
    if (ret == -1)
    {
        perror("lseek err");
        return -1;
    }
    //写入空数据, 实现拓展
    write(fd, " ", 1);
    //关闭文件
    close(fd);

    return 0;
}

标签:lseek,md,int,08,fd,文件,include,SEEK
From: https://www.cnblogs.com/anqwjoe/p/16793188.html

相关文章

  • Linux系统编程13-truncate.md
    #include<unistd.h>#include<sys/types.h>inttruncate(constchar*path,off_tlength);作用:缩减或扩展文件尺寸至指定的大小,长的截断,短的扩展参数:......
  • Linux系统编程16-mkdir与rmdir
    #include<sys/stat.h>#include<sys/types.h>intmkdir(constchar*pathname,mode_tmode);作用:创建一个目录参数:pathname:创建的目录的路径......
  • Linux系统编程17-opendir,readdir与closedir.md
    #include<sys/types.h>#include<dirent.h>DIR*opendir(constchar*name);作用:打开一个目录参数:-name:需要打开的目录流返回值:......
  • Linux系统编程18-dup和dup2.md
    dup#include<unistd.h>intdup(intoldfd);作用:复制一个新的文件描述符,指向同一个文件, 从空闲的文件描述符表中找一个最小的作为新文件描述符参数:......
  • 08. MyBatis的查询专题
    一、环境的搭建1.1、数据的准备CREATEDATABASEIFNOTEXISTSdb_test;USEdb_test;CREATETABLEIFNOTEXISTSt_emp( emp_idINTPRIMARYKEYauto_increment, ......
  • 2022-10-08 20:50:49 星期六
    感觉现在啥也不会了,洛谷的普及都要写甚久,有的还要需要看题解从csp-j出分并且知道自己这一次没有希望进普及到现在已经快半个月了感觉自己要是进了复赛也可能只是拿个二等奖......
  • 打开cmd的几种方法
    打开cmd窗口的几种方法开始+Windows系统+命令提示符Windows+R,输入cmd,回车(推荐使用)在任意的文件夹下,按住shift键+鼠标右键,打开powershell窗口资源管理器的地址栏前加......
  • DEMO: BAPI_SALESORDER_CREATEFROMDAT2 创建订单
    REPORTzdemo_va01.PARAMETERSp_kunnrTYPEkunnrDEFAULT'1004615'.PARAMETERSp_vkorgTYPEvkorgDEFAULT'S600'.PARAMETERSp_vtwegTYPEvtwegDEFAULT'10'.PARAM......
  • Windows CMD批处理
    需要生成uuid时,可以使用WindowsSDK自带的工具uuidgen.exe如下  如果需要生成一千个,那么使用批处理生成到txt文件中,批处理脚本如下@echoonfor/l%%iin(1,1,100......
  • 前端 Blob 与 File 捎带 FormData 摘要
      Blob(BinaryLargeObject)表示二进制类型的大对象,通常是图片、视频、文档等如上图所示 一个blob对象 File 接口基于 Blob,继承了blob的功能并将其扩展使......