Linux下开发-dup和dup2
来源:互联网 发布:自动生成条形码软件 编辑:程序博客网 时间:2024/05/22 08:17
dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File Status Flag和读写位置只保存一份在file结构体中,并且file结构体的引用计数是2。
如果两次open同一文件得到两个文件描述符,则每个描述符对应一个不同的file结构体,可以有不同的FileStatus Flag和读写位置。
#include <unistd.h>
int dup(int oldfd);
int dup2(int oldfd, int newfd);
如果调用成功,这两个函数都返回新分配或指定的文件描述符,如果出错则返回-1。
dup返回的新文件描述符,是该进程未使用的最小文件描述符,这一点和open类似。
dup2可以用newfd参数指定新描述符的数值。如果newfd当前已经打开,则先将其关闭再做dup2操作,如果oldfd等于newfd,则dup2直接返回newfd而不用先关闭newfd再复制。
int dup(int oldfd);
dup()用来复制参数oldfd所指的文件描述词,并将它返回。此新的文件描述词和参数oldfd指的是同一个文件,共享所有的锁定、读写位置和各项权限或旗标。例如,当利用lseek()对某个文件描述词作用时,另一个文件描述词的读写位置也会随着改变。不过,文件描述词之间并不共享close-on-exec旗标(http://www.tuicool.com/articles/FvIjMv)。
当复制成功时,则返回最小及尚未使用的文件描述词。若有错误则返回-1,errno会存放错误代码。
int dup2(int oldfd, int newfd);
dup2()用来复制参数oldfd所指的文件描述词,并将它拷贝至参数newfd后一块返回。若参数newfd为一个已打开的文件描述词,则newfd所指的文件会先被关闭。dup2()所复制的文件描述词,与原来的文件描述词共享各种文件状态。
当复制成功时,则返回最小及尚未使用的文件描述词。若有错误则返回-1,errno会存放错误代码。
- Linux下开发-dup和dup2
- linux下dup和dup2
- linux开发--dup和dup2函数解析
- Linux-dup和dup2函数
- linux下dup/dup2函数的用法
- linux下dup/dup2函数的用法
- Linux 系统库函数 -- dup 和 dup2
- Linux 中 dup 和 dup2 函数剖析
- linux之dup和dup2函数解析
- dup和dup2两个函数 -- linux函数
- Linux系统调用dup()和dup2()
- linux之dup和dup2函数解析
- linux之dup和dup2函数解析
- linux dup()/dup2()函数
- linux dup()\dup2()函数
- linux dup与dup2
- Linux dup() dup2()函数
- linux dup/dup2
- OLD-X PIX介入控制固件操作
- OpenGL_2 OpenGL窗口
- Window下Eclipse安装NDK
- Java初识:抽象类的方法调用机制
- 织梦文章按权重排序的方法(正序、倒序均可)
- Linux下开发-dup和dup2
- MVP解析前言 从Google推出官方MVP架构demo到现在大概有一年多的时间了,半年前大概在所有的Android技术社区都有提到MVP架构,现在关于MVP架构的话题似乎没有以前那么多了,可能是因
- css 实现单行文字两端对齐
- 小球碰撞(多线程)
- 关于拉格朗日的各种
- dedeCMS 织梦的日期时间格式大全
- 杭电oj2073
- Goldbach's Conjecture
- Write Put, Covered Call qqq策略分析