-1

readでパイプを開きたいfd_cloexecのですが、関数の 2 番目のパラメーターを設定する方法がわかりませんpopen()。次のコードを実行すると、子プロセスにパイプのファイル記述子がまだあります。

#include <stdio.h>

int main()
{
   FILE *p=popen("ls -l","re");
   char buf[100];
   memset(buf,0x00,100);

   fread(buf,sizeof(char),10,p);

   if (fork()==0)
   {
      while(1)
      {
      }
   }

   printf("%s",buf);
   pclose(p);

   return 0;
}
4

1 に答える 1