- 论坛徽章:
- 0
|
小弟写了一个Copy档案的程序,如下:
char CopyOne(char *sou,char *des)
{
void *buf;
FILE *fps,*fpd;
size_t souItems,desItems;
if((fps=fopen("/mnt/floppy/abc.dat","rb"))==NULL) return(0);
if((fpd=fopen("/home/abc.dat","wb"))==NULL) return(0);
if((buf=malloc(32000))==NULL) return(0);
do{
souItems=fread(buf,sizeof(char),32000,fps);
if(ferror(fps)!=0) return(0);
desItems=fwrite(buf,sizeof(char),souItems,fpd);
if(ferror(fpd)!=0) return(0);
if(desItems!=souItems) return(0);
if(souItems<32000) break;
}while(1);
free(buf);
fclose(fps);
fclose(fpd);
return(1);
} |
但不知是何原因,Copy十五次以内,
至少会出现一次来源档案与目的档案资料不相同的错误。
也就是说虽然/mnt/floppy/abc.dat已Copy到/home/abc.dat,
但这两个abc.dat档案大小一样,可是内容却不相同。
小弟实在看不出哪里有问题。
麻烦前辈帮帮忙了。感激不尽。
使用Debian 3.1/C/C++ |
|