当前位置: 技术问答>linux和unix
segment fault错误,高手进来,急急急
来源: 互联网 发布时间:2016-06-28
本文导语: 调用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);//...
调用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;
}
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;
}
|
没有打开去关闭也不会segment fault的,应该是别处的写内存错误导致了这里的segment fault.
|
close(0) 也会有 错啊。。。 这。。。
再认真查一下bt 一个系统调用出sigsegv 真是见鬼了,又没指针
再认真查一下bt 一个系统调用出sigsegv 真是见鬼了,又没指针
|
close 之后为啥又用了
dup2(deamon_file_no,STDOUT_FILENO);
dup2(deamon_file_no,STDOUT_FILENO);
|
perror打印出错误看看,或者gdb来调试看看