重定向-缓冲区

1.重定向
文件描述符对应的分配规则是什么?
尝试用这个代码 关闭0,1,2文件描述符,看看有什么现象?关闭哪个,你打开的文件fd应该就是哪个
在这里插入图片描述
结论:
从0下标开始,寻找最小的没有没使用的数组位置,它的下标就是新文件的文件描述符

如果先关闭1,再打开log.txt,那么根据文件描述符分配规则,新打开的文件被分配到了下标1
此时write不管就往1号下标里面写入,则此时现象就是本来应该向显示器文件写出,但现在是往文件log里面写
在这里插入图片描述
这就是重定向的原理,但是这样做太挫了
我们可以利用系统调用dup2来复制文件描述符表数组中下标对应的内容
在这里插入图片描述
dup2的接口形参设计的不好,和我们认为的新旧正好相反,但是有了这句 newfd be the copy of oldfd,new是old的拷贝,则得出最后只剩一个oldfd
按照重定向结果,最后一定只剩fd这个新打开的地址,则oldfd 传 fd , newfd 传 1,这样也完成了重定向 >。
代码:
00
追加重定向 >>
在这里插入图片描述
输入重定向:
系统调用read
在这里插入图片描述

在这里插入图片描述
本来read(0,…) 应该从键盘读入,现在从文件里面读入
在这里插入图片描述

重定向的本质:
对进程的指定文件描述符表进行内核级别的对文件描述符表中的地址进行拷贝的问题
这就叫输入输出重定向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/115458.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于php+thinkphp+vue的学生公寓管理系统-宿舍管理-寝室管理系统

运行环境 开发语言:PHP 数据库:MYSQL数据库 应用服务:apache服务器 使用框架:ThinkPHPvue 开发工具:VScode/Dreamweaver/PhpStorm等均可 项目简介 本系统结合计算机系统的结构、概念、模型、原理、方法,在计算机各种优势的情况下,采用PHP语…

自动曝光算法(第二讲)

序言 第一章说了,自动曝光算法的目的:已知当前raw图亮度、当前曝光时间、当前增益和目标亮度,当环境光发生变化的时候,是通过控制增益、曝光时间和光圈使raw图的亮度,保持在目标亮度附近。本章想讲一下目标亮度的相关…

美观且可以很方便自定义的MATLAB绘图颜色

函数介绍 主函数是draw_test,用于测试函数。 draw_h是函数,用于给Matlab提供美观且可以很方便自定义的绘图颜色。 draw_h函数介绍 这是一个带输入输出的函数,输入1/2/3,输出下面三种颜色库的配色,每种库均有五种颜色…

Find My手机保护壳|苹果Find My与手机保护壳结合,智能防丢,全球定位

随着科技水平的快速发展,科技美容这一行业做为新型产业新生而出。时尚IT品牌随着市场的多元化发展。针对手机品牌和功能的增加而呈多样化,将手机保护壳按质地分有PC壳,皮革 ,硅胶,布料,硬塑,皮套…

手机上有哪些支持设置农历日期提醒的工具

很多人的生日都是按照农历日期来安排的,而农历日期和公历日期相错的日子很多,在手机上如果想要记录农历生日提醒,需要借助一些支持设定农历日期的工具来实现。 手机上有哪些支持设置农历日期提醒的工具呢?敬业签是一款可以在手机…

C++:类和对象(中)

1.类的6个默认成员函数: 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现&#xff…

全志H6-LicheePi调试记录

LPDDR3:K4E6E304ED-EGCG和K4E6E304ED-EGCF 最高速率不一样,CG是2133MHz,CF是1866MHz

VMware产品收集日志方法汇总

概述 vCenter日志是一个用于存储与vSphere环境相关的各种活动、事件和警告的日志系统。通过收集并分析vCenter日志,管理员可以获得有关其虚拟化环境的重要洞察和故障排除信息。 vCenter日志由多个组件组成,包括vCenter Server、ESXi主机和其他vSphere组…

Apache ECharts简介和相关操作

文章目录 一、Apache ECharts介绍二、快速入门1.下载echarts.js文件2.新建index.html文件3.准备一个DOM容器用于显示图表4.完整代码展示5.相关配置 三、演示效果四、总结 一、Apache ECharts介绍 Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观…

