重定向-缓冲区

news2024/11/23 3:29:22

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,…) 应该从键盘读入,现在从文件里面读入
在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法 | 哈希表 No.1】leetcode 217. 存在重复元素

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

网站如何保护自身安全

随着网络威胁的不断升级,保护网站免受攻击变得尤为重要。网站被攻击不仅可能导致数据泄露和服务中断,还可能损害声誉和客户信任。本文将从时代因素、人为因素和环境因素的角度,探讨如何解决网站被攻击的问题,提供一些简单而实用的…

关于docker网络实践中遇到的问题

1.禁用docker自动修改iptables规则 查看docker.service文件/usr/lib/systemd/system/docker.service 默认在宿主机部署容器,映射了端口的话,docker能自己修改iptables规则,把这些端口暴露到公网。 如果要求这些端口不能暴露到公网&#xf…

启用NTP服务解决Linux系统时间与北京时间不同步问题

一、背景 1、服务器的Linux版本为Linux version 4.18.0-348.7.1.el8_5.x86_64 (mockbuildkbuilder.bsys.centos.org) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC)) #1 SMP Wed Dec 22 13:25:12 UTC 2021 2、NTP即Network Time Protocol(网络时间协议&am…

路由器基础(七):NAT原理与配置

一、NAT 配置 华为路由器配置NAT 的方式有很多种,考试中可能考到的基本配置方 式主要有EasyIP和通过NAT地址池的方式。图22-7-1是一个典型的通过EasyIP进行NAT的示意图,其中Router出接口GE0/0/1的IP地址为200.100.1.2/24,接口E0/0/1的IP地址为192.168.0.…

VR博物馆:让博物馆传播转化为品牌影响力

随着VR技术的不断进步,VR全景技术已经成为了文化展示和传播的一项重要工具,相较于传统视频、图文等展现方式,VR全景体验更加直观、便捷,其中蕴涵的信息量也更加丰富,这也为公众了解博物馆和历史文化带来了更为深刻的体…

通达信高级操作:市场雷达的配置使用

我们很多时候会被“条件预警”和“市场雷达” 这两个小窗口搞得晕头转向,那么简单说一下这2个小窗口的区别。 在通达信软件的右下角,我们可以看到一排图标,如下图所示,1这个小雷达图标就是 市场雷达,2这个三角图标是条…

家用洗地机什么牌子最好?家用洗地机排行榜

对于现在的年轻人来说,打扫家里的卫生一直是非常头疼的问题,上班一天已经很累了,回家还需要花费很长时间吸地、拖地真的很闹心。特别是对于有小孩子的家庭,地面弄上一些油污、饭菜简直就是家常便饭,每次打扫起来非常费…

【资源共享】分享3个免费ChatGPT国内AI软件,请及时收藏!

一、chagtp介绍(可直接跳转文章第二部分) OpenAI 的 ChatGPT最近太火了!很多小伙伴应该都听说过,其不仅在自然语言处理领域取得了巨大的成就,并且被广泛用于各种应用领域: 精准的自然语言处理能力&#xff…

安装Visio后Office三件套打开后出错【亲测可用】

当安装好visio后,可能打开word, PPT, excel后出现格式错误甚至无法打开,或者卡退等离谱错误。此时,无需卸载重装,只需要使用电脑Office的自动修复功能即可,会自动帮助你重装三件套【加上visio是四件套了】 1. 打开设置…

工业级的电表对精度有哪些要求?

工业级电表在设计和技术上有着严格的精度要求,以此来保证生产过程的能耗监控和成本控制。接下来,就由小编来为大家介绍下工业级的电表对精度的要求,一起来看下吧! 一、工业级电表精度等级的划分 工业级电表的精度等级主要分为以下…

保姆级教程来了,AI绘画提示词原理揭秘

为了让你快速上手从 0 到 1 的绘图流程,在这篇文章中,我们将重点讲解 Prompt 提示词。 1、解析提示词的概念 在深入讲解之前,我们首先来了解一些基本概念,以便更好地学习和理解。 提示词,也就是 Prompt,…

Redis ----使用Java代码操作redis(2)

⭐⭐ Redis专栏:Redis专栏 ⭐⭐ 个人主页:个人主页 目录 一.Java连接redis 二.Java操作redis常见数据类型存储 2.1 String类型的操作 2.2 hash 2.3 集合 list 三.redis的运用场景 一.Java连接redis 第一步:导入依赖…

【Redis】使用java代码操作Redis,以及在实际应用的场景

一,Java代码操作Redis 1.1在 Java 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java 如下图:关于如何使用window安装Redis,我已在上一篇博客中详细介绍了&#x…

Quantile Loss

文章目录 Quantile Loss示例 定量qₐ是一个值,它将一组给定的数字进行划分,其中 α * 100%的数字小于该值,(1-α) * 100%的数字大于该值。 统计中经常使用 α 0.25、α 0.5 和 α 0.75 的四分位数 qₐ,称为四分位数。这些四分位…

使用Postman工具做接口测试 —— 环境变量与请求参数格式!

引言 在上一篇笔记我们主要介绍了接口测试的基础知识与基本功能,本章主要介绍如何使用postman做接口测试。 配置环境变量和全局变量 环境变量和全局变量 环境管理中还可以点击“Global”添加全局变量,环境变量只有当选择了该环境时才生效,…

Stable Diffusion WebUI扩展sd-webui-controlnet安装教程

话不多说,上链接: https://github.com/Mikubill/sd-webui-controlnethttps://github.com/Mikubill/sd-webui-controlnet同样,直接安装到extensions文件中。 什么conda还是python安装也不多说了,前面很多讲了如何安装,这里就不当赘婿了。 安装好后,我们最好手动安装模型…

为什么树莓派安装Ubuntu的时候无法通过有线(网线)连网

这个东西从软件角度有很多解释,但是我这里遇到的情况是: 因为一个标注2A但是实际电流虚标的充电头浪费了我2天的时间。 也即是说:如果你的树莓派无法通过网线联网,很有可能是因为供电不足。因为一个新的树莓派一般不会有故障&am…

纽扣电池上架TEMU美国站合规认证标准ANSI C18.3M认证

近日,Temu连发多条卖家弹窗内容均为商品质量事故违规处理通告。其中一条为卖家销售的车载吸尘器发生烧毁、冒烟等情况,产生用户人伤、财损等舆情。经查实是商家偷换关键部件锂电池,导致商品质量下降造成事故。TEMU对于问题车载吸尘器处理结果…

OpenShift - 利用容器的特权配置实现对OpenShift攻击

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在 OpenShift 4.13 的环境中验证 本文是《容器安全 - 利用容器的特权配置实现对Kubernetes攻击》的后续篇,来介绍 在 OpenShift 环境中的容器特权配置和攻击过程和 Kubernetes 环境的差异。 文…