Dup2 文件描述符复制|学习笔记

简介: 快速学习 Dup2 文件描述符复制

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频Dup2 文件描述符复制 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11031


Dup2 文件描述符复制

 

dup2 函数 重定向

#include<unistd.h>

Int dup2(int oldfd, int newfd)

1. 功能:

复制一份打开的文件描述符 oldfd,并分配新的文件描述符 newfd,newfd 也标识oldfd 所标识的文件。

2.注意:

newfd 是小于文件描述符最大允许值的负整数,如果 newfd 是一个已经打开的文件描述符,则首先关闭该文件,然后再复制。

3.参数:

要复制的文件描述符 oldfd

分配的新的文件描述符 newfd

4. 返回值

成功:返回 newfd

失败:返回-1,错误代码存于errno中

代码如下:

#include<stdio.h>

#include<unistd.h>

#include<sys/types.h>

#include<sys/stat.h>

#include <fcnt1.h>

 int main(int argc, char *argv[])

{

int fd ,new_fd;

fd=open(“./test.txt”,O_RDWR);

if(fd<0)

{

perror(“open”);

return 0;

}

new_fd = dup2(fd,1);//new_fd的值为1

printf(“new_fd=%d\n”,new_fd);

printf(“hello world\n);

write(1,”hello kitty”,11);

结果如下:

hello kittynew fd=1

hello world

能够实现文件描述符的复制,而且不用保证1最小可用,直接指定new_fd为1即可。

相关文章
|
9月前
|
算法 Unix Linux
select函数中的文件描述符(File Descriptor)范围
select函数中的文件描述符(File Descriptor)范围
130 0
select函数中的文件描述符(File Descriptor)范围
56 # 实现 pipe 方法进行拷贝
56 # 实现 pipe 方法进行拷贝
70 0
|
机器学习/深度学习 C语言
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
536 0
【C 语言】文件操作 ( 使用 fseek 函数生成指定大小文件 | 偏移量 文件字节数 - 1 )
|
存储 Linux Shell
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
275 0
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
|
Linux C语言 Windows
【Linux进程】四、printf函数的缓冲区刷新机制与父子进程间的“读共享写拷贝”问题
【Linux进程】四、printf函数的缓冲区刷新机制与父子进程间的“读共享写拷贝”问题
273 0
【Linux进程】四、printf函数的缓冲区刷新机制与父子进程间的“读共享写拷贝”问题
|
物联网 Linux 开发者
Dup 文件描述符复制|学习笔记
快速学习 Dup 文件描述符复制
|
物联网 Linux 开发者
复制文件描述符后新旧文件描述符特点|学习笔记
快速学习复制文件描述符后新旧文件描述符特点
|
消息中间件 Unix C语言

热门文章

最新文章