我想通过c程序在文件夹中创建1000000个文本文件,但它只在文件夹中创建508个文本文件。我的代码是:
int i, j;
char temp[100];
for(j=0;j<100;j++)
temp[j]= NULL;
for (i=0;i<1000000;i++)
{
sprintf(temp,"%ld.sift",i);
fopen(temp,"w+");
}
答案 0 :(得分:1)
在创建文件后再拨打fclose
- 您无法同时打开1000000000000
个文件。
答案 1 :(得分:0)
使用以下代码:
int i, j;
char temp[100];
FILE *fp;
memset(temp , '\0' , 100 );
for (i=0;i<1000000;i++)
{
sprintf(temp,"%ld.sift",i);
fp = fopen(temp,"w+");
fclose(fp);
}
答案 2 :(得分:0)
正如其他人所指出的,代码似乎缺少fclose()
文件fopen()
ed,因此系统很可能耗尽了所有这些文件的资源。
要修复它,只需关闭它们,然后再创建新的。
如果在Linux上你只是想创建(空)文件而不打开它们,可以使用mknod()
函数。