关于文件(求帮忙)
我同时打开两个文件,一个读,一个写,而且我现在知道读的这个文件比如说有100个字符,然后往那个写的文件里面写,不能写全,只能写一部分,经过调试,发现是读的文件没读完。求解。。。可能是什么问题???
[解决办法]
可能是申请的空间小了,缓冲不够了?
[解决办法]
缓冲空间小了
[解决办法]
你说的没读全,是没读到文件结尾吗?如果读到文件结尾返回EOF,你能贴出部分代码吗?
[解决办法]
不要相信自己的判断,通过文件指针偏移就可以知道你实际读的文件大小
/******************************************************************************************************Ãû³Æ:int LocalFile()**¹¦ÄÜ:¶ÁÈ¡±¾µØÎļþ£¬×ª»»³É×Ö·û´®* Èë¿Ú:ÐèÒª±£´æµÄ¶ÁÈ¡ÎļþÄÚÈݵÄÊý×é* ³ö¿Ú:ÎÞ**auth:linchudong, date: 2011-11-8 8:55*****************************************************************************************************/int LocalFile(char *sendbuffer,char *dev){ int mode; FILE *sendfile; int file_len; if((sendfile = fopen(dev,"a+")) == NULL) { DBG_ERROR("open testfile false!\n"); mode = FALE; } /*Calculate file length*/ fseek(sendfile, 0L, SEEK_SET); fseek(sendfile, 0L, SEEK_END); file_len = ftell(sendfile); fseek(sendfile, 0L, SEEK_SET); DBG_NORMAL("file_len = %d\n",file_len); /*Read content from file*/ if(file_len != fread(sendbuffer,1,file_len,sendfile)) { DBG_ERROR("fread error\n"); mode = FALE; } else { mode = SUCC; } fclose(sendfile); return mode;}/******************************************************************************************************Ãû³Æ:int ReceiveFile()**¹¦ÄÜ:½ÓÊÕ·¢Ë͵ÄÄÚÈÝ£¬×ª»»³ÉÎļþ* Èë¿Ú:ÎÞ* ³ö¿Ú:ÎÞ**auth:linchudong, date: 2011-11-8 8:55*****************************************************************************************************/int ReceiveFile(char *receivebuffer,char *dev){ int mode; FILE *receivefile; int file_len; if((receivefile = fopen(dev,"w+")) == NULL) { DBG_ERROR("open testfile false!\n"); mode = FALE; } file_len = strlen(receivebuffer); DBG_NORMAL("file_len = %d\n",file_len); /*Write content from file*/ if(file_len != fwrite(receivebuffer,1,file_len,receivefile)) { DBG_ERROR("fwrite error\n"); mode = FALE; } else { mode = SUCC; } fclose(receivefile); return mode;}