`

Chapter 5__标准IO库

    博客分类:
  • APUE
阅读更多

1)缓冲的本质是减少read和write调用的次数,也就是物理IO,同时也带来了一些麻烦。
   1.1)全缓冲。术语冲洗(flush在IO库中表示写入磁盘,在终端表示丢弃数据。)
   1.2)行缓冲。限制……
  1.3)不带缓冲。

2)流(stream)与文件相关联。
3)流的定向(stream's orientaion):宽定向 与 字节定向。

fflush
fwide   - 返回流的定向,无出错返回。使用前清空error(unix错误机制)
setbuf  -  更改缓冲类型
setvbuf -  更改缓冲类型

  fopen
freopen
fdopen  -  由fd 返回 FILE*。(filen则是 FILE* 返回 fd)
fclose

单字符输入: getc   fgetc   getchar
单字符输出:  putc   fputc   putchar

行读写: fgets  fputs
gets、puts   -  不建议使用

fread   fwrite (二进制:结构体、数组、块内存)
隐藏风险,因为不同系统、编译器,导致结构体、数据的实现有所不同,产生“误会”。

定位流: 
ftell    fseek    rewind
ftello   fseeko  

fgetpos
fsetpos

临时文件: tmpnam  tempnam    tmpfile  (关闭时自动删除该文件)

ferror    - 出错
feof    - 文件结束
clearerr - 清除标志
ungetc
分享到:
评论

相关推荐

    Chapter10_J

    此外,Java标准库提供了大量的类和接口,如IO流、网络编程、XML处理等。InputStream和OutputStream代表了输入和输出流,它们用于读写文件和网络数据。Socket和ServerSocket类支持网络通信。DOM和SAX是两种解析XML...

    嵌入式系统及应用ucos-Chapter8-IO管理-new.ppt

    《嵌入式系统及应用UCOS-Chapter8-IO管理》是关于嵌入式系统中I/O管理的讲解,主要用于教学参考。I/O管理在任何操作系统中都是至关重要的,因为它负责处理系统与外部设备间的数据交换。在嵌入式系统中,由于资源有限...

    Chapter3IO.rar_Windows编程_Visual_C++_

    1. **I/O流库**: C++中的标准模板库(Standard Template Library, STL)包含了一组I/O流类,如`ifstream`(用于读取文件)和`ofstream`(用于写入文件)。这些类使得文件操作变得简单,可以通过类似操作字符串的方式...

    Chapter 6 通用IO模块:语音播放系统设计.rar

    编写代码时,可以使用标准的C语言或者特定的HAL库,这些库简化了硬件操作,使得开发更加高效。 总的来说,设计一个基于Freescale单片机的语音播放系统需要深入了解GPIO的工作原理以及如何与其他硬件组件协作。通过...

    C 程序设计教学课件:Chapter 2 IO Streams.ppt

    这些工具使得对文件和标准设备的输入输出操作变得简单且灵活。 2.3 字符I/O 字符I/O是指处理单个字符的输入输出操作。C++中的字符流通常通过`get()`和`put()`函数实现,也可以通过单个字符的赋值或比较操作来完成。...

    chapter10.zip

    4. **IO流**:Java的IO流库允许程序读取和写入数据,包括文件操作、网络通信等。学习者应掌握字节流和字符流,以及缓冲流、过滤流等概念。 5. **反射**:反射是Java的高级特性,允许程序在运行时动态地获取类的信息...

    vc实例精通源码,windows基本控件的使用Demo

    第5章(\ Chapter05) 示例描述:本章介绍创建对话框以及通用对话框的使用技巧。 01_ModalDlg 显示模式对话框。 02_ModallessDlg 显示非模式对话框。 03_OpenFileDemo 使用打开文件对话框。 04_SaveFileDemo...

    cs-code.rar_c# 开发cs代码_cs code _vscode开发C#

    9. C#标准库的使用:如System.IO、System.Linq等命名空间中的类和方法。 10. 高级主题:委托、事件、异步编程、泛型等进阶概念。 通过这个压缩包,C#初学者不仅可以学习到基本的编程知识,还能了解如何在VSCode环境...

    cpp.rar_cpp教案

    4. **高级主题**:PPT文件中未列出更具体的章节,但通常在深入学习C++时,会涉及模板、STL(标准模板库)、IO流、异常处理、内存管理、预处理器等内容。这些主题不仅扩展了C++的功能,也提升了代码的效率和可维护性...

    C++ Primer Plus - Examples Source Code, 6th Edition.zip

    5. **Chapter 9**:可能涵盖了指针,这是C++的一个重要特性,允许直接访问内存地址。源代码会解释指针的声明、初始化,以及如何使用指针进行动态内存管理。 6. **Chapter 17**:可能涉及到类和对象,这是面向对象...

    chapter 23 example

    4. **IO流**:Java的IO流库允许程序读写文件和网络数据。`InputStream`和`OutputStream`是基础类,`BufferedReader`和`PrintWriter`等类提供更高级的功能。例子可能演示了如何使用这些类进行文件操作。 5. **设计...

    chapter

    11. **Java标准库**:Java的标准库(JDK)提供了大量工具类和API,如日期时间API、并发工具类、IO流等,熟悉并熟练使用它们能提高开发效率。 12. **Java 8及以上版本的新特性**:Java 8引入了lambda表达式、Stream ...

    F语言课件基础教程

    此外,还会简单介绍OpenMP,这是Fortran中用于并行计算的标准库,能够利用多核处理器提升计算效率。 通过这个全面的Fortran基础教程,初学者可以系统地学习Fortran语言的核心概念和应用,为进一步的科学计算和工程...

    Visual C#基于组件的开发(源码)

    "Chapter 11"到"Chapter 14"的源码可能涵盖了C#的类库使用,如.NET Framework的System.Collections命名空间用于集合操作,System.IO用于文件和流操作,System.Net用于网络通信,System.Data.SqlClient用于SQL Server...

    Wine数据集

    预处理通常包括缺失值处理、标准化(归一化)和特征选择等步骤,以提高模型的训练效果。 **模型训练与评估** 训练模型时,通常会将数据集分为训练集和测试集。使用交叉验证方法(如k折交叉验证)可以更准确地评估...

    python3.7sourcecode:python3.7从零开始学各章节原始代码

    - **Chapter6**:标准库和第三方库的使用。 - **Chapter7**:网络编程和Web开发基础。 - **Chapter8**:数据库连接和操作。 - **Chapter9**:模块化和包的创建与使用。 - **Chapter10**:高级话题,如装饰器、生成器...

    java自定义标签的开发与应用.doc

    自定义标签与JSTL中的标准标签本质上并无差异,都是JSP引擎在翻译JSP页面成Servlet时调用的Java代码。在JSP页面中,标签以XML语法形式存在,当JSP引擎遇到这些标签时,会将它们转换为对应的Java代码执行。这使得...

    单层竞争神经网络的数据分类-患者癌症发病预测.zip

    在Python环境中,我们可以使用`scipy.io.loadmat`函数来加载MAT文件,并使用`pandas`库将TXT文件转换为DataFrame,便于后续处理和分析。处理这些数据时,可能需要进行预处理,包括数据清洗、缺失值处理、数据标准化...

    嵌入式系统ChapterIO管理PPT学习教案.pptx

    【嵌入式系统Chapter IO管理】的PPT学习教案详细解析 嵌入式系统的I/O管理是其核心组成部分,主要用于协调系统与外部设备之间的数据交换。本教程主要讲解了I/O管理的概述、一种实现方法以及体系结构,旨在帮助学习...

    sukkiri-java-v2-chap12-list12

    5. **设计模式**:虽然不是标准 Java 教程的固定章节,但一些高级教程可能会在后期介绍设计模式,如单例、工厂、观察者等。这些模式可以帮助编写可扩展、可维护的代码。 6. **泛型**:Java 泛型允许在类、接口和...

Global site tag (gtag.js) - Google Analytics