fwrite在任意位置写入文件,并可修改文件内容

想实现类似迅雷那样下载时可以从文件半中间写入的功能

  1. #include<stdio.h>
  2.     int main()
  3.     {
  4.         FILE *fp;
  5.         fp=fopen("overwrite.bin","rb+"); //使用rb+模式,可以往半中间插入数据,而且是覆盖插入,若使用"ab+"每次都插入到最后面,调用fseek也没用
  6.         if(NULL != fp)
  7.         {
  8.             if(-== (fseek(fp,9, SEEK_SET)))
  9.                     printf("seek error\n");
  10.             fwrite("abcde",1, 5, fp);
  11.             fclose(fp);
  12.         }
  13.         else
  14.         {
  15.             printf("fopen error");
  16.             return 0;
  17.         }
  18.         return 0;
  19.     }
刚开始用ab+模式打开, 每次都写入到最后面. 用rb+就可以定位到任意位置写入了.
在linux下已测试,因为用"rb+"打开要保证文件已存在. 使用命令  #touch overwrite.bin  新建文件
将上述代码 编译运行.
用vi 打开overwrite.bin 看到内容为第9字节开始abcde
然后再将fseek(fp,9,SEEK_SET)中的9改成11:fseek(fp,11,SEEK_SET), 编译运行. 再用vi打开overwrite.bin可以看到在第9字节开始的内容为"ababcde".
之前写入的cde被覆盖了
转:http://www.cnblogs.com/rusty/archive/2011/11/17/2253069.html
http://bbs.chinaunix.net/thread-1794396-1-1.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新网卡不能绑定“旧”IP故障的解决

问&#xff1a;有一台电脑&#xff0c;操作系统是Windows 原来装有一张RTL8139的PCI网卡&#xff0c;绑定IP地址为192.168.221.48&#xff0c;后来把这张网卡换了一个插槽&#xff0c;开机后系统却把它认为是张新网卡&#xff0c;再去绑定原来的那个IP地址&#xff0c;提示&quo…

看完这篇文章,会让你对电容的作用更明白!

电容是电路设计中最为普通常用的器件&#xff0c;是无源元件之一&#xff0c;有源器件简单地说就是需能(电)源的器件叫有源器件&#xff0c;无需能(电)源的器件就是无源器件。电容的作用和用途一般都有好多种&#xff0c;如&#xff1a;在旁路、去耦、滤波、储能方面的作用&…

查看及修改MYSQL最大连接数

查看Mysql连接数 登录到mysql客户端后&#xff0c;使用status命令也能获得thread连接数以及当前连接的id 或者用 Mysql代码 show full processlist 看一下所有连接进程&#xff0c;注意查看进程等待时间以及所处状态 是否locked 如果进程过多&#xff0c;就把进程打印下…

华为mate40pro 升级鸿蒙,华为Mate40Pro再次曝光,麒麟9000+可升级到鸿蒙OS,这才是华为...

原标题&#xff1a;华为Mate40Pro再次曝光&#xff0c;麒麟9000可升级到鸿蒙OS&#xff0c;这才是华为在如今的手机市场&#xff0c;创新和差异化的设计已经成为消费者最在意的地方&#xff0c;所以加大技术创新和研发投入才是手机厂商们谋求发展的唯一道路。华为手机是一个大家…

uva 133解题报告

题目描述 为了缩短领救济品的队伍&#xff0c;NNGLRP决定了以下策略&#xff1a;每天所有来申请救济品的人会被放在一个大圆圈&#xff0c;面朝里面。选定一个人为编号 1 号&#xff0c;其他的就从那个人开始逆时针开始编号直到 N。一个官员一开始逆时针数&#xff0c;数 k 个申…

fopen与读写的标识r,r+,rb+,rt+,w+.....

函数简介 函数功能&#xff1a; 打开一个文件 函数原型&#xff1a;FILE * fopen(const char * path,const char * mode); 相关函数&#xff1a;open&#xff0c;fclose&#xff0c;fopen_s[1]&#xfeff; &#xff0c;_wfopen 所需库&#xff1a; <stdio.h> 返回值&…

WPF(Windows Presentation Foundation)Overview

在Windows NT中&#xff0c;图形多媒体系统基于层次结构。应用程序与顶层的API&#xff08;实际上是多个用户模式的系统DLL&#xff0c;比如GDI32.DLL&#xff09;交互&#xff0c;这些系统DLL最终会通过系统服务调用处于内核模式的系统服务。NT系统的详细信息可参考《Windows …

10年深圳,回去了

十年前&#xff0c;2012年&#xff0c;我们毕业。毕业后&#xff0c;我们很多人都选择来深圳&#xff0c;那时候的想法很简单&#xff0c;深圳有我们想要的工作&#xff0c;我们很多人都是村里来的孩子&#xff0c;没有背景&#xff0c;家里也没有矿。考不上公务员也不想去做老…

