我一直在嘗試在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