标准io与文件io

时间:2022-10-03 15:58:21

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:管道文件)

标准io与文件io的更多相关文章

  1. 8 &period; IO类-标准IO、文件IO、stringIO

    8.1 IO类 #include <iostream> //标准IO头文件  8.2 文件输入输出流 #include <fstream> //读写文件头文件 std::fst ...

  2. 标准IO与文件IO 的区别【转】

    本文转载自:http://blog.sina.com.cn/s/blog_63f31f3401013jrn.html 先来了解下什么是标准IO以及文件IO. 标准IO:标准I/O是ANSI C建立的一 ...

  3. 标准IO与文件IO 的区别

    先来了解下什么是标准IO以及文件IO. 标准IO:标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性.标准IO库处理很多细节.例如缓存 ...

  4. 文件IO和标准IO

    2015.2.26 星期四,阴天 今天的内容主要是文件IO man 手册的分册: man -f open 查看那些分册中有openman 1 -- 普通的命令程序man 2 -- 系统调用man 3 ...

  5. linux 文件IO

    1.文件描述符 (1)文件描述符的本质是一个数字,这个数字本质上是进程表中文件描述符表的一个表项,进程通过文件描述符作为index去索引查表得到文件表指针,再间接访问得到这个文件对应的文件表.(2)文 ...

  6. 文件IO大纲

    文件流与文件描述符的区别 a) 任何进程在运行时都默认打开3个流对象,(stdin, stdout, stderr)它们都有对应的文件描述符,其文件描述符分别为0,1,2,以后打开的文件描述符的值一般 ...

  7. linux中文件IO

    一. linux常用文件IO接口 1.1. 文件描述符 1.1.1. 文件描述符的本质是一个数字,这个数字本质上是进程表中文件描述符表的一个表项,进程通过文件描述符作为index去索引查表得到文件表指 ...

  8. Linux C 文件IO

    文件IO 2021-05-31 12:46:14 星期一 目录 文件IO 基础IO open 错误 creat read 一个例子 write close lseek 文件空洞 unlink删除 io ...

  9. Golang文件IO 一

    Golang文件IO 一 文件IO编程最基本.最常用的就属读写文件操作了.ioutil包实现了一些IO实用功能,其中就包括非常简捷.好用的文件读取功能. ioutil包有7个函数1个变量: var D ...

随机推荐

  1. SQL&lowbar;SERVER&lowbar;2008升级SQL&lowbar;SERVER&lowbar;2008&lowbar;R2办法 (一、升级&semi;二、重新xie载安装)

    SQL_SERVER_2008升级SQL_SERVER_2008_R2两种办法   今天将由于需要就将我的SQL 2008升级到SQL 2008 R2. 说到为什么要升级是因为,因附加数据库时发现报错 ...

  2. 黑马程序员-for和foreach

    class Program { static void Main(string[] args) { Console.WriteLine("***第一种情况****************** ...

  3. mongodb remove删除文档的用法

    在看<mongoDB权威指南>中,在删除文档时,出现问题: 书中介绍:采用db.foo.remove()命令则可以删除foo集合中所有的文档,但是在执行该命令时,shell客户端却报错. ...

  4. 3&period;sublime vue 语法高亮插件安装

    默认情况下,Vue.js 的单文件组件(*.vue)在 sublime 编辑器中是不被识别的.若要想高亮显示,需要安装插件 Vue Syntax Hightlight.安装步骤如下:   第一,在 s ...

  5. 接触vsto,开发word插件的利器

    研究word插件有一段时间了,现在该是总结的时候了. 首先咱们来了解下什么是vsto?所谓vsto,就是vs面向office提供的一个开发平台.一个开发平台至少包含两个要素:开发工具(sdk)和运行环 ...

  6. CSV文件解析

    CSV(逗号分隔值文件格式)        逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和 ...

  7. Centos6下编译安装gcc6&period;4&period;0

    Centos6自带的gcc4.4.7不支持c++11, 于是编译安装最新版的gcc wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz .tar ...

  8. cygwin ctrl&plus;s的问题

    使用cygwin的时候,因为习惯了ctrl+s保存文档,使用vim时也顺手按下去了,然后cygwin就冻结了. 这个时候可以按下 ctrl+q 来重新激活 cygwin

  9. 安装 sql server 2008出现重启电脑,另在server 2012 r2安装sql server 2008 安装不上

    时即使是进行电脑重启,也会报这个错误,那么就不是电脑的问题了,其实是系统注册表在作怪,解决方法如下: 1.开始-->运行,输入regedit,打开注册表管理器: 2. 找到 HKEY_LOCAL ...

  10. 为啥final类型的map或者arraylist可以修改数据 而final类型的String变量不可以修改数据呢

    比如 final   Map  map =new  HashMap();    可以往map里put数据final   List  list =new  ArrayList();   可以往list里 ...