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)
上一篇 2022年6月24日 下午9:36
下一篇 2022年6月24日 下午9:36


相关推荐

  • Eureka面试题_多线程编程面试题

    Eureka面试题_多线程编程面试题点击关注我的博客原文Eureka是Netflix组件的一个子模块,也是核心模块之一。云端服务发现,一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和故障转移(来源springcloud中文网的介绍:https://www.springcloud.cc/)。下图总结了Eureka服务端(以下简称服务端)与Eureka客户端(以下简称客户端)之间协同工作的流程:流程说明:…

    2022年8月21日
    7
  • Cinemachine简介「建议收藏」

    Cinemachine简介「建议收藏」先贴一下官方的Cinemachine文档"CinemachineDocumentation"简介使用我们第一次使用Cinemachine时大概是这样一个流程:1.在需

    2022年8月3日
    9
  • 阿里巴巴Java开发手册(纪念版 1.3.1)记录

    阿里巴巴Java开发手册(纪念版 1.3.1)记录文章目录阿里巴巴 Java 开发手册 纪念版 1 3 1 一 OOP 规约二 命名风格三 常量定义四 集合处理五 控制语句六 注释规约七 日志规约八 其它阿里巴巴 Java 开发手册 纪念版 1 3 1 一 OOP 规约 1 强制 避免通过一个类的对象引用访问此类的静态变量或静态方法 无谓增加编译器解析成本 直接用类名来访问即可 2 强制 不能使用过时的类或方法 说明 java net URLDecoder 中的方法 decode Stringencode 这个方法已经过时 应该使用双

    2026年3月18日
    2
  • dlv golang调试

    dlv golang调试golangdlv 调试

    2026年3月19日
    2
  • SVR回归_时间序列分析优缺点

    SVR回归_时间序列分析优缺点文章目录1.SVR时间序列预测2.SVR调参3.SVR高斯核与过拟合1.SVR时间序列预测SVR可用于时间序列分析,但不是较好的选择。现在一般采用LSTM神经网络来处理时间序列数据#SVR预测#也可用于时间序列分析(ARIMA也可用于时间序列分析)importnumpyasnpfromsklearnimportsvmimportmatplotlib.pyplotaspltif__name__==”__main__”:#构造数据N=50

    2025年7月29日
    2
  • 明明白白你的Linux服务器——网络篇

    明明白白你的Linux服务器——网络篇前言 希望大家看完此文后 能很清楚明白你的服务器的网络情况 能很轻松的配置其网络环境 毕竟 Linux 服务器在装完系统 配置其网络环境是每一个 systemadmini 的职能 一 服务器的网络配置在服务器的网络配置时 喜欢图形的朋友可用 setup 或 system config network 来配置 网卡配置文件为 etc sysconfig

    2026年3月17日
    4

发表回复

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

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