segment fault错误,高手进来,急急急

FanTasyCC 2009-08-27 09:13:58
调用iniLogFile();

static inline void openLogFile() {
fflush(stdout);
sync();
sprintf(deamon_file_name, "%s.%d.log", DEAMON_LOGFILE_NAME, 0);
deamon_file_no = open(deamon_file_name ,O_CREAT|O_WRONLY|O_TRUNC, DEFFILEMODE);
if (deamon_file_no > 0) {

close(STDOUT_FILENO);//这里停止执行,出现segment fault

dup2(deamon_file_no,STDOUT_FILENO);
};
}

static inline void iniLogFile() {
deamon_stdio_no =dup(STDOUT_FILENO);
//deamon_start_time = get_current_time_llong();
openLogFile();
backup_num=1;
}
...全文
232 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐田伯光 2009-09-01
  • 打赏
  • 举报
回复
没有打开去关闭也不会segment fault的,应该是别处的写内存错误导致了这里的segment fault.

[Quote=引用 6 楼 wustzrx 的回复:]
同意3楼的看法,没打开,关闭肯定会有问题的
[/Quote]
morris88 2009-09-01
  • 打赏
  • 举报
回复
把相关补丁打上吧
northwesternwind 2009-09-01
  • 打赏
  • 举报
回复
deamon_file_name长度不够
  • 打赏
  • 举报
回复
perror打印出错误看看,或者gdb来调试看看
  • 打赏
  • 举报
回复
全部代码都在这里了?
wustzrx 2009-08-31
  • 打赏
  • 举报
回复
同意3楼的看法,没打开,关闭肯定会有问题的
rzsheng 2009-08-28
  • 打赏
  • 举报
回复
close 之后为啥又用了
dup2(deamon_file_no,STDOUT_FILENO);

threeleafzerg007 2009-08-28
  • 打赏
  • 举报
回复
close(0) 也会有 错啊。。。 这。。。
再认真查一下bt 一个系统调用出sigsegv 真是见鬼了,又没指针
ShowMan 2009-08-28
  • 打赏
  • 举报
回复
你为什么要关闭STDOUT_FILENO。

本身你也没有open这个啊!标准输出这么关可能有问题。
steptodream 2009-08-28
  • 打赏
  • 举报
回复
友情UP
FanTasyCC 2009-08-27
  • 打赏
  • 举报
回复
ps:
as5.0系统上,as4.0正常

23,107

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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