C#文件操作从入门到精通(3)——Txt文件读写操作

前言: 我们在开发c#程序时,经常需要对txt文本文件进行操作,有时候是读取txt文本中的内容,有时候是将程序运行过程中的一些数据写入到txt文本中做记录,为了帮助大家学习txt文本的操作,我特意开发了一个“txt文件操作学习”winform小软件,该软件调用了我封装的txt文件操作…

项目管理之如何估算项目工作时间

在项目管理中,项目工作时间的估算是一个关键环节,它直接影响到项目的进度、预算和资源分配。本文将介绍几种常用的时间估算技术和时间估算的十步法,帮助你更好地估算项目工作时间。 常用时间估算技术 类比估算 参照以往同类同规模项目时间数…

Vue3 如何在<script setup>里设置组件name属性

Vue3 如何在<script setup>里设置组件name属性 文章目录 Vue3 如何在\<script setup>里设置组件name属性一、Vue组件中 name 的用处二、难看但实用的方法三、使用第三方插件支持安装插件插件基本配置插件基本使用 四、Vue官方解决方法4.1 Vue3.3版本之前安装插件插…

高防IP的原理

高防IP&#xff0c;把域名解析到高防IP上(web事务只要把域名指向高防IP 即可。非web事务&#xff0c;把事务IP换成高防IP即可)一起在高防IP上设置转发规矩;所有公网流量都会走高防IP&#xff0c;通过端口协议转发的方法将用户的拜访通过高防IP转发到源站IP&#xff0c;一起将歹…

IDEA集成Docker插件打包服务镜像与运行【附Docker命令汇总】

Docker官网 Docker官网&#xff1a;https://www.docker.com/ Docker Hub官网&#xff1a;http://hub.docker.com/ 什么是Docker Docker 是一个开源的容器引擎&#xff0c;可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者和系统管理员在笔记本上编…

lua-web-utils库

lua--导入所需的库local web_utilsrequire("lua-web-utils")--定义要下载的URLlocal url"https://jshk.com.cn/"--定义代理服务器的主机名和端口号local proxy_port8000--使用web_utils的download函数下载URLlocal file_pathweb_utils.download(url,proxy_…

网络安全好就业吗?

现目前而言&#xff0c;网络安全工程师仍是比较紧缺的。但网络安全行业前景好并≠网络安全的入学门槛低&#xff0c;也≠网络安全行业适合所有转岗的人。行业紧缺的一直是技术过硬&#xff0c;德才兼备的优秀人才。 一、网络安全适合哪些人&#xff1f; 首先&#xff0c;是对…

Jenkins自动化部署相关shell命令

1. 只后台启动&#xff1a; nohup java -jar jar/demo*.jar & 2. 增加命令启动日志输出位置&#xff0c;防止超时处理配置&#xff1a; nohup java -jar /soft/gitee-demo-0.0.1-SNAPSHOT.jar >mylog.log 2>&1 & 简化写法&#xff1a; nohup java -jar /s…

Unity地面交互效果——3、曲面细分基础知识

大家好&#xff0c;我是阿赵。   之前介绍了使用动态法线贴图混合的方式模拟轨迹的凹凸感&#xff0c;这次来讲一下更真实的凹凸感制作。不过在说这个内容之前&#xff0c;这一篇先要介绍一下曲面细分着色器(Tessellation Shader)的用法。 一、为什么要做曲面细分 之前通过法…

【APUE】并发 — 线程

目录 一、线程的概念 1.1 定义 1.2 POSIX 线程标准 1.3 线程标识 1.4 相关函数 1.5 一些补充 二、线程的创建、终止与取消 2.1 创建 2.2 终止 2.2.1 return 2.2.2 pthread_exit 2.3 取消 2.3.1 函数介绍 2.3.2 禁止线程被取消 2.3.3 线程取消方式 2.4 清…

开发一款直播弹幕游戏需要多少钱?

开发一款直播弹幕游戏需要多少钱&#xff1f;有好多朋友在咨询过弹幕游戏的开发价格后&#xff0c;都会比较吃惊&#xff0c;一款体量这么小的游戏为什么动辄就要几万块甚至十几万&#xff1f; 我来给你们说分析一下原因&#xff0c;这种游戏如果脱离开直播间&#xff0c;可以…