文章目录

  • (1)总结
  • (2)使用系统调用dup2完成重定向

(1)总结

从讲文件描述符开始,我们就引入了重定向的概念。读到这里,大家应该能够明白,重定向产生的原因就是文件描述符在分配时趋向于数值小的,而在用户层,stdout这个文件指针指向的文件已经封装了,并且它的fd就是1,这是不能修改的,所以我们一上来关闭了1号文件,然后新创建了一个文件它的文件描述符就会分配为被1,同时此时写入时,像printf这类函数默认使用的输出流就是stdout,但是我们知道它的1指向的已经是我们新生成的那个文件了,所以这就重定向的本质

(2)使用系统调用dup2完成重定向

前面的那种关闭1号文件而完成重定向的操作显得有些不合理,因为标准输入,标准输出和标准错误作为默认的文件,不应该被关闭
所以我们可以使用dup2完成重定向。dup2的函数原型如下

int dup2(

Linux系统编程22:基础IO之掌握重定向的本质和使用dup2完成重定向相关推荐

  1. 【Linux系统编程:基础IO 下】dup2 实现输出重定向、输入重定向、追加重定向 | 理解磁盘 | 理解文件系统中inode的概念 | 软硬链接

    写在前面 这里先接着<基础IO 上>中的缓冲区的内容作些补充,这里主要补充 dup2 接口. ✔ 测试用例一: #include<stdio.h> #include<sy ...

  2. Linux系统编程之文件IO

    Linux系统编程之文件IO 文件IO第一天 一.标准IO基本概念 1.1c语言函数 (c库函数) 调用实现某一个功能,(API) 1.2系统调用:内核中的程序接口,应用程序和硬件设备之间的中间层 1 ...

  3. Linux系统编程——进程基础知识

    Linux系统编程--进程基础知识 1.程序和进程 程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(cpu.内存.打开的文件.设备.锁-) 进程,是一个抽象的概念,与操作系统原理联系紧密.进程 ...

  4. Linux系统编程【文件IO、进程、进程间通信、信号、线程、互斥】

    linux系统编程 个人通过学习,手打了一份48000字的Linux系统编程的笔记,包含了[文件IO.进程.进程间通信.信号.多线程.互斥]等知识点,并给出了大量的代码案例对每个重要的知识点进行了代码 ...

  5. linux系统io编程,Linux系统编程(1) —— 文件IO

    本文主要对Linux系统中文件I/O的基本操作进行说明. 在Linux系统编程中,对文件进行处理的流程,通常是: 打开文件 读写文件 关闭文件 Linux内核对每一个进程维护一个打开的文件列表, 该文 ...

  6. linux编程基础_第1篇 Linux系统编程 -多线程基础

    进程 在理解线程之前,首先需要了解UNIX/Linux进程. 进程是由操作系统创建的,需要相当数量的"开销". 进程包含有关程序资源和程序执行状态的信息,包括:它是一个在随机访问内 ...

  7. 【Linux系统编程】文件IO操作

    文件描述符 在 Linux 的世界里,一切设备皆文件.我们可以系统调用中 I/O 的函数(I:input,输入:O:output,输出),对文件进行相应的操作( open().close().writ ...

  8. 【linux系统编程】基础开发工具:vi/vim

    Linux文本编辑器 – vim 正文开始@Assassin 目录: Linux文本编辑器 -- vim 1. vim基本介绍: 2. vim下各模式的切换: 3. vim命令模式: 4. vim底行 ...

  9. linux系统简单操作代码,Linux系统编程:简单文件IO操作(示例代码)

    使用Linux的文件API,经常看见一个东西,叫做文件描述符. 什么是文件描述符? (1)文件描述符其实实质是一个数字,这个数字在一个进程中表示一个特定的含义,当我们open打开一个文件时,操作系统在 ...

最新文章

  1. MIT研发无人机仓库管理系统,或将帮沃尔玛省下几十亿美元
  2. 使用ADO操作数据库时一个好用的VARIANT类!
  3. 金蝶结账时显示系统错误h80004005_金蝶KIS云专业版(仓存模块)常见问题解决汇总...
  4. ITFriend创业败局(四):菜鸟CEO的自我修养
  5. java 继承示例_Java中的继承类型以及示例
  6. leetcode 1269. 停在原地的方案数(dp)
  7. 10亿 !清华大学又获巨额捐赠
  8. Window10 安装虚拟机搭建LInux系统
  9. 毛概社会实践报告3000字
  10. PCB设计常见的有那些问题
  11. Unity模拟鼠标点击
  12. ipad坏点测试软件,购买需谨慎 漏光坏点都要看_平板电脑评测-中关村在线
  13. 百度api实现实时摄像头人脸识别
  14. c语言判断不是大写字母,c语言isupper()函数如何判断字符是否为大写英文字母实例...
  15. 5G承载网络架构和技术方案白皮书(部分摘录-1)
  16. 成功解决data too long for column 'name' at row 1
  17. android10新功能,三星A80升级安卓10 更新One UI 2.0内容新功能介绍
  18. LDAP服务器不支持chap认证,终端使用EIA进行PEAP-GTC认证失败的原因分析
  19. mysql的gis_MySQL的GIS功能
  20. 海南省教育厅关于普通高中综合实践活动课程实施的指导意见

热门文章

  1. 电力系统matlab实验报告,基于matlab语言计算电力系统暂态稳定仿真程序实验报告.docx...
  2. 我被跨系统的换行符折磨疯了~~~
  3. 新的吉尼斯世界纪录 – 最快人类基因组测序,用时5 小时 2 分钟!
  4. 师弟新作!Nature子刊 | 重大进展!何川团队首次系统地获得了19个组织的5hmC图谱
  5. 刷新认知!基因表达,男女有别|Science、Cell等发布15篇人类遗传调控新成果
  6. MacBook Pro如何删除多余的专注模式
  7. javafx应用启动自动执行函数_JavaFx:Application start方法中的异常
  8. linux两台服务器传输,Linux两台服务器之间高速数据传输命令:scp应用详解
  9. nginx location 斜杠_【一点资讯】斜杠青年双·11买什么本最划算?光影精灵6让你做“多面娇娃” www.yidianzixun.com...
  10. 河南理工大学计算机课d,河南理工大學计算机基础课后习题答案.doc