当前位置: 首页 > news >正文

Linux 学习笔记(十六)—— 重定向与缓冲区

一、文件重定向

  • 矩阵的下标,也就是文件描述符的分配规则,是从0开始空的最小的文件描述符分配给进程新打开的文件;
  • 文件输出重定向的原理是,关掉1(输出),然后打开文件,这个新打开的文件的文件描述符就会是“1”,这样顺理成章,原本应该输出到屏幕的内容就被输入到文件中了;
  • 文件输入重定向“<”的原理类似,就是关掉0(键盘,输入),然后将文件的file*放入到文件描述符0的位置,这样顺理成章,原本应该从键盘中读的内容就从文件中读取了;
  • 操作系统有系统调用可以直接实现上述原理,dup2();

#include <unistd.h>

int dup2(int oldfd, int newfd);        ——  duplicate a file descriptor, makes newfd to be the copy of oldfd, closing newfd first if necessary;

  • 重定向的工作实际上是在程序替换之前进行了文件的打开和文件描述符中内容的替换;文件打开涉及的"task_struct(PCB)"中"struct files_struct *files","struct files_struc(包含文件指针数据的结构体)t" 都不会程序替换改变;程序替换只会改变"虚拟地址空间(mm_struct)","页表"和"内存中的代码和数据";
  • stdout和stderr在本质上没有任何区别,但是分成两种输出,可以有效区分正常输出和报错,方便筛选信息;错误输出也可以被重定向,之前写的“ls > log.txt”是一种缺省写法,全的写法为“./mycode 1>log.txt 2>err.txt”这样就把stdout和stderr分别重定向到不同的文件中了;
  • 如果不想区分stdout和stderr可以使用“./mycode.c 1>all.txt 2>&1”;
  • 一切皆文件(虚拟文件系统,VFS,由所有的struct files组成)"task_struct(PCB)包含struct files_struct *files"——>"struct files_struct(包含文件指针数据的结构体)"——>"struct file(包含文件在内存中的存储地址的指针)包含const struct file_operations *"——>"struct file_operations"——>"struct device(外设结构体)"

二、缓冲区

相关文章:

Linux 学习笔记(十六)—— 重定向与缓冲区

一、文件重定向 矩阵的下标&#xff0c;也就是文件描述符的分配规则&#xff0c;是从0开始空的最小的文件描述符分配给进程新打开的文件&#xff1b;文件输出重定向的原理是&#xff0c;关掉1&#xff08;输出&#xff09;&#xff0c;然后打开文件&#xff0c;这个新打开的文…...

828华为云征文|WordPress部署

目录 前言 一、环境准备 二、远程连接 三、WordPress简介 四、WordPress安装 1. 基础环境安装 ​编辑 2. WordPress下载与解压 3. 创建站点 4. 数据库配置 总结 前言 WordPress 是一个非常流行的开源内容管理系统&#xff08;Content Management System, CMS&#xf…...

华为开源自研AI框架昇思MindSpore应用案例:计算高效的卷积模型ShuffleNet

如果你对MindSpore感兴趣&#xff0c;可以关注昇思MindSpore社区 ShuffleNet ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型&#xff0c;和MobileNet, SqueezeNet等一样主要应用在移动端&#xff0c;所以模型的设计目标就是利用有限的计算资源来达到…...

《C++ 小游戏:简易飞机大战游戏的实现》

文章目录 《C 游戏代码解析&#xff1a;简易飞机大战游戏的实现》一、游戏整体结构与功能概述二、各个类和函数的功能分析&#xff08;一&#xff09;BK类 - 背景类&#xff08;二&#xff09;hero_plane类 - 玩家飞机类&#xff08;三&#xff09;plane_bullet类 - 玩家飞机发…...

SpringCloud源码:服务端分析(二)- EurekaServer分析

背景 从昨日的两篇文章&#xff1a;SpringCloud源码&#xff1a;客户端分析&#xff08;一&#xff09;- SpringBootApplication注解类加载流程、SpringCloud源码&#xff1a;客户端分析&#xff08;二&#xff09;- 客户端源码分析。 我们理解了客户端的初始化&#xff0c;其实…...

插槽slot在vue中的使用

介绍 在 Vue.js 中&#xff0c;插槽&#xff08;slot&#xff09;是一种用于实现组件内容分发的功能。通过插槽&#xff0c;可以让父组件在使用子组件时自定义子组件内部的内容。插槽提供了一种灵活的方式来组合和复用组件。 项目中有很多地方需要调用一个组件&#xff0c;比…...

针对考研的C语言学习(定制化快速掌握重点2)

1.C语言中字符与字符串的比较方法 在C语言中&#xff0c;单字符可以用进行比较也可以用 > , < ,但是字符串却不能用直接比较&#xff0c;需要用strcmp函数。 strcmp 函数的原型定义在 <string.h> 头文件中&#xff0c;其定义如下&#xff1a; int strcmp(const …...

