Linux中dup函数和dup2函数

这篇博客探讨了Linux系统中用于文件描述符重定向的dup和dup2函数。dup()函数返回最小未使用的文件描述符并将其指向指定描述符的同一文件表项;而dup2()函数允许指定要改变的文件描述符,并原子性地将其指向另一个描述符。两者都是Linux文件操作的重要部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人博客传送门

Linux 中进行文件描述符的重定向可以使用两个函数:dup函数和dup2函数,其中还有一个dup3函数,但是这个是Linux后面版本添加的,不是所有的Linux内核都支持,在这里不讨论。

在Linux系统中约定文件描述符 0、1、2 对应标准输入、标准输出、标准错误,默认开启。

dup()
#include <unistd.h>
int dup(int fd);

使用dup()函数的时候,参数是新的文件描述符期望指向的文件描述符。返回文件描述符表中最小的没有被使用的文件描述符。

如果我们的fd除了默认打开的0、1、2之外,没有被使用的。我们调用dup(1),那么最小的没有被使用的fd = 3 就会指向跟fd = 1的同一个文件表。

dup(1)

他的做法就类似以下做法:

fcntl(1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值