-1
我有一段代码读取文件,但文件很小,并将它们分成较小的文件。我想让这段代码读取大小为32 GB或更大的文件,并支持不同类型的数据类型文件,希望寻找答案以帮助?如何使用C分割大文件32 GB或更多?
#include <stdio.h>
int main(){
FILE *ptr_readfile;
FILE *ptr_writefile;
char line [128]; /* or some other suitable maximum line size */
char fileoutputname[15];
int filecounter=1, linecounter=1;
ptr_readfile = fopen("editing for the java lab 2.txt","r");
if (!ptr_readfile)
return 1;
sprintf(fileoutputname, "file_part%d", filecounter);
ptr_writefile = fopen(fileoutputname, "w");
while (fgets(line, sizeof line, ptr_readfile)!=NULL) {
if (linecounter == 5) {
fclose(ptr_writefile);
linecounter = 1;
filecounter++;
sprintf(fileoutputname, "file_part%d", filecounter);
ptr_writefile = fopen(fileoutputname, "w");
if (!ptr_writefile)
return 1;
}
fprintf(ptr_writefile,"%s\n", line);
linecounter++;
}
fclose(ptr_readfile);
return 0;
}
C不关心文件类型。它读取和写入二进制文件。 – ForceBru
仅供参考:如果你在Linux/BSD/Cygwin上,已经有一个分割命令可用 –
我注意到你的第一件事对于'char fileoutputname [15];'来说是不必要的。让它成为'80'。 –