我一直在尝试在C/C++中创建一个程序,该程序会创建文件,直到进程停止。 文件名从0开始并按照一个算术序列。无法创建超过1000个文件(C++程序)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
long cifre(long x) //returns the number of digits a number has
{
int nr = 0;
while (x != 0)
{
x = x/10;
nr++;
}
return nr;
}
int main()
{
long i=0;
FILE* g;
char* v;
char buffer[1025];
int j=0;
for (j=0;j<1024;j++)
buffer[j] = 'x';
while (1)
{
v = (char*)malloc(cifre(i)+10);
snprintf(v,sizeof(v),"%ld",i);
g = fopen(v,"w");
fprintf(g,"%s",buffer);
free(v);
fclose(g);
i++;
}
return 0;
}
的问题是,该方案仅创建1000个文件。
什么是你的文件系统?你在使用哪种操作系统? – 2013-02-09 10:18:46
这确实是你的文件系统的问题。我已经运行你的程序一段时间,然后通过^ C终止它。我得到:'ls | wc -l 378872' - 远远超过1000个文件。顺便说一句,你不会'缓冲区[1024] = 0',所以它的工作原理错了! – 2013-02-09 10:23:11
@PatrickB。 ext4,Ubuntu 12.10 – 2013-02-09 10:37:55