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;
}