Q:Linux为什么引进文件管理的功能,主要任务是什么?
A:现代操作系统中,要利用大量的程序和数据,由于内存容量有限,且不能大量保存,所以现在把这些数据以文件的形式放在外存中,需要时再将它们调入内存,因此有了文件管理,负责管理在外存上的文件,并把存取,共享和保护等手段提供给用户,给用户提供方便,保证文件的安全性,提高系统资源的利用率。
从系统的的角度看,文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存储的文件进行保护和检索的系统;从用户的角度看,文件系统的主要目的是实现了对文件的按名存取。
由于要存储大量的文件,所以系统引进了目录,通过目录来管理文件。
Q:Linux文件系统如何实现管理?
A:Linux操作系统靠indox node来管理文件。
LInux是一个安全的操作系统,它是以文件为基础设计的(即Linux下皆文件),Linux中的文件系统主要用于管理文件存储空间的分配、文件访问权限的维护,对文件的各种操作。 用户可以使用shell命令对文件操作,但在功能上受到一定的限制。
程序员可以通过系统调用或C语言的库函数对文件操作。
Linux文件主要包括两方面的内容:一是文件包含的数据;另外就是文件属性,也称元数据,包括文件访问权限、所有者、文件大小、创建日期等。
目录也是一种文件,称为目录文件。目录文件的内容是该目录的目录项,目录项是该目录下的文件和目录的相关信息。当创建一个新目录时,系统将自动创建两个目录项——“.”和“..”。
Linux采用的是标准目录结构——树形结构,无论操作系统管理几个磁盘分区,这样的目录项只有一个。
在Linux安装时,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
Q:Linux文件分为哪几类?
A:分为五类:
1. 普通文件,计算机用户和操作系统用于存放数据、程序等信息的文件,一般都长期存放在外存储器(磁盘,磁带等)中,普通文件一般又分为二进制文件和文本文件。
2.设备文件,Linux把所有的外设都当做文件来看待,每一种I/O设备对应一个设备文件并存放在/dev目录中。
3.目录文件,Linux文件系统将文件检索点和文件名同时保存在目录中,所以目录文件就是将文件的名称和它的索引节点号同时保存在目录中,所以目录文件就是将文件的名称和它的文件索引节点号结合起来的一张表。目录文件只允许系统进行修改,用户进程可以读取目录文件,但不能进行修改。
4.管道文件,主要用于在进程间传递数据,管道是进程间传递数据的“媒介”。管道文件又称先进先出(FIFO)文件。
5.链接文件,又称符号链接文件,它提供了共享文件的一种方法。
Q:常见的文件类型?
A:-表示普通文件;
d表示目录文件;
l表示链接文件;
c表示字符文件;
b表示块文件;
p表示管道文件,如FIFO文件;
f表示堆栈文件,如LIFO文件。
Q:系统调用的分类?
A:Linux的调用按照功能逻辑大致分为进程控制、进程间通信、文件系统控制、系统控制、存储管理、网络管理、Socket控制、用户管理等几类。
Q:系统调用的意义?
A:所谓系统调用,是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组“特殊”借口来获得操作系统内核提供的服务。
C语言中,操作系统的系统调用通常是通过函数调用的形式完成的。这是因为这些函数封装了系统调用的细节,将系统调用的入口、函数和返回值用C语言的函数调用过程实现。在Linux系统中,系统调用函数定义在glibc中。
Q:Linux文件描述符?
A:某个程序打开文件时,系统返回相的文件描述符,系统为处理该文件必须引用该文件描述符。文件描述符的本质是一个低级的正整数。通常一个进程启动时,都会打开三个文件——标准输入、标准输出和标注出错处理。分别对应的文件描述符为0、1、2,也就是宏替换STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO,例如函数scanf()使用stdin,printf()使用stdout。对于Linux来说所有对设备和文件的操作都使用文件描述符来进行。
Q:I/O操作分类及其所用函数分别为那些?
A:I/O操作分为带缓存与不带缓存两种;不带缓存的I/O操作主要用到6个函数——creat,open,read,write,lsweek和close(这里的不带缓存是指每一个函数都只调用系统中的一个函数);带缓存的I/O操作分为全缓冲、行缓冲、不带缓冲三种。
Q:fgets函数和gets函数有哪些异同?
A:fgets函数用于从文件中读取一字符串,而gets函数用于从标准输入设备内读取一字符串;
fgets操作成功时返回时msg的值,若碰到文件或错误时,返回NULL;使用gets函数可以无穷读取,不会判定上限,现已经禁用。