创建指定大小的文件

152 篇文章 1 订阅

我们开发的时候创建文件, 一般是创建的时候大小是0, 写入多大就会增加多大, 如果我们需要创建一个指定大小的文件, 有什么办法呢? 最笨的方法就是创建之后写入指定大小的无用数据到文件, 如果文件很大, 那就效率太低了.

 

1.       使用命令

Window

fsutil file createnew testfile.txt 1024

 

Linux

lmktemp testfile.txt 1024

 

 

2.       代码实现(不是写入指定大小的数据那种, 这样子太慢了)

http://bbs.et8.net/bbs/showthread.php?t=424033

 

/* CHSIZE.C: This program uses _filelength to report the size

* of a file before and after modifying it with _chsize.

*/

 

#include <io.h>

#include <fcntl.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <stdio.h>

 

 

int main(int argc, char* argv[])

{

     int fh, result;

     unsigned int nbytes = BUFSIZ;

    

     /* Open a file */

     if((fh = _open("data.txt", _O_RDWR | _O_CREAT, _S_IREAD | _S_IWRITE )) != -1)

     {

         printf( "File length before: %ld/n", _filelength( fh ) );

         if( ( result = _chsize( fh, 1024*1024 * 100) ) == 0 )

              printf( "Size successfully changed/n" );

         else

              printf( "Problem in changing the size/n" );

         printf( "File length after: %ld/n", _filelength( fh ) );

          _close( fh );

     }

     return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值