《linux的IO编程pub》.pdf
文本预览下载声明
追风~忆梦 QQ :1028150787
目录
日志篇3
第一天 4
第二天 15
第三天 26
专题篇 33
LINUX简单常用函数 34
标准I/O相关函数 38
LINUX 标准IO缓冲机制探究 59
文件I/O相关函数 65
LINUX 命令行参数处理函数探究 83
MYLS的实现 97
LINUX 静态库和共享库 107
LINUX静态库和动态库(网转1) 116
LINUX中创建静态库和动态库(网转2) 122
结语 127
2013 年 9 月 16 日 于荆楚理工学院 2
追风~忆梦 QQ :1028150787
日志篇
主要是一些学习笔记的整理和综合,涉及的面比较全,但是
不是太详细。具体的详细解释,请参看后面的专题篇。
2013 年 9 月 16 日 于荆楚理工学院 3
追风~忆梦 QQ :1028150787
第一天
一、库
库的本质 :一组实现好的函数接口
标准库好处:屏蔽底层细节,向外界提供统一的接口
二、ASCII 码文件和二进制文件
在 windows 下 对回车键的处理:
ASCII 文件输入\n,它将其转成 \r\n,输出的时候将\r\n 转成\n
二进制文件不做转化
在 Linux 下 不区分 ASII 码和二进制文件,全部当做普通文件处理
三、缓存的类型
A. 全缓存
刷新缓存的条件: 缓存满、进程正常结束或者调用 fflush()
B. 行缓存
特点:遇到\n会刷新缓存
刷新缓存:缓存满,进程正常结束,调用 fflush(),遇到\n字符
C. 不缓存
特点:没有缓存。典型实例,标准出错
Linux 缓存设计规则:
大部分流对应的缓存类型都是全缓存,但是如果和一个终端设备关联的时
候,是行缓存。
注意:标准的 I/O 是带缓存的,文件 IO 是不带缓存的
四、流
流:一块内存的首地址,这块内存记录了缓存信息和文件描述符
可以通过标准库函数 fopen 获得一个流
描述流:FILE *
注意:标准 IO 库函数它的操作对象是流
五、printf 函数族
int printf(const char *format, ...); // 向标准输出输出格式串
int fprintf(FILE *stream, const char *format, ...); // 向指定的流输出格式串
int sprintf(char *str, const char *format, ...); // 向指定的地址输出字符串
练习:
1.向标准输出输出hello world
printf(hello world\n);
fprintf(stdout,hello world\n);
2. 向标准出错输出hello world
fprintf(stderr,hello world);
3. 向数组buf 输出hello world
sprintf(buf,hello world);
2013 年 9 月 16 日 于荆楚理工学院 4
追风~忆梦 QQ :1028150787
六、标准 I/O 库函数
(1)打开文件
FILE *fopen(const char *path, const char *mode);
功能:打开一个文件
参数:
@path 文件的路径
@mode 打开的方式
r : 只读的方式打开
r+ : 读写方式打开
w : 只写的方式打开,文件不存
显示全部