当前位置:  技术问答>linux和unix

关于fgets()的异常

    来源: 互联网  发布时间:2015-05-31

    本文导语:  有UNIX下的C程序大致如下 char  str[1024]; while(fgets(str,1024,fp)==NULL){     sleep(1);     if(fgets(str,1024,fp)==NULL)    {     printf("the end of file!");     fclose(fp);     } } fp指向的文件(通过网络传上来的)明明还有若干行...

有UNIX下的C程序大致如下
char  str[1024];
while(fgets(str,1024,fp)==NULL){
    sleep(1);
    if(fgets(str,1024,fp)==NULL)
   {
    printf("the end of file!");
    fclose(fp);
    }
}
fp指向的文件(通过网络传上来的)明明还有若干行没读完,但却显示已经“the end of file!”
让人纳闷,这种现象每个月就两三次,但让人不解

|
有可能是文件缓冲的问题,一边在写,另一边在读?加个fflush(fp)试试

如果是ftp,建议使用rename操作来避免这种情况。传输时加上.tmp后缀,传输结束rename回去。

|
传来的文件是二进制文件还是文本文件?

|
为什么不用read???

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • fread 和 fgets的选择?
  • fgets用在SOCKET流上的问题
  • 有关fgets()的问题。。。。。。大家帮帮忙啊
  • 关于fopen,fread,fgets的问题,请教
  • 关于调用fgets的问题
  • fgets 和scanf 、 C库函数 分割屏幕 聊天室
  • 标准I/O函数fgets()的用法?//linux C编程
  • linux下fgets(..,..,stdin)不阻塞??
  • 多线程下fgets函数读取文件导致线程挂住
  • fgets()报错问题(errno=4)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3