/* * Sample program for dup2 system call - No.63 * * dup, dup2 - duplicate a file descriptor * * Synopsis * #include * * int dup(int oldfd); * int dup2(int oldfd, int newfd); * * Description * dup and dup2 create a copy of the file descriptor oldfd. * * After successful return of dup or dup2, the old and new * descriptors may be used interchangeably. They share locks, * file position pointers and flags; for example, if the file * position is modified by using lseek on one of the descrip- * tors, the position is also changed for the other. * * The two descriptors do not share the close-on-exec flag, * however. * * dup uses the lowest-numbered unused descriptor for the new * descriptor. * * dup2 makes newfd be the copy of oldfd, closing newfd first * if necessary. */ #include #include /* for O_CREAT and O_WRONLY */ #include /* for system() */ main() { int fd; fd = open("foo.txt", O_CREAT | O_WRONLY, 0666); dup2(fd, 1); system("/bin/ls"); }