c-当以更新模式打开流的时候到底能否通过fseek定位来改变写入的位置?

问题描述

当以更新模式打开流的时候到底能否通过fseek定位来改变写入的位置?
c中以""a+""或者""ab+""模式打开一个文件,然后在文件中写入一些内容比如abcd,然后用fseek函数重新定位在流中的位置,fseek(fp 2 SEEK_SET);再次写入内容,比如字母z,会不会在这行abcd中插入z这个字母,或是把其中的字母改写为z

我查阅了msdn关于fseek的说明,上面表明在更新模式下是可以通过fseek改变写入位置的:

The fseek and _fseeki64 functions moves the file pointer (if any) associated with stream to a new location that is offset bytes from origin. The next operation on the stream takes place at the new location. On a stream open for update the next operation can be either a read or a write.

但是我在VS2012上亲测,结果是和添加模式一样,新写入的内容总是被写在文件的尾部

请问到底是怎么回事呢?

解决方案

程序结束后插入的字符才会被写入文件中,运行过程中,被写的数据存储在缓存中,还没有被写入,你可以打断点调试,看运行过程中,文件内容是否被更新

时间: 2024-10-28 00:24:44

c-当以更新模式打开流的时候到底能否通过fseek定位来改变写入的位置?的相关文章

让所有网站在IE10中都以兼容模式打开

为了提升网页浏览的顺畅度,IE10 这回突破多重关卡,将IE10打造为浏览速度最快的浏览器. 虽然 IE10 速度很快,但是由于 IE10 是一款全新的浏览器,很多网站并没有检测 IE10 下的兼容性 ,当使用 IE10 打开的时候可能会遇到网站功能无法正常使用或页面变形的问题.比如优酷视频网站有一个关灯功能,可以让整个页面变黑,使观看视频的效果更好.可是这个关灯功能在 IE10 浏览器中就无法使用,这就是网页不兼容 IE10 的表现,遇到这种问题我们只需开启「兼容性视图」即可正常浏览. 相信随

三星G9208如何激活开发者选项?G9208 usb模式打开方法

1.G9208 手机与其它三星智能手机一样可以点击几下就开启这个模式了,我们在手机中点击[应用程序].  开发者选项?G9208 usb模式打开方法-激活开发者选项">  2.点击[设定]打开进入设置界面.    3.向上滑动屏幕,选择[关于手机]如下图所示,到此还没有完我们要接着往下走.    4.然后我们在关于手机下面找到[版本号]然后连续点击7次后,将提示"开发者模式已启用".      5.点击[←]图标,即可看到[开发者选项].      好了现在我们进入到开

vb.net生成的setup文件,在win7上必须要兼容模式打开.求解.

问题描述 本人在练习做了一个c/s应用程序,在制作了setup文件后,在xp上安装都运行正常,可是在win7下32和64位下都出现程序无法打开,必须用兼容模式打开才可以运行,是不是我在制作setup文件的时候需要特殊要求呢?希望有做个的朋友帮帮忙.谢谢了! 解决方案 解决方案二:求帮忙,谢谢了...解决方案三:顶顶,有做过的朋友帮帮忙.谢谢了!解决方案四:111

三星GALAXY Note4如何开启开发者选项?Note4 usb模式打开方法

1.如下图所示我们的在n9100中点击[应用程序].  开发者选项?Note4 usb模式打开方法-galaxy s5开发者选项">  2.进入之后找到手机中的[设定]按钮点击打开.    3.在此你会看到有一个[关于设备]然后我们点击打开.    4.在此我们利用手指连续点击[内部版本号]7次后,将提示"开发者模式已启用".        5. 然后在提示开发者模式己启用了,我们再点击下图红框自找[<]图标,向上滑动屏幕,即可看到[开发者选项].       

data gurad物理备份方式下以READ ONLY/WRITE模式打开物理STANDBY

一.READONLY/WRITE模式打开物理STANDBY 物理standby可以有效分担primary 数据库压力,提升资源利用,实际上说的就是这个.以read only 或read write 模式打开物理standby,你可以转移一些查询任何啦, 备份之类的操作到standby 数据库,以这种方式来分担一些primary 的压力. 下面我们来演示一下,如何切换standby 数据库的打开模式,其实,非常 简单.例如,以Read-only 模式打开物理standby: 这里要分两种情况: 1

Adobe下周将推新补丁和新的更新模式

4月9日消息,Adobe今天宣布,他们计划在下周二(2010年4月13日)推出一个新的安全漏洞补丁,修复Reader和Acrobat产品线上的数个高危安全漏洞. 这款补丁将会让Adobe开启自动更新推送,该公司希望此举能够加快补丁的部署进度.这个安全补丁适用于Windows.Macintosh和Unix系统用户. Adobe的发言人Steve Gottwals表示,与这款补丁同时发布的,还有Adobe新的软件自动更新模块,同样在下周推送给终端用户,以保障用户能够更快更稳定的获得软件的安全更新.

关于利用fgets()改变文件指针位置再利用fprintf()更新文件数据的一些小疑问求教

问题描述 关于利用fgets()改变文件指针位置再利用fprintf()更新文件数据的一些小疑问求教 下面便是一个更新卡信息文件数据的函数updateCard int updateCard(const char* CardPath,const Card* pcard,int nIndex) {//更新卡信息文件中的数据,CardPath为文件路径,pcard为指向要更新的卡信息结点的指针,nIndex为卡信息在文件中的索引号(即在卡信息文件中的行数) FILE* fp = NULL; long

tomcat的server.xml中加入URIEncoding以后,网页打开巨慢,到底是怎么回事?

问题描述 tomcat的server.xml中加入URIEncoding以后,网页打开巨慢,到底是怎么回事? 从mysql中读出100行数据,显示在网页上,由于每一条做成能修改的形式,需要加个href传参数 跳转到下一个jsp要用,如果参数有中文的话,到下一个页面就是乱码,解决方法在tomcat的server.xml中加入URIEncoding=utf-8,加完以后,有时能打开网页,有时打不开,不知道是怎么回事? 解决方案 可以用post或者乱码编码,乱码解码. 解决方案二: get byte也

网站更新频率和百度排名之间到底存在什么关联吗

摘要: 很多朋友都希望自己的网站拥有一个好的排名,所以认真的做外链,做网站内容,很多站长朋友认为网站更新频率越高,那么随着时间的增长,网站排名也会得到很好的提高,所以不少 很多朋友都希望自己的网站拥有一个好的排名,所以认真的做外链,做网站内容,很多站长朋友认为网站更新频率越高,那么随着时间的增长,网站排名也会得到很好的提高,所以不少站长每天想法设法的去更新网站内容,哪怕无法得到高质量的内容,也会想办法转载一篇认为不错的文章,那么,网站更新频率和百度排名之间到底存在什么关联吗?笔者根据自己的一些观