首先我们要关闭指定的描述符,假如我们希望将文件描述符fd1复制为fd2,那么我们应该先关兄升闭文件描述符fd2。因为这个描述符很有可能被打开了。接姿尘搜下来就是要暴力的调用dup函迹历数复制描述符fd1,直到返回值等于fd2为止。
成都创新互联公司是一家以重庆网站建设公司、网页设计、品牌设计、软件运维、成都网站营销、小程序App开发等移动开发为一体互联网公司。已累计为水泥搅拌车等众行业中小客户提供优质的互联网建站和软件开发服务。
你可以这样做,但是没有必要。
因为 fd是李差困指向你的打开的文件表项(每哪念个打开的文件都有这么一表项),存在多个fd指向一个表项的情况(如你调用dup2,dup,fcntl),系统采用引用计数的方法,如你有两个fd指向一个文件表现,则计数为2,这样你每次调用close,引用计数减1,减到0是,销庆雀毁文件表项以及文件的vnode(inode结构)。即便你不手动关闭文件,进程结束时,系统会自动关闭你打开的文件,所以,试情况而定。有时你可以不必自己close文件。
C语言dup2()函数:复制文件描述词链配闹
头文件:
?#include unistd.h
定义函数:?int dup2(int odlfd, int newfd);
函数说明:dup2()用来复制参数oldfd 所指的文件描述词, 并将它拷棚罩贝至参数newfd 后一块返回. 若参数newfd为一已打开的文件描述词,
则newfd 所指的文件会先被关闭. dup2()所复制的文件描述词, 与原来的文件描述词共享各种文件状态, 详情可参考dup().
返回值:当复制成功时, 则返回最小及尚未使用的文件描述词. 若有错误则返回-1, errno 会存放错误代码.
附加说明:dup2()相当于调用fcntl(oldfd, F_DUPFD, newfd).
错误代码:EBADF 参卖陵数fd 非有效的文件描述词, 或该文件已关闭
dup它有多种意义,包括Linux c 函数、C语言函数DUP、汇编指令、化学物质DUP。
C语言函数DUP
函数简介
函数名: _dup
功 能: 复制一个文型键型件句柄
用 法: int _dup(int handle);
相关函数:_dup2、fdopen、freopen、_mbsdup、_wcsdup、_strdup
扩展资料:
汇编指令卜猜
dup 在汇编中是一条伪指令,用来重复初始化数据
用法举例:
str1 db 10 dup ('!@#') ;这就是十个!@#
格式:亮清db 重复的次数 dup (重复的内容)
化学物质DUP
DUP是1,2-苯二甲酸二正十一酯,不溶于水,主要是作为增塑剂来使用的,溶于酯类。
参考资料 百度百科-DUP