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即可。

相关文章
|
6天前
|
算法 Unix Linux
select函数中的文件描述符(File Descriptor)范围
select函数中的文件描述符(File Descriptor)范围
18 0
select函数中的文件描述符(File Descriptor)范围
|
7月前
56 # 实现 pipe 方法进行拷贝
56 # 实现 pipe 方法进行拷贝
24 0
|
11月前
|
存储 Linux 开发工具
【Linux】基础IO(一) :文件描述符,文件流指针,重定向(下)
【Linux】基础IO(一) :文件描述符,文件流指针,重定向(下)
125 0
|
11月前
|
存储 Java Linux
【Linux】基础IO(一) :文件描述符,文件流指针,重定向(上)
【Linux】基础IO(一) :文件描述符,文件流指针,重定向
99 0
|
存储 Linux Shell
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
216 0
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
系统编程之文件IO(六)——获取文件属性(stat、fstat、lstat、struct stat)
系统编程之文件IO(六)——获取文件属性(stat、fstat、lstat、struct stat)
105 0
系统编程之文件IO(六)——获取文件属性(stat、fstat、lstat、struct stat)
|
物联网 Linux 开发者
Dup 文件描述符复制|学习笔记
快速学习 Dup 文件描述符复制
89 0
Dup 文件描述符复制|学习笔记
|
物联网 Linux 开发者
复制文件描述符后新旧文件描述符特点|学习笔记
快速学习复制文件描述符后新旧文件描述符特点
99 0
|
Linux
使用LINUX dup2 复制文件描述符到标准输出STDOUT_FILENO
  7    8 #include   9 #include  10 #include  11 #include  12 #include  13 #include  14   15   16   17 int main(int argc...
1128 0
|
消息中间件 Unix C语言