shell比较运算符

运算符描述示例文件比较运算符-e filename如果 filename 存在&#xff0c;则为真[ -e /var/log/syslog ]-d filename如果 filename 为目录&#xff0c;则为真[ -d /tmp/mydir ]-f filename如果 filename 为常规文件&#xff0c;则为真[ -f /usr/bin/grep ]-L filename如果 file…

fopen、fwrite使用

函数fopen 1.函数简介 函数功能&#xff1a;打开一个文件 函数原型&#xff1a;FILE * fopen(const char * path,const char * mode); 相关函数&#xff1a;open&#xff0c;fclose&#xff0c;fopen_s[1]&#xff0c;_wfopen 所需库&#xff1a; <stdio.h> 返回值&…

树莓派安装CentOS

1.下载并安装&#xff0c;这里使用的是 centos系统地址:http://mirror.centos.org/altarch/7/isos/armhfp/ 下载CentOS-Userland-7-armv7hl-RaspberryPI-Minimal-1804-sda.raw.xz解压并烧录到TF卡 默认用户名root密码centos 2.连接wifi nmcli d nmcli d wifi  #查看周围的…

android studio导入eclipse项目各种问题,Android | 导入Eclipse项目到Android studio的问题解决全过程...

D老师今天给了一个Android项目&#xff0c;但是他当时(2015年)用的是eclipse写的而我用的是Android studio&#xff0c;所以在导入项目的过程中出现了一些常见的问题&#xff0c;在这里总结一下解决的问题的过程。1.eclipse项目导入到Android studio的过程&#xff1a;File->…

《WEB应用测试》笔记(六)

《WEB应用测试》笔记&#xff08;六&#xff09;第三章 软件测试基础 18、软件开发阶段的常见范例&#xff08;1&#xff09;a版&#xff1a;产品主要的和达成共识的部分已经完成。产品准备投入内部使用。&#xff08;2&#xff09;B前期版本&#xff1a;提交进行B验收的构造版…

蜡烛节能车模

❝简 介&#xff1a; 本文给出了几款使用蜡烛驱动的车模。关键词&#xff1a; 蜡烛&#xff0c;车模01 蜡烛车模1.1 蜡烛光电池点上蜡烛就能跑&#xff0c;DIY制作玩具汽车小模型The Energy of the Candle. Car Model[4]▲ 图1.2 蜡烛驱动的智能车模▲ 图1.1.3 光电池车模▲ …

Xen Desktop测试报告

Xen Desktop测试报告 &#xff08;九叔最近写的一个测试报告&#xff0c;仅供参考&#xff0c;可能结论不适合你们公司&#xff09; 目的 测试目的&#xff1a;本次测试周期耗时两周&#xff08;2011.11.14-2011.11.24&#xff09;&#xff0c;主要为了理解思杰的桌面虚拟化&am…

Linux基础提高_系统性能相关命令

w 看系统的负载信息 用于显示已经登陆系统的用户列表&#xff0c;并显示用户正在执行的指令 uptime [rootlocalhost]#uptime 17:26:07 up 9:02, 3 users, load average: 0.00, 0.00, 0.00 能够打印系统总共运行了多长时间和系统的平均负载。uptime命令可以显示的信息显示依次为…

去广州见了我大学老师标哥

标哥是我的大学老师。标哥也是我们很多学生公认上课非常好的老师&#xff0c;最近标哥突然想见见我这个年轻仔&#xff0c;让我去广州见见他&#xff0c;当然&#xff0c;并不是说他不能来深圳&#xff0c;见面的时候标哥特意给我们解释了一遍&#xff0c;我肯定是能理解他的良…

fseek和ftell

fseek函数是 用来设定文件的当前读写位置. 函数原型: int fseek(FILE *fp,long offset,int origin); 函数功能:把fp的文件读写位置指针移到指定的位置. fseek(fp,20,SEEK_SET); 意思是把fp文件读写位置指针从文件开始后移20个字节. ftell函数是用来获取文件的当前读写位置…

Java与.Net 在RSA加密方面能不能互相通讯操作???

最近接触了一个案例. 如下:系统A: Java平台, 对信息进行RSA加密. 注意: 是用私钥加密.系统B: .Net平台, 要对信息进行RSA解密证书: 中Java中提供的工具Keytool.exe生成.为了证明解决方案的可行性.我做了以下测试:1>. RSA私钥加密,公钥是否可解(Java代码测试)结果: 可解. (…

本地html页面传递表单值,js实现两个页面表单传值并接收

js 实现两个页面表单传值并接收源码A页面&#xff1a;functiontest(){var s document.getElementById("txt");location.href"2.html?""txt"encodeURI(s.value);}第一个页面表单中输入文字或其他值。B页面代码&#xff1a;var loclocation.href;…