美文网首页
linux系统API,c,c++的标准I/O和文件I/O

linux系统API,c,c++的标准I/O和文件I/O

作者: FakeCSer爱去网吧 | 来源:发表于2020-07-19 09:46 被阅读0次
  • 标准I/O:数据从内存与标准i/o设备(stdio,stdout,stderr)之间的数据流动
  • 文件I/O:文件的读写

linux系统API

  • open(),read(),write(),close(),lseek()

C

  • 头文件<stdio.h>:标准输入输出,从stdio,stdout,stderr的读和写
    • scanf和printf:格式化输入输出
    • getchar()和putchar():读写一个字符
    • gets()和puts():读写一个字符串
  • 文件io:
    1. 打开文件
      FILE *fopen( const char * filename, const char * mode );
      mode:r/w/a/r+/w+/a+ 或者rb/wb/ab/r+b/w+b/a+b (二进制)

    2. 读写文件

      • fputc和fgetc
        int fputc( int c, FILE *fp );
        int fgetc( FILE * fp );

      • fputs和fgets 字符串读写函数
        int fputs( const char *s, FILE *fp );
        char *fgets( char *buf, int n, FILE *fp );读n个字符进缓冲区,或者读一行,或者读到文章末尾(读到换行符或EOF停止)

      • fread fwrite 数据块读写函数(二进制IO)
        size_t fread(void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file);
        size_t fwrite(const void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file);

      • fgets与fread区别

      • fgets,fputs/fread.fwrite/fscanf,fprintf区别和用法

      • fread与系统调用read的区别:fread是c库函数,封装了read,加了缓冲区,效率高。

    3. 关闭文件 int fclose( FILE *fp );

    4. 读写指针的移动 fseek()
      int fseek(FILE *stream, long int offset, int whence)
      whence:
      SEEK_SET 文件的开头
      SEEK_CUR 文件指针的当前位置
      SEEK_END 文件的末尾


C++

  • 两个头文件<iostream>和<fstream>,一个负责标准io一个负责文件io
  • <iostream>:该文件定义了 cin、cout、cerr 和 clog 对象,分别对应于标准输入流、标准输出流、非缓冲标准错误流和缓冲标准错误流。其实就是对应着stdin,stdout,stderr。然后用<<,>>流插入运算符来对标准io进行输入输出
  • <fstream>:它定义了三个新的数据类型:ofstream,ifstream,fstream
    • ofstream:输出文件流,用于创建文件并向文件写入信息。
    • ifstream:输入文件流,用于从文件读取信息。
    • fstream:文件流,输入和输出

文件流对象定义fstream f;->打开文件f.open()->读/写->文件关闭f.close()

  • 一个是cout << buf;一个是f << buf;一个是标准io流与内存之间的数据流动,一个是文件流与内存之间的数据流动。不过文件IO需要先声明文件流对象f,f.open()之后才能用.
  • c++中的文件指针位置
    • istream 的 seekg("seek get")
    • ostream 的 seekp("seek put")
fileObject.seekg( n );
 
// 把文件的读指针从 fileObject 当前位置向后移 n 个字节
fileObject.seekg( n, ios::cur );
 
// 把文件的读指针从 fileObject 末尾往回移 n 个字节
fileObject.seekg( n, ios::end );
 
// 定位到 fileObject 的末尾
fileObject.seekg( 0, ios::end );

相关文章

  • linux系统API,c,c++的标准I/O和文件I/O

    标准I/O:数据从内存与标准i/o设备(stdio,stdout,stderr)之间的数据流动 文件I/O:文件的...

  • I/O操作的实现

    目录 I/O子系统概述 用户空间I/O软件 用户程序中的I/O函数 文件的基本概念 系统级I/O函数 C标准I/O...

  • c++标准I/O总结

    之前我们总结了Unix系统I/O和Unix标准I/O,这次我们就顺便总结一下C++I/O库,主要内容都来自C++ ...

  • I/O访问方式

    缓存IO 缓存I/O又被称作标准I/O,大多数文件系统的默认I/O操作都是缓存I/O。在Linux的缓存I/...

  • linux I/O5中模型认识

    linux I/O5中模型 引入I/O模型 标准I/O: 缓存 IO 又被称作标准 IO,大多数文件系统的默认 I...

  • 系统网络50问

    系统网络50问1、标准文件IO与文件IO的区别?答:标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是...

  • 系统网络50问

    系统网络50问1、标准文件IO与文件IO的区别?答:标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是...

  • 协议栈学习笔记

    缓存 I/O 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linu...

  • Unix文件系统 标准I/O库

    标准I/O库是ISO C标准,跨多系统 使用标准I/O库创建或打开文件时,即是用一个流(Stream)与此文件关联...

  • C语言学习12.文件和IO

    I/O:input/output,输入输出。分三类:标准I/O,串I/O,文件I/O 标准I/O: 标准输入:从标...

网友评论

      本文标题:linux系统API,c,c++的标准I/O和文件I/O

      本文链接:https://www.haomeiwen.com/subject/scqlkktx.html