快速生成大文件

本文介绍在Linux和Windows环境下如何快速创建大文件。通过使用ftruncate()函数或fseeko()方法,结合适当的编译参数,可以高效地生成指定大小的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在linux下如果不考虑断电系统重启等其他原因可以使用ftruncate()函数,这个函数输入参数为file descriptor 和 offset, 这个函数在unistd.h中,windows一般是用不了这个的。

另外使用文件名得到文件描述符的方法就是int fileno(FILE*); 注意之后别忘了fclose(),下面的代码里忘记写了。

#include<iostream> #include<cstdio> #include<unistd.h> using namespace std; int main(){ FILE* f = fopen("abc.txt",“w”); int fd = fileno(f); long long offset = 1024*1024*1024*(long long)2; ftruncate(fd,offset); return 0; }

在windows及其他平台可以使用fseeko(FILE* , offset, pos)这个方法

#include<iostream> #include<cstdio> using namespace std; int main(){ FILE* f = fopen("abc.txt","w"); long long offset=1024*1024*1024*(long long)2; fseeko(f,offset,SEEK_SET); int i = 10; // write i to file end fwrite(&i,sizeof(int),1,f); fclose(f); return 0; }

这样就可以快速得到2G的文件了。另外编译时不要忘记添加编译参数-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64

想看大文件测试的结果到http://blog.youkuaiyun.com/cctt_1/archive/2010/05/23/5618652.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值