[C++][IO流][流输入输出][截断理解]详细讲解

目录 1.流输入输出说明1.<<执行顺序2.>>执行顺序 2.截断(trunc)理解 1.流输入输出说明 1.<<执行顺序 链式操作的顺序&#xff1a;当使用多个<<操作符进行链式插入时&#xff0c;执行顺序是从左到右的 每个<<操作都将数据插入到前一个流的输出中…...

阿里云部署1Panel(失败版)

官网脚本部署不成功 这个不怪1panel,这个是阿里Linux 拉不到docker的下载源,懒得思考 正常部署直接打开官网 https://1panel.cn/docs/installation/online_installation/ 但是我使用的阿里云os(Alibaba Cloud Linux 3.2104 LTS 64位) 我执行不管用啊装不上docker 很烦 curl -s…...

九、设备的分配与回收

1.设备分配时应考虑的因素 ①设备的固有属性 设备的固有属性可分为三种:独占设备、共享设备、虚拟设备。 独占设备 一个时段只能分配给一个进程(如打印机) 共享设备 可同时分配给多个进程使用(如磁盘)&#xff0c;各进程往往是宏观上同时共享使用设备而微观上交替使用。 …...

单片机的原理及应用

单片机的原理及应用 1. 单片机的基本原理 1.1. 组成部分 单片机主要由以下几个部分组成&#xff1a; 中央处理器&#xff08;CPU&#xff09;&#xff1a;执行指令并控制整个系统的操作。 存储器&#xff1a; 程序存储器&#xff08;Flash&#xff09;&#xff1a;存储用户…...

Python数据分析篇--NumPy--入门

我什么也没忘&#xff0c;但是有些事只适合收藏。不能说&#xff0c;也不能想&#xff0c;却又不能忘。 -- 史铁生 《我与地坛》 NumPy相关知识 1. NumPy&#xff0c;全称是 Numerical Python&#xff0c;它是目前 Python 数值计算中最重要的基础模块。 2. NumPy 是针对多…...

OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建

判题机模块预开发(架构师)(工厂模式) 判题机模块 是为了把代码交个代码沙箱去处理 得到结果返回 代码沙箱 梳理判题模块和代码沙箱的关系 判题模块&#xff1a;调用代码沙箱 把代码和输入交给代码沙箱去执行 代码沙箱&#xff1a;只负责接受代码和输入 返回编译的结果 不负…...

linux 目录文件夹操作

目录 查看文件夹大小&#xff1a; Linux统计文件个数 2.统计文件夹中文件个数ls -l ./|grep "^-"|wc -l 4.统计文件夹下文件个数&#xff0c;包括子文件ls -lR | grep "^-"| wc -l 统计文件个数 移动绝对目录&#xff1a; 移动相对目录 test.py报错…...

(Linux驱动学习 - 4).Linux 下 DHT11 温湿度传感器驱动编写

DHT11的通信协议是单总线协议&#xff0c;可以用之前学习的pinctl和gpio子系统完成某IO引脚上数据的读与写。 一.在设备树下添加dht11的设备结点 1.流程图 2.设备树代码 &#xff08;1&#xff09;.在设备树的 iomuxc结点下添加 pinctl_dht11 &#xff08;2&#xff09;.在根…...

前端登录页面验证码

首先&#xff0c;在el-form-item里有两个div&#xff0c;各占一半&#xff0c;左边填验证码&#xff0c;右边生成验证码 <el-form-item prop"code"><div style"display: flex " prop"code"><el-input placeholder"请输入验证…...

【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上)

系列文章目录 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;上&#xff09; 【鸿蒙】HarmonyOS NEXT开发快速入门教程之ArkTS语法装饰器&#xff08;下&#xff09; 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇&#xff08;上&#xff09; 文…...

使用 Nginx 和 Gunicorn 部署 Flask 项目详细教程

使用 Nginx 和 Gunicorn 部署 Flask 项目详细教程 在这篇文章中&#xff0c;我们将介绍如何使用 Nginx 和 Gunicorn 来部署一个 Flask 项目。这种部署方式非常适合在生产环境中使用&#xff0c;因为它能够提供更好的性能和更高的稳定性。 目录 Flask 项目简介环境准备Gunico…...

linux中bashrc和profile环境变量在Shell编程变量的传递作用

在 Linux 系统中&#xff0c;.bashrc文件和.profile文件都是用于配置用户环境的重要文件&#xff0c;它们之间有以下关联&#xff1a; 一、作用相似性 环境设置&#xff1a;两者都用于设置用户的环境变量和启动应用程序的配置。例如&#xff0c;它们可以定义路径变量&#xf…...

数据结构-4.2.串的定义和基本操作

