• 第4天.标准I/O库


    

    字符,字节和编码    http://www.regexlab.com/zh/encoding.htm


    Stream:Digital media that is delivered in a continuous flow across a network.


    An abstraction of a sequence of bytes, such as a file, an I/O device, an inter-process communication pipe, a TCP/IP socket, or a spooled print job. The relationship between streams and storages in a compound file is similar to that of files and folders.


    The flow of data from a source to a single receiver that flows through a channel, as opposed to packets, which may be addressed and routed independently, possibly to multiple recipients.



    流的概念:流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具。本质上是程序输入或输出的一个连续的字节序列(我的理解是,以不同单位或不同目标因素的数据集合,在配以专门的方法和机制使数据能够被人们以不同目的方便利用),设备(例如鼠标,键盘,磁盘,屏幕)的输入和输出都是用流来处理的。在C语言中,所有的流均以文件的形式出现,但不一定是物理磁盘文件,还可以是对应某个输入输出源的逻辑文件。

    第4天.标准I/O库


    在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,我们对流进行直接操作的,而不用关心流的另一头数据的真正流向。


    流不但可以处理文件,还可以处理动态内存、网络数据等多种数据形式。


    c语言中所有5中标准的流,程序在任何时候都能使用它们,并且不必打开或关闭它们:

        ------------------------------------------------
            名称          描  述            例  子
        ------------------------------------------------
            stdin        标准输入           键盘
            stdout       标准输出            屏幕
            stderr       标准错误            屏幕
            stdprn       标准打印机          LPT1端口
            stdaux       标准串行设备        COM1端口
        ------------------------------------------------


    需要注意的是,stdprn和stdaux并不总是预定义设置好的,因为LPT1和COM1端口在某些操作系统中是没有意义的,而stdin,stdout和stderr总是预先定义好的。此外,stdin并不一定来自键盘,stdout也并不一定显示在屏幕上,它们都可以重定向到磁盘文件或其它设备上。



    C语言的I/O系统为用户提供了一个接口,该接口与实际的存取设备无关(我的理解是,我们的操作不用关心实际的存取设备)。只是设备的一个抽象表示形式。这个抽象的接口称为流,实际的设备称为文件。

    C文件系统可以与各种设备一起使用,如打印机、硬盘、终端等,缓冲文件系统可以将每个设备转换成逻辑设备,即所谓的流。所有的流工作方式类似,所以很容易操作不同的设备。流有2种类型:文本流和二进制流。

    文本流是一系列字符,可以由多行构成,每行由一个换行符终止。

    二进制流是一系列字节,并与外部设备上的字节一一对应。


    int fseek(FILE *fp, LONG offset, int origin)
    fp 文件指针
    offset 相对于origin规定的偏移位置量
    origin 指针移动的起始位置,可设置为以下三种情况:
    SEEK_SET 文件开始位置
    SEEK_CUR 文件当前位置
    SEEK_END 文件结束位置
    简单的说文件操作指示器(fseek)就是当前文件流指针指向的文件的位置


  • 相关阅读:
    HTML文档类型DTD与浏览器怪异模式
    css控制非固定文本自动换行
    CSS圆角兼容IE6
    css命名规则
    一个程序员的世界(三) 全:(原名:一个程序员的世界观)
    Apache Ignite 学习笔记(6): Ignite中Entry Processor使用
    Apache Ignite 学习笔记(五): Primary和backup数据同步模式和处理分片丢失的策略
    Apache Ignite 学习笔记(四): Ignite缓存冗余备份策略
    Apache Ignite 学习笔记(三): Ignite Server和Client节点介绍
    Apache Ignite 学习笔记(二): Ignite Java Thin Client
  • 原文地址:https://www.cnblogs.com/SFTD/p/3624591.html
Copyright © 2020-2023  润新知