zoukankan      html  css  js  c++  java
  • 标准io与文件io

    A: 代码重复:

       语句块1;

        while(判断)

       {

      语句块2;

      语句块1;

       }

       上面可以改写为:

       while(1)

       {

      语句块1;

    if(判断)

    break;

    语句块2;

       }

    B: 标准IO和文件IO的区别:

        标准IO:文件流fp,有缓存,库函数

        文件IO:文件描述符fd(小的,非负的整型数),无缓存,系统调用

        标准IO是依赖于文件IO的

    b1: 标准IO:

         stdin   键盘

         stdout   屏幕

         stderr   屏幕

         fgetc   每次读入一个字符          fputc   每次写一个字符

         fgets   每次读入一行              fputs   每次写一行

         getchar

         fprintf   格式化输出到文件流

         sprintf   格式化输出到缓存

         fopen   打开文件,建立一个文件流,与文件关联

         fclose   关闭文件流

         fread   对文件流直接进行读操作

         fwrite   对文件流直接进行写操作

         errno   输出错误的原因(结果是个数)

         strerror   把结果数转换为字符串,然后输出错误的原因   

         perror   打印出错的原因(常用)

         fflush   强制刷新缓存

         stdout   行缓冲,只对/n进行刷新,对/r不进行刷新

         stderr   无缓冲

         fseek   移动当前的读写位置

         ftell   查看当前的读写位置

         freopen   重定向文件流

    b2: 文件IO:

         文件描述符分配原则:当前未被使用的数值最小的int数,0(标准输入)stdin,1(标准输出)stdout,2(标准错误)stderr

         open   打开文件,将文件与文件描述符关联

         close   关闭文件

         read   读取文件,以字节为单位

         write   写入文件

         lseek   定位读写位置

    b3: 文件描述符数值:有多个描述符指向file结构体

        file结构体里面的成员变量指向文件的inode节点(结构体)

        file结构体有一成员变量“引用计数”refc记录指向file结构体的文件描述符数量

    b4: dup 文件描述符复制

        duplicate a file descriptor

        有多个文件描述符指向file结构体

    C: 使用库函数(lib)/系统调用(system calls)的步骤:

         1.函数的功能<------->函数名,查看man手册

         2.参数列表:参数的个数;参数的类型

         3.返回值、错误处理

         4.头文件

    c1: 系统调用:用户进程访问内核的接口,把用户从底层编程解放出来,提高系统的安全性

        库函数:提供统一的编程接口,便于应用程序的移植,为了实现某个功能而封装到应用程序接口的集合

        库函数是使用系统调用实现的

    D: 文件类型(7种):一切皆文件

         ls -l:查看文件类型

         bcd-lsp(b:块文件   c:字符文件   d:目录   -:常规文件   l:链接文件   s:套接字   p:管道文件)

  • 相关阅读:
    智能合约初体验
    安装solidity遇见的问题——unused variable 'returned'
    Clojure学习笔记(二)——函数式编程
    《Java虚拟机并发编程》学习笔记
    Clojure学习笔记(一)——介绍、安装和语法
    Ubuntu配置pyethapp
    no leveldbjni64-1.8 in java.library.path
    Merkle Patricia Tree (MPT) 树详解
    Ubuntu下配置和编译cpp-ethereum客户端
    conda安装python库出现ssl error
  • 原文地址:https://www.cnblogs.com/jfyl1573/p/6249808.html
Copyright © 2011-2022 走看看