fclose会使进程结束

welcome1998 2008-04-02 10:16:01
建结点:
#mknode file c 166 0


跑以下程序:
...
fp=fopen("file","r");
...
fclose(fp);//会使进程结束,应当如何解这个问题?
...
...全文
175 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
welcome1998 2008-04-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 jennyvenus 的回复:]
不是多线程的就调一下吧,多线程的就是调起来费事
[/Quote]

高人,能否讲略微详尽点
用户 昵称 2008-04-04
  • 打赏
  • 举报
回复
不是多线程的就调一下吧,多线程的就是调起来费事
welcome1998 2008-04-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 arong1234 的回复:]
即使不是NULL,如果倍破坏指向别得值,一样会core dump
出现问题,不能只看出错那行,找bug是非常困难且需要技巧的事情
[/Quote]

已经发现是段错误,但是我不想在发生段错误的时候退出,而保持进程不断去测试那个node是不是可用怎么办,我用signal()去处理SIGSEGV信号可以吗?要怎么来实现啊?
qiucp 2008-04-03
  • 打赏
  • 举报
回复
up
welcome1998 2008-04-03
  • 打赏
  • 举报
回复
我是在watchdog里跑以上的程式
arong1234 2008-04-02
  • 打赏
  • 举报
回复
即使不是NULL,如果倍破坏指向别得值,一样会core dump
出现问题,不能只看出错那行,找bug是非常困难且需要技巧的事情
brookmill 2008-04-02
  • 打赏
  • 举报
回复
fp是不是NULL
abupie 2008-04-02
  • 打赏
  • 举报
回复
fopen()后需要判断是否正常打开,如果fclose()一个非法fp会出现楼主的问题(一般是core)。

fopen(打开文件)
相关函数 open,fclose

表头文件 #include<stdio.h>

定义函数 FILE * fopen(const char * path,const char * mode);

返回值 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。

附加说明 一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。

范例 #include<stdio.h>
main()
{
FILE * fp;
fp=fopen(“noexist”,”a+”);
if(fp= =NULL) return;
fclose(fp);
}

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