在使用O_APPEND 标志并以写打开一个已存在的文件,然后用lseek函数将偏移置于开头,在写入数据,写入的数据会显示在那个位置呢???
来源:互联网 发布:足球比赛软件 编辑:程序博客网 时间:2024/05/29 03:42
APLI第五章练习题第二题 在使用O_APPEND 标志并以写打开一个已存在的文件,然后用lseek函数将偏移置于开头,在写入数据,写入的数据会显示在那个位置呢???
直接编程做实验吧
#include<stdio.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
int main(int argc ,char*argv[])
{
int fd;
if(argc!=2||strcmp(argv[1],"--help")==0)
{ printf("fild err");
exit(1);}
fd=open(argv[1],O_WRONLY|O_APPEND);
{if(fd<0)
exit(1);}
if(lseek(fd ,0,SEEK_SET)==-1)
printf("lseek fail\n");
else if(write(fd,"hello",5)==-1)
exit(1);
close(fd);
return 0;
}
提前新建一个文件ss内容为sss
执行程序,查看文件
发现写入的hello在文件的尾部!!!!!
这是为什么呢!! 以为用O_APPEND打开文件是原子操作,以后对文件的写操作只能从文件尾部写入!!!!
而对于读操作来说,lseek还是有效的!可以用lseek来读取你想读的内容!!
- 在使用O_APPEND 标志并以写打开一个已存在的文件,然后用lseek函数将偏移置于开头,在写入数据,写入的数据会显示在那个位置呢???
- 如果使用追加标志O_APPEND打开一个文件以便读、写,能否仍能用lseek在任一位置开始读? 能否用lseek更新文件中任一部分的数据?
- 用O_APPEND标志open一个文件,能否用lseek在任意位置读写
- 如何打开一个已存在的txt格式的文本文档 ,并显示在QTextEdit中
- 从键盘输入两个学生数据,写入一个文件中, 再读出这两个学生的数据显示在屏幕上。
- python写入已存在的excel数据
- 将图像数据写入文件的函数
- 在Java中如何读取用MATLAB的fwrite()函数写入文件的数据
- C#打开或者创建一个文件,然后向其末尾写入数据的方法
- mysql用存储过程写入 一个表A中没有存在在另一个表B的数据
- APUE-文件与目录:以O_APPEND标志open的文件,lseek后读写问题
- 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上
- 1.实验 5.2.5 文件定位 用lseek()函数实现以下功能 1. 获取文件大小 2. 为文件添加指定长度的空洞 3. 在指定位置写入指定内容 4. 读出指定位置的内容 1. 获取文件大小
- 安卓系统:在SD卡上新建一个文件file.txt,并将经纬度和时间数据写入
- APUE习题:以O_APPEND标志open的文件,lseek后读写问题
- Mysql 在 mybatis 环境下 批量新增 并 将已存在的数据更新
- 在FLV文件的TAG中写入H264数据
- 在FLV文件的TAG中写入H264数据
- Maven配置文件pom.xml详解
- 自定义表格编辑状态下左侧多选按钮
- Yii在Controller向layout传值
- Servlet获取Request和Response
- matplotlib如何在绘制时间序列时跳过无数据的区间
- 在使用O_APPEND 标志并以写打开一个已存在的文件,然后用lseek函数将偏移置于开头,在写入数据,写入的数据会显示在那个位置呢???
- java 登录及主页简单例子
- Android 照片墙应用实现,再多的图片也不怕崩溃(LruCache)
- box-shadow介绍
- BreezeCMS实现思路(二)
- 软考二——程序设计语言
- WIDECHARTOMULTIBYTE和MULTIBYTETOWIDECHAR函数的用法
- 点击单元格操作
- LeetCode 136: Single Number