无法在c程序中创建文本文件

时间:2014-02-28 07:18:14

标签: c

我想通过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+");
 }

3 个答案:

答案 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()函数。