该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

没有截图,直接上代码吧。

原代码是这样的:

#include

#include

#include

#include

#include

int main()

{

int fd=-1;

ssize_t size=-1;

off_t offset=-1;

char buf1[]="0124553";

char buf2[]="dsfafads";

char filename[]="test1.txt";

int len=8;

fd=open(filename,O_RDWR|O_CREAT,S_IRWXU);

if(-1==fd)

{

printf("fd open fd:%d",fd);

return -1;

}

size=write(fd,buf1,len);

if(size!=len)

{

printf("size buf1 write size:%d len=%d fd=%d" ,size,len,fd);

return -1;

}

offset = lseek(fd,32,SEEK_SET);

if(-1==offset)

{return -1;}

size=write(fd,buf2,len);

if(size!=len)

{

return -1;

}

close(fd);

return 0;

}

运行结果是正常的,在test1.txt文件中输入了两段字符,中间隔着'\0'字符。

我把 fd=open(filename,O_RDWR|O_CREAT,S_IRWXU);中的参数O_RDWR改为O_APPEND参数,这个参数书上的定义为打开文件的时候,每次写操作前,将写操作的位置移动到文件的结尾处。然后我在test1.txt中预先加入一段字符,再次运行修改参数后编译的程序,经测试在size=write(fd,buf1,len);这个地方size获得的值是-1。后来又直接用简单的write和open函数进行O_APPEND参数测试,还是出现同样的问题,这是为什么?求大佬讲解一下。

Linux中append函数的用法,linux C代码 open函数参数:O_APPEND问题求助相关推荐

  1. Linux中shift命令的用法,Linux中shift命令起什么作用呢?

    摘要: 下文讲述Linux中shift的功能说明,如下所示: shift命令功能: 用于对参数的移动(左移), 如: 在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理 (常见于Linux中 ...

  2. linux中cat加管道用法,linux – 使用cat在管道之间弹回一个字符

    首先,他们用mkfifo创建了四个管道 $mkfifo pipe33a pipe33b pipe42a pipe42b copy / bin / cat into ./ $cp /bin/cat pr ...

  3. linux中whereis命令的用法,Linux中的Whereis命令,教你如何使用whereis命令及注意事项...

    本文教你使用Linux操作系统中的Whereis命令,包括注意事项.whereis是一个命令行实用程序,允许你查找给定命令的二进制文件.源文件和手动页面文件的位置. 如何使用whereis命令及注意事 ...

  4. linux中sed的基本用法,linux sed用法

    一.定义 sed 流编辑器,每次从输入中读取一行,用提供的编辑器命令匹配数据.按命令中指定的方式修改流中的数据,然后将生成的数据输出到STDOUT,在流编辑器将所 有命令与一行数据进行匹配后,它会读取 ...

  5. linux中sed的基本用法,linux中sed的常用方法.md

    基本用法: sed是流编辑器,stream editor可以实现对文件的增删改查 1.增 a 追加内容 i 插入内容 例如: sed -i '2a 123' test.log 追加123到test.l ...

  6. linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档

    第 第 PAGE 1 页 共 NUMPAGES 1 页 linux中的ftp命令用法 Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由小编为大家整理了linux中的ftp命令用法 ...

  7. linux的source命令,Linux中source命令的用法

    Linux中source命令的用法 Linux系统中,source命令通常用"."来代替,是一个点命令,与一般的命令有所不同,下面小编就给大家介绍下Linux中source命令的用 ...

  8. linux下的zz命令,linux中cut命令的用法

    本文主要记录一下Linux中cut命令的用法. 1. cut命令使用说明 Usage: cut OPTION... [FILE]... cut命令用于选出FILE文件中每一行的某些部分,然后打印到标准 ...

  9. Linux中read命令的用法

    1. 简单读取 read命令接收标准输入(键盘)的输入或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中.下面是 read命令的最简单形式: bixiaopeng@bixiaop ...

  10. Linux中的ftp命令怎么写,linux中的ftp命令用法

    Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由学习啦小编为大家整理了linux中的ftp命令用法相关知识,希望对大家有帮助! linux中的ftp命令用法 1. 连接ftp服务 ...

最新文章

  1. 关闭所有cloudfoundry应用进程
  2. 17日南土所蒋瑀霁报告:红壤团聚体尺度养分转化的生物学过程(线虫-微生物互作机制)...
  3. 基于深度学习的Person Re-ID(特征提取)
  4. 微信公众平台消息接口开发(13)多语种互译
  5. Python基础day01【软件安装、变量的定义和使用、数据类型、标识符和关键字、输入输出、数据类型转换、运算符、PEP 8 规范】
  6. 一种通用递归深度检测技术 - 基于栈帧内容的检测 - Golang语言描述
  7. c语言实现字母转化为unicode码,用C语言实现中文到unicode码的转换
  8. Ranger-Sqoop2插件安装
  9. Spring MVC的表单标签库详解
  10. DiQuick Web UI 框架 V1.3.2 版本更新
  11. Android 样式
  12. LIRe提供的图像检索算法的速度
  13. ECMAScript 6----字符串的扩展
  14. socket.io实现简单多人聊天室
  15. 利用STM32F103精确控制步进电机
  16. 网络编程入门(代码很详细)
  17. python 公众号引流_公众号粉丝从0到1000的引流思路
  18. Linux下系统函数
  19. 计算机显示文档在哪打开,我的文档在哪?小编教你找到电脑Windows系统我的文档在哪...
  20. 一个理解同步异步阻塞非阻塞非常好的解释

热门文章

  1. Asp.Net Core 通过中间件防止图片盗链
  2. PHP格式化全国省市区列表
  3. 高程数据处理_珠峰长高了吗?新高程怎么算出来的?揭秘
  4. 【ArcGIS微课1000例】0008:ArcGIS中如何设置相对路径?(解决图层前红色的感叹号)
  5. 保姆级C语言版高斯坐标正算反算倾情奉献!
  6. C语言试题六十二之请编写函数fun除了字符串前导和尾部的*号之外,将串中其他*号全部删除。形参h已指向字符串第一个字母,形参p已指向字符串中最后一个字母。在编写程序时,不得使用c语言提供的字符串函数。
  7. Flutter之基本数据类型测试
  8. 剑指offer之二叉树的下一个结点
  9. linux之more命令
  10. 浅谈C++类(1)--概念和构造函数