首先注意文件描述符、三个数字0,1,2和文件指针的关系。
运行任何程序之前,都会首先打开三个文件:一个用于输入,一个用于输出,一个用于错误输出,这三个文件打开后形成的文件结构分别用文件指针stdin,stdout,stderr进行指向。这样会形成三个文件描述符0,1,2。具体哪个是0,哪个是1,哪个是2,那要根据打开顺序。一般是按照“标准输入-标准输出-标准错误”这个顺序来打开的,所以我们常说标准输入就是文件描述符0,输出是1,错误是2,为了增强可移植性,linux的unistd.h中对这三个描述符进行了宏定义,所以有STDIN_FILENO - 0, STDOUT_FILENO - 1, STDERR_FILENO - 2。
stdio.h中有指针定义:
141 /* Standard streams. */
142 extern struct _IO_FILE *stdin; /* Standard input stream. */
143 extern struct _IO_FILE *stdout; /* Standard output stream. */
144 extern struct _IO_FILE *stderr; /* Standard error output stream. */
145 #ifdef __STDC__
146 /* C89/C99 say they're macros. Make them happy. */
147 #define stdin stdin
148 #define stdout stdout
149 #define stderr stderr
150 #endif
unistd.h中有如下宏定义:
180 /* Standard file descriptors. */
181 #define STDIN_FILENO 0 /* Standard input. */
182 #define STDOUT_FILENO 1 /* Standard output. */
183 #define STDERR_FILENO 2 /* Standard error output. */
重定向最常用的两个:“>”,“<”,分别为输出重定向和输入重定向。
进阶一步:追加的输出重定向:“>>”。
思考上述重定向工作:输出重定向就是以只写方式打开文件,将标准输出stdout(文件描述符1)写入该文件,注意,标准错误信息stderror(2)不会写入该文件。
输入重定向则是只读方式打开并读取文件到标准输入stdin(0)
分享到:
相关推荐
在SpringMVC框架中,视图解析和重定向视图是关键组成部分,它们负责将处理结果展示给用户。此外,语言国际化的支持使得应用程序能够适应全球不同地区的用户需求。接下来,我们将深入探讨这三个主题。 首先,...
Linux系统重定向及管道符(作者:千锋教育-磊哥)
同时,还介绍了管道(pipe)和重定向(redirect)等高级技巧,使用户能更高效地利用命令行。 网络配置和远程访问是Linux管理员的必备技能。笔记中涵盖了网络接口设置、DNS解析、路由规则、SSH远程登录等内容,让...
【linux学习笔记-16】shell管道重定向程序的实现.doc 【linux学习笔记-1】使用GDB调试简单的用户程序.doc 【linux学习笔记-2】父子进程共享文件描述符.doc 【linux学习笔记-3】文件操作(stat,chmod,umask).doc ...
【linux学习笔记-6】文件IO操作--读写、重定向等 【linux学习笔记-7】用户标识UID与有效用户标识EUID 【linux学习笔记-8】Linux进程相关系统调用(1) 【linux学习笔记-9】Linux进程相关系统调用(2) 【linux学习...
用于重定向的T-Pose版UE4 Mannequin,使用方法见: 《虚幻引擎图文笔记:重定向小技巧 之 使用T-Pose Mannequin》 https://orzgame.blog.csdn.net/article/details/111466662
它将涵盖基本的命令,如ls、cd、mkdir、rm等,以及更复杂的操作,如管道(pipe)、重定向(redirection)和grep命令。此外,还会涉及文件系统结构,如/etc、/usr、/home等目录的作用。 笔记还将介绍shell脚本编程,...
同时,也会涉及管道符(|)、重定向(>、<)和通配符(*、?)的应用。 此外,笔记中还可能涵盖了进程管理,如ps(查看进程状态)、kill(发送信号终止进程)、nohup(让命令在后台运行)等命令。网络配置和管理也是...
Unix note.txt**:这部分内容可能包括Unix操作系统的基本概念,如命令行界面、文件系统管理、权限设置、进程控制、管道和重定向等。Unix是开发者常用的操作系统,理解其工作原理和操作命令对于任何IT专业人士来说都...
8. **请求转发和重定向**:两种不同的URL导航方式,笔记会区分它们的区别并给出示例。 9. **文件上传和下载**:在Web应用中,处理用户上传的文件以及提供文件下载功能是常见的需求。笔记可能会讲解如何使用Servlet...
在UNIX部分,笔记详细介绍了UNIX系统的基本操作,包括文件和目录管理、进程控制、权限设置、管道与重定向等常用命令,帮助读者熟练掌握这个强大而稳定的多用户操作系统。 Oracle数据库章节提供了全面的数据库理论和...
以下是对这份"javaweb笔记"的详细解析: 一、Servlet技术 Servlet是Java Web的核心部分,它是Java语言编写的服务端应用程序,用于扩展Web服务器的功能。Servlet通过HttpServlet类处理HTTP请求,可以接收和响应来自...
Qt+Cutelyst学习笔记(二十二)win10+Qt5.15.2 添加一个简单的删除功能(增加重定向) 示例源码 https://blog.csdn.net/aggs1990/article/details/123972298 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下
这部分笔记可能会包括文件管理、进程控制、权限设置、管道与重定向、正则表达式等内容。通过学习Unix,开发者可以更高效地进行开发和调试工作。 2. **SQL note**: SQL(结构化查询语言)是用于管理关系型数据库的...
例如,利用微信小程序进行混合式教学(SPOC混合教学模式)可重定向高校教育模式的创新和改革。在这种教学模式下,教师可以鼓励学生自主学习,并充分利用计算机、网络和移动通信设备随时随地地学习。教师可以在线监督...
韩顺平老师的Servlet笔记是对这一技术的深入讲解,旨在帮助学习者掌握Servlet的使用和概念。以下是对Servlet技术的详细说明: 1. **Servlet简介**:Servlet是Java Servlet API的实现,它提供了一种标准的方式来扩展...
JSP笔记可能讲解了JSP基本语法、EL(Expression Language)、JSTL(JSP Standard Tag Library)、以及Servlet生命周期和转发与重定向等概念。 Servlet是Java Web开发中的一种服务器端组件,用于扩展服务器的功能。...
基础语法部分涵盖了表达式值的获取、print函数的使用,包括格式化输出以及重定向输出到日志文件的方法。在变量类型方面,介绍了数字、字符串、列表、元组和字典等数据类型的定义和使用。Python是一种弱类型语言,这...