关于C/C++生成特定大小文本文件的初探

由于测试客户端传文件的文件大小限额需要,要有一个测试工具来生成指定大小的文件
最初的想法是通过循环语句,利用文件读写流来生成特定大小的文件,但是实际情况是生成一个1.99G的文件,耗费的时间以小时来计算,而且生成的大小也不是很理想,生成的文件最后都到2.0GB以上了;这样的程序显然是效率极低的废物

首先要明确的一点是:创建特定大小的文件,要区分写入数据和不写入数据两种情况
1如果不需要写入数据,只是创建一个特定大小的文件:使用windows api 函数
----文件指针 SetFilePointer SetEndOfFile GetFileType

1).可以将文件指针设置超过当前文件的大小,除非在该位置向文件写入数据或者 ,否则不会更改文件在磁盘上的实际大小。

2).如果文件使用FILE_FLAG_NO_BUFFERING打开的,那么文件指针只能设置成扇区大小的整数倍

通过SetEndOfFile()改变文件大小

/

ftruncate
lseek,这个linux就这份
这个
win的我也发了
你看看
你创建好了,可用内存映射文件映射后写入
http://blog.csdn.net/wangyeqiang/article/details/8577165
http://blog.chinaunix.net/uid-26806098-id-3141386.html
http://blog.csdn.net/sx5486510/article/details/7513957
http://baike.baidu.com/link?url=DdOc4ifT8anhLhXkj6FCTRsWZSVmV0RK5K25GdH4Z0Yj6EJmNGPf9C2kR889_RT-BlVenLAsvNO0gmilPegaSq
http://www.cnblogs.com/fangyukuan/archive/2010/09/09/1822216.html
http://fx1.fx.uodoo.com/?v=1&src=l4uLj8XQ0J2elpSa0ZLRjJCYkIrRnJCS0J2elpSa0JOakpKetpGZkNGVjI%2FAk5abwsfKys%2FPx8fZlpyZnsLOzM%2FGzs%2FM&restype=1&ucshare=1&ucshareplatform=6&country=cn&os=adr&pf=m9eC3e756L8%3D
http://fx1.fx.uodoo.com/?v=1&src=l4uLj8XQ0Iiej52elpSa0Z2elpuK0ZyQktCJlpqI0M7NxsrHz87Rl4uSwJ6bno%2BLws7Z&restype=1&ucshare=1&ucshareplatform=6&country=cn&os=adr&pf=m9eC3e756L8%3D
linux内存映射就是mmap
http://bbs.csdn.net/topics/390512628
http://zhidao.baidu.com/link?url=P5EEMNExVb71nF-scIq_QK87LjejM-t0UjSZkCDF-EaTphEsRFtEuYW_yLYDqgVze2ucXMS4OT1mXlL58AK4Iq&qq-pf-to=pcqq.group
http://zhidao.baidu.com/link?url=P5EEMNExVb71nF-scIq_QK87LjejM-t0UjSZkCDF-EaTphEsRFtEuYW_yLYDqgVzcMfJ9dNYrHGtHwS6ZgqpP_&qq-pf-to=pcqq.group
split生成特定大小文件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值