1dup函数和dup2函数
#include
int dup(intoldfd);
int dup2(intoldfd, int newfd);
dup和dup2都可用来复制一个现存的文件描述符,使两个文件描述符指向同一个file结构体。如果两个文件描述符指向同一个file结构体,File
Status Flag和读写位置只保存一份在file结构体...
分类:
系统相关 时间:
2014-09-16 00:23:49
阅读次数:
254
在了解dup用法之前,需要对linux的文件节点有一个认识。
内核有3个数据结构来表示进程打开的文件,dup是系统提供的一个API可以直接操作这三个数据结构之间的关系。
(1)每个进程在进程表当中都有一个记录项,记录项中包含一张表格,记录了所有当前进程打开的文件,可以将其想象成为一个key-value的映射关系,key为文件描述符fd,对于每个进程来说,fd从0开始向后排,value为指向文件...
分类:
其他好文 时间:
2014-09-09 18:20:19
阅读次数:
220
lienhua342014-08-23UNIX 提供了两个函数 dup 和 dup2 用于复制一个现存的文件描述符。#include int dup(int filedes);int dup2(int filedes, int filedes2);返回值:若成功则返回新的文件描述符,如出错则返回-1...
分类:
其他好文 时间:
2014-08-28 23:59:06
阅读次数:
449
UNP的图已经说得很清楚了,直接上图:
每个目录项指向一个i节点,每个节点有一个链接计数(硬连接),减为0时文件被删除...
分类:
系统相关 时间:
2014-07-31 20:48:07
阅读次数:
325
1. dup 函数 1.1 dup 函数用来复制一个文件描述符,复制后的文件描述符可以正常使用(见例1)。dup函数返回当前文件描述符表中一个最小的可用的文件描述符(Linux下分配文件描述符的规则是:寻找最小可用),这个过程由系统来完成。dup函数成功执行后,两个文件描述符fd_1 和 fd_2....
分类:
系统相关 时间:
2014-07-24 05:01:18
阅读次数:
374
dup,dup2,dup3函数 顾名思义,dup及duplicate的简写,也就是复制的意思。而事实上这几个函数的功能也确实是复制文件描述符。那为什么要复制文件描述符呢?呵呵,我认为是程序员想偷懒,因为这个功能可以进行输入输出重定向。下面这个程序将实现文件复制功能 1 #include 2 #i.....
分类:
系统相关 时间:
2014-07-21 10:05:22
阅读次数:
307
6月20号给美团的朋友说内推实习生,马上就打过来电话约了时间,刚创业的公司效率就是快。23号晚上电面一面,聊了半个小时,问的问题比较基础但是范围很广,什么是文件描述符?常用对文件描述符操作的函数,dup与dup2,熟悉的信号(sigchld,sigkill,sighup,sigterm,sigint...
分类:
其他好文 时间:
2014-07-16 14:56:13
阅读次数:
285
dup与dup2函数用于复制现存的文件描述符。原型:#include int dup(int fd);int dup2(int fd, int fd2);两函数若成功则返回新描述符,出错则返回-1。dup函数返回一个新的描述符,并且这个新描述符一定是可用描述符中数值最小的一个。dup2函数使用fd2...
分类:
其他好文 时间:
2014-06-19 09:03:12
阅读次数:
171
重定向dup和dup2函数[cpp] view
plaincopyprint?#includeintdup(intfile_descriptor);intdup2(intfile_descriptor_one,intfile_descriptor_two);dup创建一个新的文件描述符,
此描述符和...
分类:
系统相关 时间:
2014-05-14 22:34:09
阅读次数:
479
(一)
Linux系统支持不同进程间共享打开的文件。...
分类:
系统相关 时间:
2014-05-11 21:50:56
阅读次数:
417