我收到“分段错误(核心已转储)”
并且过程被中断。
请帮助修复它!
可疑的部分代码在这里
...
FILE *pFile;
char buffer[100];
sprintf(buffer,"/var/www/html/%s.txt",topic);
pFile = fopen(buffer,"w" );
上面可能会出现此问题
(未输入if-else)
if( NULL == pFile ){
_mosquitto_log_printf(NULL, MOSQ_LOG_DEBUG,"open failure" );
}else{
fwrite(payload,1,sizeof(payload)-1,pFile);
_mosquitto_log_printf(NULL, MOSQ_LOG_INFO, "File context : %s", payload);
}
fclose(pFile);
...
操作系统Ubuntu 14
最佳答案
即使是空指针,也可以使用fclose
调用pFile
。用无效的指针(如空指针)或已经关闭的fclose
调用FILE*
是不确定的。
仅调用fclose
是指针不是NULL
,即在代码的else
子句中。
关于c - 使用“FILE * pFile;”的段错误(核心已转储)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38323174/