红联Linux门户
Linux帮助

文件操作——linux快速创建大文件的方法

发布时间:2016-10-23 11:05:21来源:linux网站作者:无聊的Ken
还记得去年在准备某公司的笔试时遇到了一道题目,题目中要求”快速创建1G的大文件“,后面的要求这里暂且就省略了。如何快速创建指定大小的大文件呢?可能有很多种办法,这里提供两种办法。
 
1、利用dd命令操作创建文件
//结合C语言,可以使用system函数调用shell命令
char *shell = "dd if=/dev/zero of=test.txt bs=1K count=1024";
system(shell);
其中 if=输入的文件,of=输出文件,bs=块大小 ,count=块数量。
bs和count的单位设置,man函数中提及如下,查看完整参数请参见Manuel手册:
BLOCKS  and  BYTES may be followed by the following multiplicative 
suf‐fixes: c =1, w =2,  b  =512,  kB  =1000,  K  =1024, 
MB  =1000*1000,  M=1024*1024,  xM =M GB =1000*1000*1000, 
G=1024*1024*1024, and so on for T, P, E, Z, Y.
 
2、利用文件操作的文件指针移位产生空洞文件
这里指的是将文件指针移动到距离文件头指定大小的地方,再进行写操作(注意,这里移动完文件位移量后一定要写点东西,否则无效)
int main(void)
{
int fd ;
fd = open("test.txt" , O_CREAT|O_RDWR , 0777);
if( fd < 0)
{
printf("open file error\n");
return 0;
}
//为了创建一个大小为3M的文件,我们先少创建2个字节,然后在写文件的时候补充2字节
lseek(fd , 1024 * 1024 *3 -2, L_SET);
write(fd , "e" , 1);
close(fd);
return 0 ;
}
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25309.html