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

偶尔打开文件失败

    来源: 互联网  发布时间:2017-01-24

    本文导语:  不知道大家有没有遇到这个问题:平时读写文件的时候都没问题,上周末测试的时候突然发现打开文件失败,我就尝试打开别的文件,结果也是打开失败,重启后正常. 我是用fopen做的,如:                  FILE   *fil...

不知道大家有没有遇到这个问题:平时读写文件的时候都没问题,上周末测试的时候突然发现打开文件失败,我就尝试打开别的文件,结果也是打开失败,重启后正常.
我是用fopen做的,如:
                 FILE   *file;   
                 file   =   fopen("map1",   "r+");
发现打开文件失败后,尝试打开别的文件,
                 file   =   fopen("map2",   "r+");
                 file   =   fopen("map3",   "r+");
                 file   =   fopen("map4",   "r+");
都同样失败,这个问题不是经常出现.退出程序重新进去后正常.

这段代码是去年写的,调试一年多以来,就出现过一次打开文件失败,那时没注意,上周末在评审时候第二次出现这个问题,有什么办法解决这个问题呢?希望各大虾能帮忙一下

|
林哥果然用功啊,佩服佩服。

|
为什么不在写代码的时候,就直接判断文件打开是否成功,并且失败的时候直接打出来errno呢?这个时候,产品

都release出去了,遇到问题才想起errno的重要性来...

我前几天遇到一个和你几乎一摸一样的问题,代码是别人写的,我调了半个小时,总是在bind()的时候失败,后

来跟进去,发现就判断个返回值,我自己又加了句errno,一下就看出问题了

|
是文件状态没有清空吧?估计之前有文件打开未close

|
很可能是有其他程序打开了这个文件,或者是这个文件被多次打开后句柄没关闭

|


查询 /proc/self/fd/或/proc/self/fdinfo/目录下有多少文件描述符就可以知道当前进程打开的文件总数

|

不是说这几个文件换了目录,而是你的某个不经常的操作可能改变了程序的当前目录

|
sys/resource.h 中定义的RLIMIT_NOFILE是可以打开的文件数

|
你把errno打出来,至少要知道为什么fopen出错

|
是不是在程序中偶尔更改了工作目录或其他目录,导致找不到 map1/2/3...

|
我想,这可能是发生异常了吧。
看errno 是个好办法。
估计系统出了啥问题。

|
楼上的应该可以

    
 
 

您可能感兴趣的文章:

  • fopen 打开一个文件多次突然失败
  • 运行g++为什么说打开失败?
  • linux 下用open()函数在根目录下打开或创建文件失败
  • 打开设备文件失败
  • 对/tmp文件打开失败
  • 为什么总是打开/dev/fb0失败?
  • open()打开文件失败,文件存在却返回ENXIO错误?
  • 打开自定义的字符设备文件失败
  • 飞凌2440 内核移植运行时遇上/dev/fb0打开失败
  • 我在telnet到linux上的时候报不能打开到主机的连接, 在端口23: 连接失败 请问是什么原因
  • 有时候,在solaris调用open()会失败,errno=24,这是什么原因?怎样察看某进程已打开多少文件?是什么文件?
  • 设置sharepoint 2010文档库中的 pdf文件在浏览器中访问的打开方式
  • Linux下的文件打开标志(打开方式)和文件的访问权限有什么不同?
  • windows/windows 7/windows 8 下打开查看、修改及保存超大(GB级)文本文件及其它类型文件的工具-PilotEdit
  • fork一个子进程后在打开一个文件,如何在子进程中使用这个打开的文件描述符号
  • 通过jsp打开word文件,怎样去掉打开前的询问框?
  • RH9.0下用gedit打开一个文本文件汉字显示正常,可用vi打开就不行了!
  • fedora14无法打开桌面,所有文件夹都无法打开。
  • vim打开动态库文件会乱码,怎么打开,百度了都找不到合适的解决,求高手??????
  • solaris 2.6 中用vi打开一个文件,可是却是只读的,编辑后无法保存,怎么能不以只读方式打开
  • bak文件怎么打开 2000w数据怎么打开?
  • 文件操作 多个进程打开文件 不加锁 情况如何
  • 下载了Together5.02_Crack.rar文件,不知*.rar是什么文件,如何打开?
  • 挂载USB后,打开USB时找不到文件,都是文件夹,求解!
  • jsp做下载文件,(如rar文件)为什么下载后,无法打开?
  • 修改proc文件系统中同时打开文件个数错误
  • 使用TCP传输文件,文件传输成功了,大小也一样,但无法打开
  • 怎样让下载直接打开.exe文件 或者 .chm文件。 而不是变成下载框
  • 对/tmp文件打开失败 iis7站长之家
  • emacs中如何打开、编辑光标处的文件名对应的文件?
  • linux下,文件和文件夹不能同名?如果主菜单打开时候,屏幕抓图就不可以?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • VPN虚拟局域网和本地局域网共存(连上vpn后正常打开网页)
  • linux 如何让端口一直处于打开状态 比如 nc -lp 12000& 打开12000端口 可是马上就关闭了 现在可有办法让其一直处于打开状态
  • windows 7下打开或者关闭telnet客户端/服务端命令方法操作步骤
  • QT中如何判断一个窗口已打开,打开的话并如何关闭?
  • 怎么在点击一个链接后,把JSP网页打开在另外的窗口打开?
  • 紧急啊。。我用的ubuntu12,我安装了adobe flash player,可以打开在线视频,但是不能打开webQQ里的视频功能
  • 我要监测一台远程电脑的状态(未上线/上线但没打开每个应用程序/上线且打开应用程序),该如何作?
  • jquery代码-在弹出窗口中打开链接和在选项卡中打开链接
  • VS2005打开VS2008项目的2种方法(vs2005怎么打开2008)
  • 我下载了UNIX环境高级编程的源码,可是打开时有错误,怎么才可以打开?还有谁有《UNIX环境高级编程(英文版)》的chm格式的ebook?
  • Android程序打开和对输入法的操作(打开/关闭)
  • 页面刷新问题:所有的页面在打开时无论传递的参数是什么,打开的总是上一次打开页面的内容,必需刷新之后才能看到实际的网页。
  • 请大家给我解释一下,这是否和我用linux(ubuntu9.04)有关,前几天我的计算机不能打开网页,一打开就显示网通公司的页面,可以上QQ和百度hi。就是不能
  • php判断页面是否是微信打开的示例(微信打开网页)
  • 一个Statement不能同时打开两个ResultSet?为了同时打开两个,可以考虑建立两个Statement?甚至两个Connection?
  • rhel5 bind 配置好后,默认情况下query logging is OFF,需要rndc querylog打开,能在配置设置自动打开吗?
  • 请问如何以独占的方式打开串口
  • 后缀名为.ISO的文件如何打开?
  • 怎么打开GPRS功能???
  • 如何在关闭标准输入输出之后重新打开它们
  • Linux打开的文件描述符必须手动close吗


  • 站内导航:


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

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

    浙ICP备11055608号-3