|  |  | 
 |  |  | #include <stdio.h>  | 
 |  |  | #include <string.h>  | 
 |  |  | #include <errno.h>  | 
 |  |  | #include <unistd.h>  | 
 |  |  | #include <stdio.h> | 
 |  |  | #include <string.h> | 
 |  |  | #include <errno.h> | 
 |  |  | #include <unistd.h> | 
 |  |  | #include <sys/types.h> | 
 |  |  | #include <sys/stat.h> | 
 |  |  | #include <fcntl.h> | 
 |  |  |  | 
 |  |  | int main(int argc, char *argv) | 
 |  |  | {  | 
 |  |  |     int                 fd = -1;  | 
 |  |  | { | 
 |  |  |     int                 fd = -1; | 
 |  |  |  | 
 |  |  |     fd = open("std.txt", O_RDWR|O_CREAT|O_TRUNC, 0666); | 
 |  |  |     if(fd < 0) | 
 |  |  |     { | 
 |  |  |         printf("Open file failure: %s\n", strerror(errno)); | 
 |  |  |         return 1; | 
 |  |  |     }  | 
 |  |  |      | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     dup2(fd, STDIN_FILENO); | 
 |  |  |     dup2(fd, STDOUT_FILENO); | 
 |  |  |     dup2(fd, STDERR_FILENO); | 
 |  |  |  | 
 |  |  |     printf("fd=%d\n", fd);  | 
 |  |  |      | 
 |  |  |     printf("fd=%d\n", fd); | 
 |  |  |  | 
 |  |  |     close(fd); | 
 |  |  |  | 
 |  |  |     return 0; |