dup()函数
# include <stdio.h> # include <fcntl.h> # include <unistd.h> int main ( int argc , char * argv [ ] ) { if ( argc < 2 ) { perror ( "error" ) ; } int fd1 , fd2 ; fd1 = open ( argv [ 1 ] , O_RDWR ) ; if ( fd1 == - 1 ) { perror ( "error" ) ; } fd2 = dup ( fd1 ) ; close ( fd1 ) ; char buf [ 128 ] = { 0 } ; read ( fd2 , buf , sizeof ( buf ) ) ; printf ( "buf =%s \n" , buf ) ; close ( fd2 ) ; } dup()函数 头文件及函数定义: #include <unistd.h> int dup(int oldfd); dup用来复制参数oldfd所指的文件描述符。当复制成功是,返回最小的尚未被使用过的文件描述符,若有错误则返回-1.错误代码存入errno中返回的新文件描述符和参数oldfd指向同一个文件,这两个 描述符共享同一个数据结构,共享所有的锁定,读写指针和各项全现或标志位。 调用dup(oldfd)等效于