一.文件操作
1.文件操作级别
(1)硬件级别
硬件级别的文件操作包括:
fdisk:将硬盘、U盘或SDC盘分区。
mkfs:格式化磁盘分区,为系统做好准备
fsck:检查和维修系统
碎片整理:压缩文件系统中的文件
(2)操作系统内核中的文件系统函数:每个操作系统内核均可为基本文件操作提供支持
(3)系统调用:用户模式程序使用系统调用来访问内核函数
(4)I/O库函数
(5)用户命令:用户可以使用Unix/Linux命令来执行文件操作而不是编写程序
用户命令的示例如下:
mkdir,rmdir,cd,pwd,ls,link,unlink,rm,cat,cp,mv,chmod,etc.
每个用户命令实际上是一个可执行程序(cd除外),通常会调用库I/O函数,而库I/O函数再发出系统调用来调用相应的内核函数。
2.文件I/O操作
用户模式下的程序执行操作
FILE *fp=fopen("file" , "r");or FILE *fp = fopen("file" "w");
可以打开一个读/写文件流
二.使用系统调用进行文件操作
1.系统调用
在操作系统中,进程以两种不同的模式运行,即内核模式和用户模式,简称Kmode(系统态)和Umode(用户态)。在Umode中,进程的权限非常有限,它不能执行任何需要特殊权限的操作,特殊权限的操作必须在Kmode下执行。系统调用(简称syscall)是一种允许进程进入Kmode以执行Umode不允许操作的机制。
平常我们的进程几乎都是用户态,读取用户数据,当涉及到系统级别资源的操作(例如文件管理、进程控制、内存管理等)的时候,就要用到系统调用了。
2.使用系统调用进行文件操作
系统调用必须由程序发出。它们的用法就像普通函数调用一样。每个系统调用都是一个库函数,它汇集系统调用参数,并最终向操作系统内核发出一个系统调用。
3.常用的系统调用(参考链接:https://blog.csdn.net/qq_43412060/article/details/105460239)
4.链接文件(参考链接:https://blog.csdn.net/lelecastle/article/details/119843000)
硬链接(硬链接文件)
命令:ln oldpath newpath
硬链接仅适用于非目录文件
软链接(符号链接文件)
命令:ln -s oldpath newpath(创建从newpath到oldpath的软链接或符号链接)
与硬链接不同,软链接适用于任何文件,包括目录,通常在下面这两种情况下特别有用:
(1)通过一个较短的名称来访问一个经常使用的较长路径名称
例如:x——>aVeryLongPathnameFile
(2)将标准动态库名称链接到实际版本的动态库
例如:libc.so.6 ——> libc.2.7.so
当实际动态库更改为不同版本时,库安装程序只需更改(软)链接以指向新安装的库
标签:文件,调用,编程,系统,用户,Unix,Linux,操作,链接 From: https://www.cnblogs.com/yao-yuer/p/16725330.html