fcntl函数

fcntl函数能够改变已经打开文件的属性。

fcntl函数的的功能其实很复杂,它的功能取决于cmd这个参数。在获取(修改)已打开文件状态标志的时候,cmd这个参数取F_GETFL或F_SETFL

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

int main()
{
    int fd = open("./1.txt",O_WRONLY);
    if (-1 == fd)
    {
        perror("Open Failed");
        exit(-1);
    }
    
    //一个汉字3字节大小
    write(fd,"我们都是好孩子",21);          //"我们都是好孩子会覆盖掉1.txt里原本的Hello World!"

    //获取打开文件的属性。
    int flag = fcntl(fd,F_GETFL,0);
    if (-1 == flag)
    {
        perror("Fcntl Failed");
        exit(-1);
    }
    
    //更改文件属性
    flag += O_APPEND;
    fcntl(fd,F_SETFL,flag);

    //然后写入,就是追加写入。
    write(fd,"——王筝\n",13);
    write(fd,"流川枫与苍井空——黑撒乐队\n",40);

    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 函数chmod

    chmod是对指定的文件进行操作,而fchmod则是对已经打开的文件进行操作。所以它们的第一个参数不一样。下面给出一个实例。

    zy010101
  • Linux进程通信——有名管道

    管道(pipe)是无名管道,他是进程资源的一部分,随着进程的结束而消失。并且它只能在拥有公共祖先进程的进程内通信。而有名管道(FIFO)的出现则解决了这个问题。...

    zy010101
  • 函数dup和dup2

    版权声明:本文为博主原创文章,转载请注明博客地址: ...

    zy010101
  • 每月2.5万奖学金+达摩院科学家授课:阿里联手新加坡南洋理工培养AI博士

    昨天,阿里巴巴宣布,将携手新加坡南洋理工大学(NTU)、新加坡经济发展局(EDB),正式启动人工智能博士生培养计划,准入者每人每月将获得5000新元(约合2.5...

    大数据文摘
  • 大众供应商质量能力管理系统(Formel Q第八版)全面解析附实战案例 PPT

    用户5495712
  • 全球首次无人车致人死亡事件不幸发生,这次又是Uber闯祸

    美国西部时间3月18日晚22点,以气候和自动驾驶友好政策著称的亚利桑那州,49岁的伊莱-恩赫茨伯格(Elaine Herzberg)在人行横道外横穿马路,被Ub...

    量子位
  • 视频 | 乘坐无人驾驶的Uber是种怎样的体验?

    今天早上,量子位的读者微信群里,讨论了一下Uber无人车的话题。虽然无人驾驶的Uber在美国已经上路测试了一段时间,但对国内用户还是有点陌生。 到底乘坐无人驾驶...

    量子位
  • Uber准备放弃自动驾驶,转手卖给前谷歌无人车CTO,估值曾被孙正义炒到72.5亿美元

    The Verge评价称,如果交易达成,那么将标志着Uber这个部门的坎坷之路就此终结。

    量子位
  • nginx+yii2

    双面人
  • 致命车祸8个月后,即将重新上路的Uber无人车真的准备好了吗?

    3月18日晚10点,49岁的Elaine Herzberg被Uber无人驾驶测试车撞倒,抢救无效身亡。

    大数据文摘

扫码关注云+社区

领取腾讯云代金券