Cと言うよりUNIXなのですが、
よろしいでしょうか。

dup2(fd, STDIN_FILENO);
dup2(fd, STDOUT_FILENO);
close(fd);
execlp("cat", "cat", NULL);

としたのですが、
fdに何か書き込んでも、
fdから何も出てきません。
何がいけないんでしょうか。