Linux标准IO编程

来源:互联网 发布:淘宝客app制作 编辑:程序博客网 时间:2024/05/22 13:59

Linux标准IO编程

linux下的标准I/O的编程方法:

  • 什么是标准I/O
  • 什么是流
  • 流的一些处理方式

什么是标准I/O

即C定义来操作I/O的一系列函数

首先,得明白啥是系统调用,系统调用,是一种接口,提供给程序以分配内存、创建进程、实现进程之间的通信。
因为每个系统的系统调用都不一样,所以程序员就想出来定义一个编程接口来使用这些系统调用,俗称API。而C库是使用最广的了,而在C库了定义了一些标准I/O函数来操作系统实际的I/O。

什么是流

操作文件的时候,标准I/O会定义一个FILE的结构体来描述该文件,形象的称这个FILE结构体为流。
流的缓冲类型有三种

1. 全缓冲:当填满I/O缓存区后才进行实际的I/O操作。2. 行缓冲:当输入输出遇到换行符时进行I/O操作。(标准输入流和标准输出流)3. 无缓冲:即在对流的操作时执行I/O操作。(标准出错流)

流的一些处理方式

流的打开

fopen() fdopen() freopen()三种都可以打开文件;
函数原型:

FILE*open(const char *path,const char*mode);----------*path 文件地址,mode使用的打开模式成功:得到指向FILE的指针失败:NULL*

mode模式解析:+表示打开可读写,没有+则是打开只读或只写
r只读 w 只写(文件长度为0则擦写,不存在则建立)
a以附加方式打开(即文件存在则加在后面,不存在则建立文件)

三个流:标准输出流(stdout)标准输入流(stdin)和标准错误流(stderr)

流的关闭

fclose()
函数原型

int fclose(FILE*steam);----------成功:返回0失败:EOF

错误处理

perr()
函数原型

void perror(const char*s)----------无返回值

示例:输出错误信息

#include<stdio.h>int main(){    FILE*fp;    if((fp = fopen("1.txt","r"))==NULL)    {        perror("fail to open");    }    fclose(fp);    return 0;}

strerror()
错误处理相关函数
函数原型

char *strerror(int errnum);----------errnum为错误码返回错误码对应的错误信息
0 0
原创粉丝点击