当前位置: 首页 > 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(外设结构体)"

二、缓冲区

http://www.lryc.cn/news/451213.html

相关文章:

  • 828华为云征文|WordPress部署
  • 华为开源自研AI框架昇思MindSpore应用案例:计算高效的卷积模型ShuffleNet
  • 《C++ 小游戏:简易飞机大战游戏的实现》
  • SpringCloud源码:服务端分析(二)- EurekaServer分析
  • 插槽slot在vue中的使用
  • 针对考研的C语言学习(定制化快速掌握重点2)
  • [C++][IO流][流输入输出][截断理解]详细讲解
  • 阿里云部署1Panel(失败版)
  • 九、设备的分配与回收
  • 单片机的原理及应用
  • Python数据分析篇--NumPy--入门
  • OJ在线评测系统 后端 判题机模块预开发 架构分析 使用工厂模式搭建
  • linux 目录文件夹操作
  • (Linux驱动学习 - 4).Linux 下 DHT11 温湿度传感器驱动编写
  • 前端登录页面验证码
  • 【鸿蒙】HarmonyOS NEXT应用开发快速入门教程之布局篇(上)
  • 使用 Nginx 和 Gunicorn 部署 Flask 项目详细教程
  • linux中bashrc和profile环境变量在Shell编程变量的传递作用
  • 数据结构-4.2.串的定义和基本操作
  • fastzdp_redis第一次开发, 2024年9月26日, Python操作Redis零基础快速入门
  • 文件名:\\?\C:\Windows\system32\inetsrv\config\applicationHost.config错误:无法写入配置文件
  • Optiver股票大赛Top2开源!
  • Maven 实现依赖统一管理
  • 【最新】微信小程序连接onenet——stm32+esp8266+onenet实现查看温湿度,控制单片机
  • 差分(续前缀和)(含一维二维)
  • 【STM32-HAL库】自发电型风速传感器(使用STM32F407ZGT6)(附带工程下载链接)
  • 【计算机毕业设计】springboot就业信息管理系统
  • 实用工具推荐---- PDF 转换
  • 安宝特案例 | 某知名日系汽车制造厂,借助AR实现智慧化转型
  • RabbitMQ基本原理