什么是流(stream)?
流是程序输入或输出的一个连续的字节序列,设备(例如鼠标、键盘、磁盘、屏幕、调制解调器和打印机)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现----不一定是物理磁盘文件,还可以是对应于某个输入/输出源的逻辑文件。C语言提供了5种标准的流,你的程序在任何时候都可以使用它们,并且不必打开或关闭它们。以下列出了这5种标准的流。
------------------------------------------------
名称 描 述 例 子
------------------------------------------------
stdin 标准输入 键盘
stdout 标准输出 屏幕
stderr 标准错误 屏幕
stdprn 标准打印机 LPT1端口
stdaux 标准串行设备 COM1端口
------------------------------------------------
需要注意的是,stdprn和stdaux并不总是预先定义好的,因为LPT1和COM1端口在某些操作系统中是没有意义的,而stdin,stdout和stderr总是预先定义好的。此外,stdin并不一定来自键盘,stdout也并不一定显示在屏幕上,它们都可以重定向到磁盘文件或其它设备上。
文本模式(textmode)和二进制模式(binarymode)有什么区别?
流可以分为两种类型:文本流和二进制流。文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“\n”,(如果以"文本"方式打开一个文件,那么在读字符的时候,系统会把所有的"\r\n"序列转成"\n",在写入时把"\n"转成"\r\n" archim 's opinion )。二进制流是非解释性的,一次处理一个字符,并且不转换字符。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。
分享到:
相关推荐
本文将深入探讨"CER"二进制文件、Base64编码以及X.509证书链的解析API和头文件,帮助读者理解这些概念及其在实际应用中的工作原理。 首先,CER文件是一种包含X.509数字证书的二进制格式。X.509标准由国际电信联盟...
在实际操作中,用户可能需要将包含十六进制数据的文本文件输入到这个exe程序中,然后程序会将其转换成相应的二进制文件。 总的来说,这个工具的使用场景可能包括但不限于:软件开发过程中调试二进制代码,数据通信...
例如,读取二进制文件时,`fs.readFile()`或`fs.readFileSync()`方法会返回一个Buffer对象。在发送和接收TCP或UDP数据时,`net`或`dgram`模块也会涉及到Buffer对象。 ### 安全性与性能 `Buffer.alloc(size)`方法...
ANSI标准规定了两种文件视图:文本视图和二进制视图。文本视图适用于文本文件,它允许程序在读取和写入时做一些转换,如处理不同操作系统中换行符的差异。例如,在Windows系统中,一个换行通常由回车符和换行符的...
为了确保软件的完整性和安全性,Microsoft提供了`signtool`工具,这是一个强大的签名和验证工具,用于对驱动程序、可执行文件和其他二进制文件进行数字签名。本文将深入探讨`signtool`工具以及如何在Windows 10环境...
二进制输入 多种输入 数据库输入(和输出) 输出格式 文本输出 二进制输出 多个输出 延迟输出 数据库输出 第8章 MapReduce的特性 计数器 内置计数器 用户定义的Java计数器 用户定义的...
8. **文件操作**:VFP支持多种文件类型,包括文本、图像和二进制文件。书中会讲解如何读写文件,以及如何处理文件I/O错误。 9. **网络和数据库连接**:VFP可以与其他数据库进行交互,如ODBC和ADO连接。这部分将解释...
3. **文本流处理**:Unix系统倾向于处理文本文件而非二进制文件,便于数据处理和脚本编写。 **二、Shell编程基础** Shell是Unix系统中的命令解释器,用户通过Shell与操作系统交互。常见的Shell有Bash(Bourne-...
它能够读取、处理、执行或翻译结构化文本或二进制文件。ANTLR 4 支持多种语言,包括 Java、C#、Python、JavaScript 和 Go,但在这里我们关注的是 C++ 实现。描述中提到,这个资源是基于 ANTLR 4 权威指南第四章的...
1. 文档型数据库:MongoDB将数据存储为一个文档,以BSON(类似JSON的二进制形式)格式来表示数据。文档结构为键值对,易于存储和读取各种类型的数据。 2. 动态模式:MongoDB支持动态模式,这意味着同一个集合中的...
此外,SQLite3支持存储“blob”类型,即二进制数据,通过示例程序“eatblob.c”,我们可以读取任意大小的二进制文件到内存,并将其存储在用户指定的字段中,这为处理图像、音频等非文本数据提供了便利。 #### 示例...
本章节不仅包含了读写文本数据、打印输出至文件中、使用其他分隔符或行终止符打印、读写字节数据、读写压缩文件等基础操作,也介绍了处理固定大小记录的文件迭代、内存映射的二进制文件和文件路径名操作等高级内容。...
Hadoop I/O支持多种数据格式,如文本文件、二进制文件等,并能够与Avro、Parquet等先进的数据序列化框架协同工作,提高了数据处理的效率和灵活性。 5. 大数据与分布式集群 大数据是指无法在一定时间范围内用常规...
6. **文件操作**:第八章可能会讨论C++中的文件输入输出操作,包括文件流的使用,文本和二进制文件的读写,以及文件错误处理。 7. **网络编程**:第九章和第十章可能涉及网络编程,讲解如何使用Winsock库进行TCP/IP...
5.二进制与文本模式:理解二进制文件与文本文件的区别。 三、网络编程进阶 网络编程是C语言在Linux下的一大应用领域,包括: 1. 套接字编程基础:理解套接字概念,创建和初始化套接字。 2. TCP/IP协议栈:了解IP、...
一旦连接建立,就可以在客户端和服务器之间发送任意结构化的数据,如文本、二进制数据,甚至文件。这在游戏开发、实时聊天应用、股票交易、在线协作工具等场景中尤其有用。 WebSocket 的“前世今生”可以追溯到2008...
- 字节流:处理二进制数据,如图像和音频文件,包括FilterInputStream和FilterOutputStream等装饰器类。 - 字符流:处理文本数据,基于Unicode编码,包括FilterReader和FilterWriter等装饰器类。 4. **缓冲流**:...
第七章讨论了MapReduce类型和格式,介绍了默认的MapReduce作业类型、输入和输出格式(包括文本、二进制、数据库输入输出)以及如何在MapReduce中使用这些格式,还介绍了多重输入输出、延迟输出以及数据库输出的使用...