0

奇妙な問題が発生しています。サンプルコードは以下に含まれています

このコードを valgrind で実行すると、popen で割り当てられたメモリがまだ到達可能であるというエラーが表示されます。この警告について心配する必要がありますか? はいの場合、可能な解決策は何ですか?

       Func1()
            FILE *fp = NULL;
            int fd = 0;
            fp = popen(g_cmd, "r");
            fd = fileno(fp); // store fd for later processing.
            ...
    
       Func2(fd)
            FILE *popen_fp = NULL;
            popen_fp  = fdopen(fd, "r");  // Convert fd to File pointer.
            if (popen_fp) pclose(popen_fp);

==11748== 256 bytes in 1 blocks are still reachable in loss record 1 of 1
==11748==    at 0x4C29F73: malloc
==11748==    by 0x5542627: popen@@GLIBC_2.2.5
LEAK SUMMARY:
==11748==    definitely lost: 0 bytes in 0 blocks
==11748==    indirectly lost: 0 bytes in 0 blocks
==11748==      possibly lost: 0 bytes in 0 blocks
==11748==    still reachable: 256 bytes in 1 blocks
4

0 に答える 0