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

更多推荐