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

相关推荐
FanfanPyt4 分钟前
Python打卡训练营学习记录Day38
学习
ayas123191 小时前
numpy与matplotlib学习——数据可视化入门
学习·numpy·matplotlib
鱼嘻1 小时前
四足机器人环境监测系统相关问题
linux·c语言·开发语言·网络·机器人
hutaotaotao1 小时前
python处理signal(信号)
linux·python·信号处理·软件中断
fictionist1 小时前
Linux 进阶命令篇
linux·运维·服务器·开发语言·学习
!!!5252 小时前
策略模式与责任链模式学习笔记:从入门到理解
学习·责任链模式·策略模式
yangshuo12812 小时前
解决ubuntu服务器未使用空间的分配
linux·服务器·ubuntu
不穿铠甲的穿山甲2 小时前
mysql-tpcc-mysql压测工具使用
linux·mysql·压测
讨厌下雨的天空3 小时前
Linux编辑器——vim的使用
linux·运维·编辑器
虾球xz3 小时前
游戏引擎学习第314天:将精灵拆分成多个层
linux·c++·学习·游戏引擎