Valgrind 报告内存泄漏,尽管没有 [c]

Valgrind reports memory leak though there isn't one [c]

我的代码如下:

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()