欢迎光临
专业Linux运维二十年

linux系统下dup和dup2函数解析

—-今天接着昨天的话题讲,在昨天的文章里面,我们讲到了文件共享有三种实现方式,其中一种实现方式就是我们今天要讲的dup和dup2函数来实现了;那么咋们也就不废话 了,直接直奔主题吧。

一、dup函数解析:

1)首先我对这个dup函数的用法也不熟,所以说用man手册来查,这是最好的学习方法(或者网上查,有一大波博客会有讲这个的用法,但就我个人而言,还是要养成自己去探索一个新东西的习惯),看下图:

注解:这里主要是说了dup函数在旧的文件描述符复制会返回一个新的文件描述符,并且这个新的文件描述符是在连续接着旧的文件描述(比如旧的文件描述符是3,新的文件描述符则是4)。下面我们还是来看代码示例和试验现象:

代码语言:javascript
代码运行次数: 0 运行 复制

2、dup返回的fd和原来的oldfd都指向oldfd打开的那个【动态文件】,操作这两个fd实际操作的都是oldfd打开的那个文件。实际上构成了文件共享。和昨天一样,我们看一下对同一个文件操作,它是接续写还是分别写:

代码语言:javascript
代码运行次数: 0 运行 复制

二、dup2函数解析:

1、相比于dup函数,dup2函数它的优势就是可以指定新的文件描述符的大小,用法比较灵活。我来看一个代码示例和试验现象:

代码语言:javascript
代码运行次数: 0 运行 复制

2、dup2和dup函数一样对文件写操作都是接续写的,这里我就不做演示了,写法和dup函数一样。上面的源代码链接:https://hub.com/1121518wo/-/tree/master

三、Linux系统下管道符和重定向的学习补充:

这里可以参考刘遄老师写的 这本书,写的非常好:https://www.linuxprobe.com/chapter-03.html

以上就是系统下dup和dup2函数解析的详细内容,更多请关注php中文网其它相关文章!

脚本之家
赞(0) 打赏
未经允许不得转载:Linux老运维 » linux系统下dup和dup2函数解析

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