一.串的定义&#xff1a; 1.单/双引号不是字符串里的内容&#xff0c;他只是一个边界符&#xff0c;用来表示字符串的头和尾&#xff1b; 2.空串也是字符串的子串&#xff0c;空串长度为0&#xff1b; 3.字符的编号是从1开始&#xff0c;不是0&#xff1b; 4.空格也是字符&a…...

关于岐金兰AI元人文构想与江畅《论道德真理》之关系的理论说明

关于岐金兰AI元人文构想与江畅《论道德真理》之关系的理论说明——致敬江畅教授&#xff0c;并申明独立研究的道路岐金兰2026年5月12日一、相遇&#xff1a;迟到的阅读&#xff0c;及时的对话2026年3月11日&#xff0c;我在一个偶然的学术检索中读到了江畅教授的《论道德真理》…...

2026年邵阳高复机构大揭秘,哪家才是学子的理想之选?

高考失利后&#xff0c;复读成为许多学子重新追逐梦想的途径。在邵阳&#xff0c;众多高复机构如繁星般闪耀&#xff0c;而湘郡铭志学校高复部无疑是其中一颗璀璨的明星。接下来&#xff0c;让我们深入了解湘郡铭志学校高复部&#xff0c;同时对比其他知名高复机构&#xff0c;…...

共筑智能传播信息安全域,新华社国家重点实验室与北京时光不语达成合作

新华社媒体融合生产技术与系统国家重点实验室与北京时光不语科技有限公司&#xff08;TIMUS.AI&#xff09;正式建立研发生态伙伴关系&#xff0c;并联合推出面向智能传播环境的“新华智信感知平台”&#xff0c;深化智能传播领域科研创新与成果转化&#xff0c;共同构建负责任…...

自用便捷图床 API 分享|支持 Token 鉴权、图片上传、删除,稳定可用

在日常写博客、做笔记、开发项目时&#xff0c;经常需要上传图片获取在线链接&#xff0c;支持获取上传凭证、图片上传、图片删除全套接口&#xff0c;开箱即用&#xff0c;下面完整分享接口文档与调用示例。 图床主页&#xff1a;https://imgbeduser.hlytools.top/ 一、整体…...

基于 JiuwenClaw AgentTeam 集群模式的年会策划实战:从源码部署到多智能体协作落地

目录 摘要 一、引言&#xff1a;JiuwenClaw AgentTeam 让复杂任务迎刃而解 1.1 为什么选择年会策划作为 AgentTeam 实战场景 1.2 本文实战目标 二、JiuwenClaw 概述 2.1 JiuwenClaw 的核心特性 2.2 JiuwenClaw 的系统架构 2.3 JiuwenClaw 的三种运行模式 2.3.1 规划模…...

如何解决QQ音乐下载的歌曲在其他设备上无法播放的问题

如何解决QQ音乐下载的歌曲在其他设备上无法播放的问题 【免费下载链接】qmcflac2mp3 直接将qmcflac文件转换成mp3文件&#xff0c;突破QQ音乐的格式限制 项目地址: https://gitcode.com/gh_mirrors/qm/qmcflac2mp3 你是否曾经在QQ音乐下载了喜欢的歌曲&#xff0c;却发现…...

终极指南:EdgeDB内置迁移系统实现零停机数据库演进的完整方案

终极指南&#xff1a;EdgeDB内置迁移系统实现零停机数据库演进的完整方案 【免费下载链接】edgedb Gel supercharges Postgres with a modern data model, graph queries, Auth & AI solutions, and much more. 项目地址: https://gitcode.com/gh_mirrors/ed/edgedb …...

LyricsX:一站式macOS歌词同步解决方案,让音乐体验更智能

LyricsX&#xff1a;一站式macOS歌词同步解决方案&#xff0c;让音乐体验更智能 【免费下载链接】LyricsX &#x1f3b6; Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX LyricsX是macOS平台上功能最全面的歌词同步工具&#xff…...

免费在线PPT制作工具PPTist:浏览器中的专业演示文稿创作平台

免费在线PPT制作工具PPTist&#xff1a;浏览器中的专业演示文稿创作平台 【免费下载链接】PPTist PowerPoint-ist&#xff08;/pauəpɔintist/&#xff09;, An online presentation application that replicates most of the commonly used features of MS PowerPoint, allow…...

多渠道订单数据处理自动化,落地步骤与ERP打通方案 | 2026企业级智能体实战手册

在2026年的数字化转型深水区&#xff0c;企业面临的不再是“是否要自动化”的问题&#xff0c; 而是如何在高并发、多维度的全渠道业务压力下&#xff0c; 实现订单流、资金流与信息流的绝对同步。 传统的OMS&#xff08;订单管理系统&#xff09;与ERP&#xff08;企业资源计划…...