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

相关推荐
9ilk17 分钟前
【仿RabbitMQ的发布订阅式消息队列】 ---- 功能测试联调
linux·服务器·c++·分布式·学习·rabbitmq
('-')22 分钟前
《从根上理解MySQL》第一章学习笔记
笔记·学习·mysql
q***74825 分钟前
在Linux系统上使用nmcli命令配置各种网络(有线、无线、vlan、vxlan、路由、网桥等)
linux·服务器·网络
d111111111d1 小时前
STM32外设学习-串口发送数据-接收数据(笔记)
笔记·stm32·学习
2301_807583231 小时前
zabbix监控ES集群健康状态并触发钉钉告警
linux·zabbix
Elias不吃糖1 小时前
eventfd 初认识Reactor/多线程服务器的关键唤醒机制
linux·服务器·c++·学习
磊〜1 小时前
Linux 服务器安装 dstat 监控插件
linux·运维·服务器
大连滚呢王1 小时前
Linux(麒麟)服务器离线安装单机Milvus向量库
linux·python·milvus·银河麒麟·milvus_cli
宋辰月1 小时前
学习react第三天
前端·学习·react.js
馨谙2 小时前
网络文件系统(NFS)完全指南:从入门到实战
linux·unix