这会是什么原因导致fopen()错误呢

我有以下一段程序:
FILE*fp=NULL;
char filename[50];
while(1)
{
…一段时间延时,大约一分钟
if (fp!=NULL)
fclose(fp);
sprintf(filename,"%s/%04d%02d%02d%02d%02d",path,year,mon,day,hour,min);
fp=fopen(filename,“wb+”);
}

程序的作用是每隔一分钟建立一个新文件,此程序持续运行一段时间(几天)fopen()就会返回错误(fp==NULL),这会是什么造成的呢?

有可能是内存耗尽,不能再打开文件。可试试在fp==NULL时,用函数(比如QNX4下的qnx_osinfo)查看内存情况。