[Linux系统编程]之初级认识文件操作

标签: Linux系统编程


Linux下系统编程是什么?

程序员使用系统调用或c语言本身所携带的库函数来设计和编写具有某一特定功能的程序,就为系统编程。(比如下文中我自己写的my_chmod指令)

系统调用是什么?

系统调用是操作系统提供给程序员使用的接口,(如作为系统调用提供的open函数用于打开一个文件,又如c语言的函数库也是系统调用实现的,只不过它封装了系统调用,并在此基础上为方便程序员使用增加了一节功能)

如何使用系统调用

Linux为上层应用的开发提供了丰富的系统调用,应用程序只需包含相应的头文件(如 #include < sys/stat.h >等等)就可以使用这些函数啦。

注意:可通过 “ man ×××× ”查看想要用的函数原型 ,如果既是Linux命令,又是系统调用,输入 “ man 2 ×××× “,对于库函数,则输入man 3 <库函数名>

系统调用的的一个实例应用

具体见我的另一篇博客 https://www.zybuluo.com/okokme/note/1225185


Linux的文件结构

Linux是以文件为基础 设计的,程序员可以通过系统调用或c语言的库函数对文件进行操作。

文件主要包含: ①文件本身所包含的数据②文件的属性
注意:目录也是一种文件,称为目录文件哦。

一般Linux下 有如下目录和具体功能:
详情见我的另一篇博客哦 https://blog.csdn.net/kkkkde/article/details/81171933

Linux的文件系统模型

文件系统模型

操作系统通过文件系统可以方便地对磁盘上的文件进行管理。

数据,或者说是文件归根结底是要存储在物理磁盘上的。
对物理磁盘上的访问都是通过设备驱动程序来进行的。

对设备驱动的访问有以下两种方式: ①通过设备本身提供的接口 ②通过虚拟文件系统(Virtual File System,VFS)提供给上层应用程序的接口。
因为第一种方式能够让用户进程绕过文件系统而直接读写磁盘上的内容,给操作系统带来了很大的不稳定性,所以大部分操作系统包括Linux都是使用虚拟文件系统来访问设备驱动。

关于VFS:
1.VFS是虚拟的,是只存在于内存而不存在于磁盘之中的(只有系统运行起来后才存在)。
2.VFS提供一种机制,他将各种不同的文件系统(eg:EXT2,EXT3,vfat等)整合起来,并提供统一的应用程序编程接口(API)供上层的应用程序使用。

文件系统是由一系列块(block)构成的,每个块的大小的因不同的文件系统而不同,但是一个文件系统一旦安装之后,块的大小固定。
通常一个块的大小是一个扇区的大小,而一个扇区通常为512个字节。
注意:每次对物理磁盘的访问最小单位是一个盘面上的一个磁盘上的一个扇区,即使用户只需要访问1个字节的数据,实际读写都是都是先把该字节所在的扇区读入到内存,然后再进行访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值