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

相关推荐
企鹅虎2 分钟前
linux内核驱动开发视频课程
linux
百锦再21 分钟前
从 .NET 到 Java 的转型指南:详细学习路线与实践建议
android·java·前端·数据库·学习·.net·数据库架构
Clownseven37 分钟前
如何用Fail2ban保护Linux服务器?防止SSH暴力破解教程
linux·服务器·ssh
ASKED_20191 小时前
ChatGPT From Zero To Hero - LLM学习笔记(一)
笔记·学习·chatgpt
GoldenaArcher1 小时前
Postman 学习笔记 III:CLI 自动化测试与 Jenkins CI/CD 实践
笔记·学习·postman
源码部署21 小时前
linux内核驱动开发视频课程
linux
一只小风华~1 小时前
命名视图学习笔记
前端·javascript·vue.js·笔记·学习
无敌最俊朗@1 小时前
Linux 进程创建与控制详解
linux·运维·服务器
(●—●)橘子……2 小时前
记力扣2271.毯子覆盖的最多白色砖块数 练习理解
数据结构·笔记·python·学习·算法·leetcode
张红尘2 小时前
龙蜥OS8.10配置repo源使用RPM安装Redis8.2
linux·redis·操作系统