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

相关推荐
promising-w2 小时前
【运算放大器专题】基础篇
嵌入式硬件·学习
宝山哥哥2 小时前
网络信息安全学习笔记1----------网络信息安全概述
网络·笔记·学习·安全·网络安全
前端开发与ui设计的老司机2 小时前
从UI设计到数字孪生实战:构建智慧教育的个性化学习平台
学习·ui
AmosTian2 小时前
【系统与工具】Linux——Linux简介、安装、简单使用
linux·运维·服务器
X Y O2 小时前
神经网络初步学习3——数据与损失
人工智能·神经网络·学习
霖004 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发
这我可不懂5 小时前
Python 项目快速部署到 Linux 服务器基础教程
linux·服务器·python
车车不吃香菇5 小时前
java idea 本地debug linux服务
java·linux·intellij-idea
巴伦是只猫5 小时前
【机器学习笔记 Ⅲ】1 无监督学习
笔记·学习·机器学习
tan77º5 小时前
【Linux网络编程】Socket - TCP
linux·网络·c++·tcp/ip