例子:实现重定向
利用子进程继承文件描述符的特性
int fd_in = open(..., O_RDONLY | O_CLOEXEC);
int fd_out = open(..., O_WRONLY | O_CLOEXEC);
int pid = fork();
if (pid == 0) {
dup2(fd_in, 0);
dup2(fd_out, 1);
execve(...);
} else {
close(fd_in);
close(fd_out);
waitpid(pid, &status, 0);
}