1.23 lseek函数

1.23 lseek函数参考:牛客网C++高薪求职项目《Linux高并发服务器开发》1.22read、write函数专属优惠链接:https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG

大家好,又见面了,我是你们的朋友全栈君。

 

1.23 lseek函数

//标准C库函数
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);


//linux系统函数
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);

    参数:
        -fd:文件描述符
        -offset:偏移量
        -whence:
            SEEK_SET
                设置文件指针的偏移量,为文件起始地址
            SEEK_CUR
                设置文件指针的偏移量,为当前位置+第2个参数offset的值
            SEEK_END
                设置文件指针的偏移量,为文件大小+第2个参数offset的值
    返回值:返回文件指针的位置

作用:
    1.移动文件指针到文件头:               lseek(fd, 0, SEEK_SET);
    2.获取当前文件指针的位置:             lseek(fd, 0, SEEK_CUR);
    3.获取文件长度:                      lseek(fd, 0, SEEK_END);
    4.拓展文件的长度,如增加100字节:       lseek(fd, 100, SEEK_END);
     注意:拓展文件后需要写一次数据

例子:

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

//lseek/write
#include <unistd.h>

int main()
{
    int fd=open("hello.txt", O_RDWR);
    if(fd==-1)
    {
        perror("open");
        return -1;
    }

    int ret=lseek(fd,100,SEEK_END);
    if(ret==-1)
    {
        perror("lseek");
        return -1;
    }
    //写入一个空格
    write(fd," ",1);

    close(fd);
    return 0;

}

1.23 lseek函数


参考:牛客网 C++高薪求职项目《Linux高并发服务器开发》1.23 lseek函数

专属优惠链接:

https://www.nowcoder.com/courses/cover/live/504?coupon=AvTPnSG

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149456.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安卓报错:java.lang.RuntimeException: Unable to start activity ComponentInfo—getSupportActionBar()为null

    安卓报错:java.lang.RuntimeException: Unable to start activity ComponentInfo—getSupportActionBar()为nulljava.lang.RuntimeException:UnabletostartactivityComponentInfo—getSupportActionBar()为null。

    2022年7月25日
    8
  • L2-014列车调度(最长上升子序列LIS)[通俗易懂]

    L2-014列车调度(最长上升子序列LIS)[通俗易懂]原题链接最长上升子序列火车站的列车调度铁轨的结构如下图所示。两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。每趟列车从入口可以选择任意一条轨道进入,最后从出口离开。在图中有9趟列车,在入口处按照{8,4,2,5,3,9,1,6,7}的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?输入格式:输入第一行给出一个整数N (2 ≤ N ≤10​5​​ ),下一行给出从1到N的整数序号的一个重排列。数字间

    2022年8月8日
    5
  • 关于html5的PostMessage的用法总结

    关于html5的PostMessage的用法总结  大家都知道,网页直接传递数据可以使用ajax请求来完成,今天我总结下我学习的postMessage是如何完成跨页面请求数据的呢?首先,postMessage是html5新增的一个解决跨域的一个方法。那他是如何使用的呢?这里我把一个案例分享出来把。看下面的代码:test.html&lt;!DOCTYPEhtml&gt;&lt;html&gt;&lt;head&gt; &lt;titl…

    2022年7月13日
    16
  • 批量给图片重命名_图片快速重命名编号

    批量给图片重命名_图片快速重命名编号如果你是一名摄影师,又或者你是一名图片设计的工作人员,工作中肯定会面对很多图片文件,图片多了就需要进行整理,不然就很难区分和管理,就很不利于我们的使用。为了更好的整理往往我们就需要给图片进行重命名并且排序,这就出现一个问题了,如何批量重命名这些图片并且进行编号呢?如果你还不知道如何解决这个问题,那么你就要跟随小编的步伐,我来为大家详细介绍图片批量重命名编号的方法吧!需要使用的软件:优速文件批量重命名软件下载地址:免费下载优速文件批量重命名软件https://www.yososoft.com/do

    2025年9月12日
    5
  • tp3.2.3 解决http://lx.com/后必须加index.php才能访问的问题,配置文件中忘了加index index.php index.html 等默认文件…

    tp3.2.3 解决http://lx.com/后必须加index.php才能访问的问题,配置文件中忘了加index index.php index.html 等默认文件…

    2021年10月17日
    48
  • varchar2和varchar2(char)_datetime数据类型

    varchar2和varchar2(char)_datetime数据类型charvarcharvarchar2的区别 区别:1.CHAR的长度是固定的,而VARCHAR2的长度是可以变化的,比如,存储字符串“abc”,对于CHAR(20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2(20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 2.CHAR的效率比VARCHAR2的效

    2022年4月20日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号