您的位置:首页 > 编程语言 > C语言/C++

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

2015-08-21 18:43 701 查看
由于测试客户端传文件的文件大小限额需要,要有一个测试工具来生成指定大小的文件
最初的想法是通过循环语句,利用文件读写流来生成特定大小的文件,但是实际情况是生成一个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生成特定大小文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: