文件IO

1.day1

1、Linux下的文件分类

普通文件        -
目录文件        d
管道文件        p 
字符设备        c
块设备          b
链接文件        l 
套接字          s 

2、标准IO

1)带缓冲的IO

1.行缓冲:从标准输入读取数据,或者向标准输出打印数据

缓冲区的刷新:
1- 遇到换行符\n
2- 程序结束
3- 关闭文件
4- 缓冲区满
3- 强制刷新fflush()

2.全缓冲:主要针对常规文件

缓冲区的刷新:
1- 程序结束
2- 关闭文件
3- 缓冲区满
4- 强制刷新fflush()

3.不缓冲:主要针对错误信息

不经过缓冲区,直接输出

2)函数接口

1.fopen()

FILE *fopen(const char *pathname, const char *mode);

参数:
    pathname:文件路径
    mode:打开方式

r    只读,文件必须存在。
r+   读写,文件必须存在。
w    只写,文件不存在则创建,存在则清空
w+   读写,文件不存在则创建,存在则清空  
a    只写,文件不存在则创建,存在则追加写入  
a+   读写,文件不存在则创建,存在则追加写入  

返回值:
    成功返回文件指针,失败返回 NULL ,并且设置错误号。

2.格式化IO读写文件

1、格式化输出

printf()、fprintf()、sprintf()、snprintf()

int printf(const char *format, ...);
			
//向stream指向的文件中输出数据			
int fprintf(FILE *stream, const char *format, ...);

//向内存中输出数据,因为没有指定输出数据的大小,容易造成内存泄漏,因此不安全			
int sprintf(char *str, const char *format, ...);

//向内存中输出数据,指定了输出数据大小,因此类型安全  			
int snprintf(char *str, size_t size, const char *format, ...);

2、格式化输入

scanf()、fscanf()、sscanf()

//从标准输入读取数据
int scanf(const char *format, ...);

//从steam指定的文件中输入读取数据
int fscanf(FILE *stream, const char *format, ...);       

//从指定的内存中输入数据
int sscanf(const char *str, const char *format, ...);

2.day2

你可能感兴趣的:(linux)