一、标准IO
1、标准输入(intput)设备:键盘;标准输出(output)设备:显示器。
2、标准输入输出头文件:
<stdio.h> ——>路径:/usr(用户资源)/include/stdio.h;
系统库函数默认路径:/usr/include/
注意:stdio.h ——> stdio.c —编译后—> libc.so(动态库文件) ===>路径:/usr/lib/
3、用man man 查看所有帮助:
一共9章节;(1)命令(2)系统调用函数(只能在linux中使用) (3)C库函数(4)说明文件(5)文件格式(etc配置)(6)游戏(7)杂项(8)管理员命令(9)内核更新路线。
man XXX ——> man 1 XXX ——> 查看当前XXX命令;
man 2 XXX ——> 查看XXX对应的系统调用函数;
man 3 XXX ——> 查看XXX对应的标准库函数。
4、读写文件步骤:
(1)打开文件(fopen) (2)io读写操作(fgetc、fputc等) (3)关闭文件(fclose)
1)fopen
FILE *fopen (const char *pathname,const char *mode)
返回值类型FILE *为系统定义的结构体(流指针),用来描述文件相关信息,成员中有pos、data等。
mode:r(默认读位置在最开始);r+(读、写);w(清空并创建);w+(读、写)。r与r+要求被操作文件必须存在。
2)fputc
int fputc (int c,FILE *stream) (写w)
一次一个字符,相当于命令touch创建文件。
fgetc
int fgetc (FILE *stream) (读r)
一次一个字符,相当于命令cat显示内容。
例如:实现类似cp命令。可操作文本、二进制文件。
注意:vimdiff 文件1 文件2 ,为文本文件对照工具;在命令模式下,:colorscheme badwolf,为颜色方案;stat,为文件详细情况。
fputs
★ int fputs (const char *s,FILE *stream)
一次写入一行。
fgets
★ char *fgets (char *s,int size,FILE *stream)
一次读取一行。
注意:文件存储在nand flash固态硬盘、机械硬盘(2t)中,将数据读到ram内存上,与cpu交换。
例如:实现类似cp命令。只能处理文本文件,不能处理二进制(不能拷贝图片)。
fwrite
size_t fwrite (const void *ptr,size_t size,size_t nmemb,FILE *stream)
fread
size_t fread (void *ptr,size_t size,size_t nmemb,FILE *stream)
注意:bzero 清空缓存区。od -t x1 文件,显示二进制文件内容。
3)fclose
int fclose (FILE *stream)
关闭文件。
注意:当a.out开始运行时,系统就已经打开了3个FILE * :stdin(标准输入);stdout(标准输出);stderr(标准错误输出)。stdout与stderr区别在与缓存区。