linux学习第15天(dup和dup2)

头文件#include<unistd.h>

#include<fcntl.h>

用来做重定向,本质就是复制文件描述符

dup

int dup(int oldfd);

oldfd:旧的文件描述符

例子

编译执行,4这个文件描述符就指向3指向的内容,dup就到这

dup2

int dup2(int oldfd,int newfd);

newfd:新的文件描述符,指向oldfd指向的内容,是复制oldfd的新的文件描述符

例子1

编译执行,可以看到,fd2是新的文件描述符,指向fd1所指的,将fd2添加"1234321",可以看到,dup.c也就是fd1被修改了(强调一下,打开一个文件,读写指针默认在文件头,如果文件本身有内容,直接写入会覆盖原有内容。例子2因为文件没有关,hello world就在1234321后面加入。)

例子2

将原本输出到屏幕上的内容,输入到dup.c

编译执行,在执行dup2(fd1,STDOUT_FILENO)这一句后,后续打印到屏幕上的都将送入fd1中,

相关推荐
fy zs4 分钟前
Linux线程互斥与同步
linux·c++
---学无止境---5 分钟前
sys_ioperm 函数详解
linux
Dovis(誓平步青云)9 分钟前
《从内核视角看 Linux:环形缓冲区 + 线程池的生产消费模型实现》
linux·运维·服务器
Cincoze-Johnny14 分钟前
Linux系统-应用问题全面剖析Ⅳ:德承工控机MD-3000在Ubuntu操作系统下[TPM功能]设置教程
linux·运维·ubuntu
默|笙14 分钟前
【Linux】进程(1)
linux·运维·服务器
某林21215 分钟前
基于ROS2与EKF的四轮差速机器人里程计精度优化:解决建图漂移与重影问题
linux·stm32·嵌入式硬件·slam·智能小车
dragoooon3416 分钟前
[Linux网络基础——Lesson7.「传输层协议 UDP 与 TCP」]
linux·网络·udp
im_AMBER21 分钟前
Leetcode 68 搜索插入位置 | 寻找比目标字母大的最小字母
数据结构·笔记·学习·算法·leetcode
重生之我在番茄自学网安拯救世界22 分钟前
网络安全中级阶段学习笔记(四):XSS-Labs 前 10 关 通关命令and实战笔记
笔记·学习·网络安全·xss·xss-labs
红袜子i22 分钟前
解决 Ubuntu 中 apt-get update 因架构配置混乱导致的更新失败问题
linux·ubuntu·架构