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中,

相关推荐
三言老师4 分钟前
K8s 集群 LocalPV 静态 PV 资源手动创建实操
linux·运维·服务器·kubernetes
一直在努力学习的菜鸟13 分钟前
Rocky Linux 8.10 编译安装 PostgreSQL 17.11
linux·运维
海兰22 分钟前
【Kafka学习2】Apache Kafka 典型应用场景
学习·kafka·apache
Doraemomo28 分钟前
Linux编程-进程的执行和退出
linux·运维·服务器
边境悍匪1 小时前
蜗牛学苑 Java 学习 Day23|SpringBoot 思维导图复盘
学习
lengjingzju1 小时前
编译与调试完全指南—第5章 GDB调试详解
linux
艾伦_耶格宇1 小时前
【ELK】-5 kibana和filebeat
linux·运维·ubuntu·elk
xx~t1 小时前
嵌入式学习22
数据结构·学习·算法·排序算法
DevHub1 小时前
电视盒子刷 Armbian 教程:30 元旧盒子变 NAS 跑 Docker,200+ 机型可刷
linux·嵌入式硬件·docker·容器·开源·电视盒子
三言老师1 小时前
K8s 集群 Ceph 节点磁盘分区规划配置实操
linux·运维·数据库