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

相关文章
|
10月前
|
C语言
使用fclose函数关闭数据文件
使用fclose函数关闭数据文件
77 0
|
10月前
|
C语言
用fclose函数关闭数据文件
用fclose函数关闭数据文件
115 2
【文件指针+文件顺序读写操作函数】(1)
1.文件的打开和关闭 1.1 什么是文件指针? 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的,取名FILE.
【文件指针+文件顺序读写操作函数】(2)
1.文件的打开和关闭 1.1 什么是文件指针? 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的,取名FILE. 假如:我们要操作一个文件,名为text.txt ,首先要打开文件,打开文件的同时,操作系统会自动为该文件创建一个文件信息区,专门用来记录该文件的信息。
|
存储 Linux Shell
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
279 0
Linux系统调用十、进程地址空间、文件描述符、errno错误码、dup()重定向
|
物联网 Linux 开发者
Dup 文件描述符复制|学习笔记
快速学习 Dup 文件描述符复制
|
编译器 C++ iOS开发
C++文件操作解析及使用(读、写文件 使用文件指针)
C++文件操作解析及使用(读、写文件 使用文件指针)
299 0
C++文件操作解析及使用(读、写文件 使用文件指针)
|
物联网 Linux 开发者
复制文件描述符后新旧文件描述符特点|学习笔记
快速学习复制文件描述符后新旧文件描述符特点
|
存储 物联网 Linux
文件描述符|学习笔记
快速学习文件描述符
|
C语言
【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )
【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )
259 0
【C 语言】文件操作 ( 按照内存块的方式读写文件 | fread 函数 | fwrite 函数 )