以Append方式打开文件,设置偏移量无效

 1 #include<stdio.h>
 2
 3 int main()
 4 {
 5     FILE * fd = fopen("btoo1.c", "ab+");
 6     fpos_t p ;
 7     int fp = fgetpos(fd, &p);
 8     printf("bef seek: fgetpos = %ld, ftell = %d\n", p, ftell(fd));
 9     fseek(fd, 12, SEEK_SET);
10     fgetpos(fd, &p);
11     printf("bef seek: fgetpos = %ld, ftell = %d\n", p, ftell(fd));
12     fwrite("*****", 1, 5, fd);
13     fclose(fd);
14     return 0;
15 }

测试代码如上。现象就是这样,原因未知。

解决方案:

设置临时文件,将偏移量前的内容先写到零时文件内,然后删源文件,再将零时文件重命名。

以Append方式打开文件,设置偏移量无效,布布扣,bubuko.com

时间: 2024-10-05 23:46:39

以Append方式打开文件,设置偏移量无效的相关文章

文本与二进制方式打开文件的区别

文本与二进制方式打开文件的区别 文本文件也叫做ASCII码文件,与以‘文本方式’打开文件不是同一个概念!文本文件存储的是ASSCII码字符,即存储在磁盘上只占用二进制的0x20--0x7e.另外,还有回车(0x0d),换行(0x0a),TAB(0x09)等,所以有可压缩的空间. 换行和回车是不同的,而且在不同的操作系统,解释也不相同.‘\n’一般会操作系统被翻译成"行的结束",即LF(Line-Feed):‘\r’会被翻译成"回?,即CR(Cariage-Return) 回车

cmd使用notepad++为打开方式打开文件

想放一个txt进入vstart中,但是又不想用系统自带的记事本打开,想在vstart中双击时使用notepad++打开. cmd命令如下: "D:\notepad++\notepad++.exe" xsspayload.txt 将以上命令保存为bat,拖进vstart中,换个图标,就变帅多了. 小细节. 原文地址:https://www.cnblogs.com/huim/p/9579301.html

使用selenium三种方式打开文件:

#路径读取方式一:# b.get(r"C:\我的代码\selenium自动化测试\test.html")#路径读取方式二:# b.get("C:\\我的代码\\selenium自动化测试\\test.html")#路径读取方式三:b.get('file://C:\\我的代码\\selenium自动化测试\\test.html') 原文地址:https://www.cnblogs.com/zhang-da/p/12080680.html

关于win7系统中所有exe文件都被以word方式打开的解决方法

手残一刻,电脑桌面所有的软件快捷方式都变成了word的打开方式,鼠标右键选中某exe文件也没打开方式那个选项, 第一次尝试: 在控制面板——默认程序中修改默认打开方式,但是没有找到解决方法 第二次尝试: 万能的重启,你会发现,并没有卵用的…… 第三次尝试: 使用ctrl+alt+delete调出任务管理器,不要妄图使用在任务栏——右键——打开任务管理器,也同样只会是word方式打开,不停的报错,你想要关都关不掉,所以不用理会他,只管使用任务管理器,看到帖子上有人说:“结束掉explorer这个任

fopen()函数以&quot;a+&quot;方式打开一个不存在的文件后读写出现问题

问题:在完成课后习题的时候,使用fopen()函数以"a+"方式打开一个不存在的文件时,写入.读取出现错误: 1 //添加用户输入单词后,在单词头加入编号,确保编号跟着前面的开始排序 2 #include "stdio.h" 3 #include "stdlib.h" 4 #define MAX 40 5 6 int main(void){ 7 FILE *fp; 8 char words[MAX]; 9 int count = 1, 10 te

fstream 几种打开文件的方式,方便以后用

fstream fout; //(1)以输出的方式打开文件,若文件不存在建立文件,若文件存在将文件长度置为0 fout.open("D:/1.txt",ofstream::out|ofstream::trunc);//不能用|| if (!fout.is_open()) { return; } //(2)以输出的方式打开文件,如果没有文件,那么生成空文件:如果有文件,那么清空该文件,写文件的时候是文件指针指向文件末尾 fout.open("D:/1.txt",ofs

打开文件open()函数的使用方法详解--C语言函数

头文件:#include <sys/types.h>    #include <sys/stat.h>    #include <fcntl.h> 定义函数: int open(const char * pathname, int flags); int open(const char * pathname, int flags, mode_t mode); 函数说明: 参数 pathname 指向欲打开的文件路径字符串. 下列是参数flags 所能使用的旗标: O_R

如何优雅的打开文件

文件的基本操作 这里讲主要是讲到如何打开文件,设置文件的打开权限以及方式 打开文件 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,同a "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用) rU r+U &qu

电脑小白学习第十课---excel文件设置访问密码

我们在工作中,office软件我们每天都在用,有时为了安全起见,需要把office文件进行设置访问密码或者修改密码.下面以excel 2013为例,word和ppt设置类似.具体操作如下:1.打开excel文件,点击左上角"文件".2.选择另存为,然后选择一个保存位置.3.在弹出的另存为窗口,点击"工具"按钮,然后选择"常规选项".4.在弹出的常规选项中,可以设置打开权限密码,也可以设置修改权限密码(修改密码设置的话,不输入只能以只读方式打开).