我的代码看起来像:
void kernel_version(char * kernel_str)
{
FILE * fp = fopen(log, "a");
FILE * pipe = popen("uname -r", "r");
if(fp && pipe)
{
//
}
pclose(pipe);
pclose(fp);
}
通常在动态分配内存时会发生泄漏。但是,我没有动态地分配代码中任何地方的内存。我无法指出泄漏。
不应该最后一行是 fclose(fp)
?
我认为这是出现问题的地方。
将pclose(fp)
更改为fclose(fp)
。
fopen() -> fclose()
popen() -> pclose()