Linux应用软件编程:文件 标准IO
1.文件操作
2.多任务(进程、线程)
3.物联网、网络编程
4.数据库
一、Linux文件操作
1.文件
变量、数组、数据结构----放在-----》内存
内存特点:
- 读写数据速度快
- 程序执行结束,掉电数据丢失
- 空间小,价格贵
文件----放在----》外存(硬盘
硬盘特点:
- 读写速度比内存慢
- 掉电数据不丢失
- 空间大,价格便宜
文件的应用场景:
- 保存掉电不丢失的数据
- Linux提供给应用层的硬件操作接口(一切皆文件)
2.Linux下文件类型
ls -l 文件名:查看文件信息
七种文件类型
b block 快设备文件
如:存储类文件、硬盘
c charector 字符设备文件
如:鼠标、键盘、显示器
d directory 目录文件
如:文件夹
- regular 普通文件
如:xxx.c xxx.txt a.out
l link 软链接文件
相当于快捷方式(符号链接)
s socket 套接字文件
网阔编程
p pipe 管道文件
进程间通信
3.Linux下文件操作方法
两种方式
(一)标准IO
标准C库提供的文件操作接口,属于库函数
(二)文件IO
Linux内核提供的文件操作接口,属于系统调用
文件操作思想:
打开文件---》读写文件---》关闭文件
4.标准IO
打开文件:fopen()
读写文件:fgetc()/fputc()
fgets()/fputs()
fread()/fwrite()
关闭文件:fclose()
man手册:
1.Linux命令 ls cat
man ls
man 1 ls
2.系统调用
man open
man 2 open
3.库函数
fopen/fread/fclose
man fopen
- fopen()
FILE *fopen(const char *pathname, const char *mode);
功能:打开一个文件,并获得一个文件流指针
参数:
pathname:要打开的文件名
mode:打开方式
“r”:只读方式打开,文件必须存在
“r+”:读写,文件必须存在
“w”:只写,文件不存在则创建,文件存在则清空
“w+”:读写,文件不存在则创建,存在则清空
“a”:只写,文件不存在则创建,写时追加写
“a+”:读写,文件不存在则创建,读从开头读,写从末尾写
返回值:
成功:FILE *(文件流指针)
失败:NULL

文件流:文件FILE在读写过程中所体现出来的字节流
文件流指针:FILE *
标准IO文件操作面向文件流指针
- fclose()
int fclose(FILE *stream);
功能:关闭文件
参数:
stream:已打开的文件的·文件流指针
返回值:
成功:0
失败:EOF(-1)
只打开而不关闭,会造成文件描述符泄露
- fputc()
int fputc(int c, FILE *stream);
功能:向文件中写入一个字符参数:
c:要写入的字符或对应的ASCII码值
stream:要写入文件的文件流指针
返回值:
成功:写入的字符
失败:EOF(-1)
操作系统默认已打开的三个流:
FILE *
stdin:标准输入流-------对应-----》标准输入设备:键盘
stdout:标准输出流------对应----》标准输出设备:显示屏(终端)
stderr:标准出错流-------对应----》标准出错设备:显示屏(终端)
putchar(‘a’)== fputc(‘a’,stdout)
- fgetc()
int fgetc(FILE *stream);
功能:从文件中读取一个字符参数:
stream:要读取的文件的文件流指针
返回值:
成功:读到的字符
失败:EOF(-1)
读到文件末尾:EOF
主函数传参
int main(int argc,const char *argv[ ])
命令行传参:./a.out 1.txt
主函数形参;
argc:命令行传递的参数个数----》至少2
argv:保存多个char *类型指针的数组
argv[0]-----》“./a.out”
argv[1]-----》“1.txt”
argv[2]------》“aaa"
- fputs()
int fputs(const char *s, FILE *stream);
功能:将一个字符串写入到文件,不包括‘\0’字符参数:
s:要写入的字符串的首地址
stream:要写入文件的文件流指针
返回值:
成功:>=0的值
失败:EOF
od -c 文件名:以字符方式显示文件内容
- fgets()
char *fgets(char *s, int size, FILE *stream);
功能:从文件中读取一行,遇到新行结束参数:
s:存储该行字符串的空间首地址
size:期待读到的字节数,最多size-1
stream:要读文件的文件流指针
返回值:
成功:s,存储数据的空间首地址
失败:NULL
到达文件末尾:NULL
更多推荐


所有评论(0)