Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通讯等资源也都是文件。
Linux系统中的文件类型
类似于 mp4、pdf、HTML、这样可以直接拿来使用的文件属于普通文件,Linux用户根据访问权限的不同可以对这些文件进行查看、删除以及更改 *** 作。
对于用惯Windows系统的用户来说,目录是文件可能不太好理解
Linux系统中,目录文件包含了此目录中各个文件的文件名以及指向这些文件的指针,打开目录等同于目录文件,只要你有权限,可以随意访问目录中的任何文件。
注意:目录文件的访问权限,同普通文件的执行权限是一个意思。
这些文件隐藏在/dev/目录下,当进行设备读取或外设交互时才会被使用。
例如,磁盘光驱属于块设备文件,串口设备则属于字符设备文件
Linux系统中的所有设备,要么是块设备文件,要么是字符设备文件
套接字文件一般隐藏在/var/run/目录下,用于进程间的网络通信。
类似于Windows中的快捷方式,是指向另一文件的简介指针(也就是软链接)。
主要用于进程间的通讯。例如,使用mkfifo命令创建一个FIFO文件,与此同时,启用进程A从FIFO文件读取数据,启用B从FIFO文件中写数据,随写随读。
一切皆是文件的利弊
和Windows不同的是,Linux没有C盘、D盘E盘那么多的盘符,只有一个根目录(/),所有文件资源所有的文件资源都存储在以根目录(/)为树根的树形目录结构中。
这样最明显的好处就是开发者仅需要使用一套API和开发工具即可调取Linux系统中绝大部分资源。举个简单的例子,Linux中几乎所有读(读文件、读系统状态、读socket,读PIPE)的 *** 作都可以用read函数来进行;几乎所有更改,(更改文件、更改系统参数,写socket,写PIPE)的 *** 作都可以用write函数来进行。
不利之处在于,使用任何硬件设备都必须与根目录下某一目录执行挂载 *** 作,否则无法使用。我们知道,本身Linux具有一个以根目录为树根的文件目录结构,每个设备也同样如此,他们是相互独立的。如果我们想通过Linux上的根目录找到设备文件的目录结构,就必须将这两个文件系统目录合二为一,这就是挂载的真正含义。
byte[] buff = new byte[1024];
int len = 0;
OutputStream os = responsegetOutputStream();
while ((len = bisread(buff)) > 0) {
oswrite(buff, 0, len);
}
大概就是这样
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)