Linux下的基础IO

Linux下的基础IO

本节重点

  • 复习C文件IO相关操作
  • 认识文件相关系统调用接口
  • 认识文件描述符,理解重定向
  • 对比fd和FILE,理解系统调用和库函数的关系
  • 理解文件系统中inode的概念
  • 认识软硬链接,对比区别
  • 认识动态静态库,学会结合gcc选项,制作动静态库
主要包括以下几个内容

Linux下的基础IO_第1张图片

C语言文件操作接口
先看一下fopen这个接口
  • 我们使用man fopen 来查看一下关于fopen的内容
    Linux下的基础IO_第2张图片
    Linux下的基础IO_第3张图片
    在这里插入图片描述
    Linux下的基础IO_第4张图片
  • 验证一下fopen接口
  • 现在尝试着去打开当前目录下的名为a.txt的文件,如果成功打开了,就返回文件指针,如果没有打开的话,就会返回NULL,根据代码所示,如果成功打开了这个文件的话,还会打印一句内容是open success
  • 但是,同样的道理,如果在当前目录下不存在你即将要打开的那个文件,那么这个代码的运行结果就会给你说no such file or directory,说明在当前目录下,没有这个文件
    Linux下的基础IO_第5张图片
  • 上述代码的运行结果是,会给我打印出来一句话,这句话是open success,说明我成功的打开了这个文件
  • 那么我们现在对这个代码进行修改,将以r的方式打开这个文件,改成将以w的方式打开这个文件,w的意思就是以只写的方式打开这个文件,如果这个文件不存在,那么就要去创建这个文件,如果这个文件存在的话,那么他会去清空这个文件中原先存在的东西
    Linux下的基础IO_第6张图片
  • 根据上面的代码,以w的方式打开我这个文件,这个文件,本来原来里面是存在有东西的,但是我以w的方式打卡这个文件,原来的内容就不存在了
  • 但是,如果你要打开的文件原先不存在的话,使用w的方式打开这个文件的话,就给给你把你所希望打开的那个文件创建出来
  • 现在继续对代码进行修改的操作,改成以追加的方式打开这个文件
    Linux下的基础IO_第7张图片
  • 以追加的方式打开一个文件,如果说你要打开的文件不存在的话,它同样是会给你把这个不存在的文件创建出来的,和w的区别是,不会清空该文件中原先拥有的内容
  • fopen返回值,打开成功返回文件流指针,打开失败返回NULL
fwrite
  • 我们使用fwrite来查看一下和fwrite相关的内容
    Linux下的基础IO_第8张图片
    在这里插入图片描述
    Linux下的基础IO_第9张图片

你可能感兴趣的:(Linux)