dup()/dup2()函数使用

本文详细介绍了Linux系统中的dup()和dup2()函数,这两个函数用于复制文件描述符。dup()函数返回一个最小且未被占用的新文件描述符,使它与给定的文件描述符指向同一文件。而dup2()函数允许指定一个新的文件描述符,它会关闭原有文件并使新旧文件描述符指向同一文件。
摘要由CSDN通过智能技术生成

dup()函数

函数功能:

复制文件描述符;

函数原型

int dup(int oldfd);

oldfd --需要复制的文件描述符;

函数返回值

成功:返回最小且没有被占用的文件描述符;
失败:返回-1,设置error;

//测试dup函数复制文件描述符
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

int main(int argc, char *argv[])
{
	//打开文件
	int fd = open(argv[1], O_RDWR);
	if(fd<0)
	{
		perror("open error");
		return -1;
	}

	//调用dup函数复制fd
	int newfd = dup(fd);
	printf("newfd:[%d], fd:[%d]\n", newfd, fd);

	//使用fd对文件进行写操作
	write(fd, "hello world", strlen("hello world"));

	//调用lseek函数移动文件指针到开始处
	lseek(fd, 0, SEEK_SET);

	//使用newfd读文件
	char buf[64];
	memset(buf, 0x00, sizeof(buf));//将数组初始化;
	int 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值