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

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/149455.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Java别说取余(%)运算简单,你真的会吗?

    Java别说取余(%)运算简单,你真的会吗?一,直击现场下面我来抛出几道题:说明m是商,n是余数;(1)正数%正数3%2=m…….n2%3=m…….n(2)正数%负数或者负数%正数-3%2=m…….n3%-2=m…….n-2%3=m…….n2%-3=m…….n(3)负数%负数-3%-2=m…….n-2%-3=m…….n二,验证时刻下面的结果没有商m只有余数n;有没有全部答对呢?没有的话来看总结吧

  • Jquery delegate 在iPhone的safari下有bug

    Jquery delegate 在iPhone的safari下有bug使用delegate注册事件时,iphone的safari不能冒泡到body上,

    2022年10月19日
  • HDU-1498-50years,50colors(最大匹配, 枚举)

    HDU-1498-50years,50colors(最大匹配, 枚举)

  • 本工作站与主域失去信任_电脑加域后无管理员

    本工作站与主域失去信任_电脑加域后无管理员1.如图。解决方式原因:用户和域的安全通道损坏。解决方式:方式1:退域加域名。(需要重启两次麻烦)方式2:推荐方式:用本地管理员进去。用命令修复安全通道。(使用powershell输入命令打开)(不需要重启)Test-ComputerSecureChannel-Credential域账号(域名\账号)-Repair注意:在本地管理管理员,多尝试几次就能修复了。修复的标志:命令:Test-ComputerSecureChannel造成退域的原因:(不止这几点)1.密码更新失败

    2022年10月19日
  • c# 操作ad域用户

    c# 操作ad域用户测试环境:win2008r2服务器ad域服务器安装参考:https://www.cnblogs.com/cnjavahome/p/9029665.html密码策略修改参考:https://blog.csdn.net/zouyujie1127/article/details/40857675工作机dns设置为ad域服务器的ipusing:usingSystem.DirectoryServ…

  • Java定时器(Timer)「建议收藏」

    Java定时器(Timer)「建议收藏」1.介绍Timer和TimerTask是用于在后台线程中调度任务的javautil类。简单地说,TimerTask是要执行的任务,Timer是调度器。2.调度一次性任务2.1指定延迟后执行让我们从简单地在定时器的帮助下运行单个任务开始:@TestpublicvoidgivenUsingTimer_whenSchedulingTaskOnce_thenCorrect(){TimerTasktask=newTimerTask(){publicvoid

发表回复

您的电子邮箱地址不会被公开。

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