- 论坛徽章:
- 0
|
#include <stdio.h>;
#include <memory.h>;
以下是我的源程序,创建一个大数据文件
我有一个程序,能在Windows下执行,但是在Solaris 2.8下不能完全执行
创建了一个2147483647大小的数据文件就退出了
extern int errno;
void main()
{
FILE *fp;
unsigned int loop;
int error;
char buffer[1024];
memset(buffer,'a',1024);
if((fp=fopen("test.dat","wb+" )==NULL)
{ printf("Create file failed!\n" ; return ; }
setvbuf(fp,NULL,_IONBF,0);
for(loop=0;loop<1024*1024*3;loop++)
{ if((error=fwrite(buffer,1024,1,fp))!=1)
{ error=errno;
printf("Write failed! errno code=%d\n",errno);
fclose(fp);
return;
}
}
fclose(fp);
return;
}
请问在unix下fwrite不能写超过2GB的数据吗?
我用java写在同样的unix环境下同样的机器上可以创建3gb的数据呀
是sparc芯片的solaris 2.8 gcc 3.2
结果是errno=27 |
|