关于文件(求帮忙),该如何解决
关于文件(求帮忙)
我同时打开两个文件,一个读,一个写,而且我现在知道读的这个文件比如说有100个字符,然后往那个写的文件里面写,不能写全,只能写一部分,经过调试,发现是读的文件没读完。求解。。。可能是什么问题???
------解决方案--------------------
可能是申请的空间小了,缓冲不够了?
------解决方案--------------------
缓冲空间小了
------解决方案--------------------
你说的没读全,是没读到文件结尾吗?如果读到文件结尾返回EOF,你能贴出部分代码吗?
------解决方案--------------------
不要相信自己的判断,通过文件指针偏移就可以知道你实际读的文件大小
我同时打开两个文件,一个读,一个写,而且我现在知道读的这个文件比如说有100个字符,然后往那个写的文件里面写,不能写全,只能写一部分,经过调试,发现是读的文件没读完。求解。。。可能是什么问题???
------解决方案--------------------
可能是申请的空间小了,缓冲不够了?
------解决方案--------------------
缓冲空间小了
------解决方案--------------------
你说的没读全,是没读到文件结尾吗?如果读到文件结尾返回EOF,你能贴出部分代码吗?
------解决方案--------------------
不要相信自己的判断,通过文件指针偏移就可以知道你实际读的文件大小
- C/C++ code
/**************************************************************************************************** **Ãû³Æ: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; }