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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • lmdb数据库的读取与转换(二) —— 数据集操作

    lmdb数据库的读取与转换(二) —— 数据集操作数据集的lmdb将数据集转换成lmdb实际上就是一条条地将img和label的key-value形式写进lmdb中importcv2importlmdbimportnumpyasnpenv=lmdb.open(‘./data/train/CVPR2016’)txn=env.begin()forkey,valueintxn.cursor():#遍历print(key)#print(value)env.close()遍历lmdb中..

    2022年9月25日
  • 5G网络切片综述 — 1

    5G网络切片综述 — 1简介随着5G时代的来临,21年的SA在国内的全范围商用,现阶段人们对于5G的必要性认识还不足。主要是目前人们用的5G主要集中在eMBB(enhancedMobileBroadband)即增强型移动带宽的阶段,而大数据业务如在线直播、高清视频等在4G上都得到了很好的支持,所以带宽的继续增大对于用户体验的边际效应递减。5G所带来的真正改善并不仅仅是在于大带宽,而在于5G提供了在同一张物理5G网络的情况下,同时能够提供eMBB,URLLC(Ultra-ReliableLow-LatencyCommun

    2022年10月2日
  • ClassCastException深入分「建议收藏」

    ClassCastException深入分「建议收藏」ClassCastException深入分析

    2022年9月10日
  • linux下载安装软件的命令(linux查看日志命令grep)

    LINUX下安装软件包常有三种linux常用命令,不同的软件包有不同的安装方法:tar包,整个安装过程可以分为以下几步:1)取得应用软件:通过下载、购买光盘的方法获得;2)解压缩文件:一般tar包,都会再做一次压缩,如gzip、bz2等,所以你需要先解压。如果是最常见的gz格式linux常用命令,则可以执行:“tar–xvzf软件包名”,就可以一步完成解压与解包工作。如果不是,则先用解压软件…

    2022年4月17日
  • Java面试-面向对象

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 Q1。什么是多态? 多态被简要描述为“一个接口,许多实现”。多态性是能够在不同上下文中为某事物赋予不同含义或用法的一…

    2021年6月23日
  • 光猫 路由器 ipv6_ipv6光猫设置

    光猫 路由器 ipv6_ipv6光猫设置电信光猫桥接+ML固件路由器实现ipv6网站访问

    2022年10月8日

发表回复

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

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