C 我可以在不关闭文件描述符的情况下打开多个popen吗?

C 我可以在不关闭文件描述符的情况下打开多个popen吗?,c,linux,C,Linux,在调用同一函数中的下一个popen之前,是否可以对多个popen使用相同的文件描述符而不关闭它? 在长期运行中,它是否会因任何运行时错误而导致内存泄漏? e、 g 不要那样做。您正在丢失上一个popen调用返回的文件*,因此您将无法pclose()这些文件。因此,这会造成资源泄漏,内存不会被释放,并且您可能永远不会终止启动的进程 还请注意,您应该调用pclose()而不是fclose()谢谢您的回答。 fun() { FILE *fd = popen (some_command

在调用同一函数中的下一个popen之前,是否可以对多个popen使用相同的文件描述符而不关闭它? 在长期运行中,它是否会因任何运行时错误而导致内存泄漏? e、 g


不要那样做。您正在丢失上一个
popen
调用返回的
文件*
,因此您将无法
pclose()
这些文件。因此,这会造成资源泄漏,内存不会被释放,并且您可能永远不会终止启动的进程


还请注意,您应该调用
pclose()
而不是
fclose()

谢谢您的回答。
    fun()
    { FILE *fd  = popen (some_command, "r");
      fd = popen (another_command, "r");
      fd = popen (another_command, "r");
      ... and so on..
      fclose(fd);   //at the end of the program 
    }