精华内容
下载资源
问答
  • Unix文件类型

    千次阅读 2013-11-01 10:28:52
    Unix文件类型包括以下几种: 1、普通文件(regular file)。这是最常见的文件类型。这种文件包括了某种形式的数据。例如文本文件、二进制可执行文件等等。不管文件是何种格式,其用途如何,对于Unix文件系统对此类...

    在Unix世界,一切皆文件。Unix系统中绝大部分资源都抽象为一个文件。Unix文件类型包括以下几种:

    1、普通文件(regular file)。这是最常见的文件类型。这种文件包括了某种形式的数据。例如文本文件、二进制可执行文件等等。不管文件是何种格式,其用途如何,对于Unix文件系统对此类文件的管理是完全一致的。

    2、目录文件(directory file)。Unix把包含其他文件或者子目录的目录也视为一种文件。目录文件的数据主要就是它所包含的文件名和指向这些文件具体信息的指针。

    3、块设备文件(block special file)。这类文件主要是用来描述一个磁盘之类的硬件设备。例如,/dev/sda代表第一块SATA接口的IDE硬件,/dev/sda1代表该硬盘的第一个分区,/dev/sad2代表该硬盘的第二个分区。这些文件的每次读写都以一个固定长度为单位,所以都称为块设备。意思就是文件数据是一块一块地批量地操作,而不是一个字节一个字节地读写。

    4、字符特殊文件(character special file)。这种设备提供不带缓冲的访问。与块设备相反,字符设备文件每次访问的长度可变。系统中的所有设备要么是块设备文件,要么是字符特殊文件。

    5、FIFO(first in first out)。先进先出,这种文件主要用于进程间通信,也称为命名管道。

    6、套接字(sockedrt)。主要用进程间的网络通信。

    7、符号链接(symbolic link)。指向另一个文件的文件。

    展开全文
  • Unix文件系统的文件类型可以是以下之一: 普通文件 目录 符号链接 面向块的设备文件(block-oriented device file) 面向字符的设备文件(character-oriented device file) 管道(pipe)和命名管道(named pipe)(也叫...

    Unix文件系统的文件类型可以是以下之一:

    • 普通文件
    • 目录
    • 符号链接
    • 面向块的设备文件(block-oriented device file)
    • 面向字符的设备文件(character-oriented device file)
    • 管道(pipe)和命名管道(named pipe)(也叫FIFO)
    • 套接字(scoket)

    前三种文件类型是所有Unix文件系统的基本类型。
    设备文件与I/O设备以及集成到内核中的驱动程序相关。
    管道和套接字是用于进程间通信的特殊文件。

    参考文献:
    1. 《深入理解linux内核(第三版)》
    
    展开全文
  • UNIX文件共享

    千次阅读 2017-03-17 11:28:51
    介绍unix文件共享机制

    UNIX文件共享

        UNIX系统支持在不同的进程间共享打开的文件。内核使用3种数据结构表示打开的文件,它们之间的关系决定了在文件共享方面一个进程对另一个京城可能产生的影响。


        (1)每个进程在进程表中都有一个记录项,记录项中包含一张打开文件描述符表,可将其视为一个矢量,每个描述符占用一项。与每个文件描述符关联的是:

           a.文件描述符标志

           b.指向一个文件表项的指针

        (2)内核为多有打开文件维持一张文件表。每个文件表包含:

           a.文件状态标志(读、写、添写、同步和非阻塞等)

           b.当前文件偏移量

           c.指向该文件v节点表项的指针

        (3)每个打开的文件或设备都有一个v节点(v-node)结构。v节点包含了文件类型和此文件进行各种操作的函数指针。对于大多数文件,v节点还包含了改文件的i节点(i-node,索引节点)。这些信息是在打开文件时从磁盘上读入内存的,所以,文件的所有相关信息都是随时可用的。例如,i节点包含了文件的所有者、文件长度、指向文件实际数据块在磁盘上所在的位置的指针等。

        注意:Linux没有使用v节点,而是使用了通用i节点结构。两种实现有所不同,但是在概念上v节点与i节点是一样的。两者指向文件系统特有的i节点结构。


        忽略了不影响讨论的的实现细节。例如:打开文件描述符可存放在用户空间(作为一个独立的对应于每个进程的结构,可以换出),而非进程表中。这些表也可以采用多种方式实现,不必一定是一个数组,例如,可以将它们实现为结构的链表。如果忽略细节的话,通用概念是相同的。

        下图表示一个进程对应的3张表之间的关系:



        如果两个独立进程各自打开了同一文件,则关系如下图:


        我们假定第一个进程在文件描述符3上打开该文件,而另一个进程在文件描述符4上打开该文件。打开该文件的每个进程都获得各自的一个文件表项,但对一个给定的文件只有一个v节点表项。之所以每个进程都获得自己的文件表项,是因为这可以使每个进程都有自己的对该文件的当前偏移量。

        在完成每次write后,文件表项中的当前文件偏移量即增加所写入的字节数。如果这导致当前文件偏移量超出了当前的文件长度,则将i节点表项中的当前文件长度设置为当前稳健偏移量(也就是该文件加长了);

        如果用O_APPEND标志打开一个文件,相应标志也被设置到文件表项的文件状态标志中。每次对这种具有追加写标志的文件执行写操作时,文件表项中的当前文件偏移量首相会被设置为i节点表项中的文件长度。这就是的每次写入的数据都追加到文件的当前尾端处。

        若一个文件使用lseek定位到文件的尾端,则文件表项中的当前文件偏移量被设置为i节点表项中的文件长度。这就使得每次写入的数据都追加到文件的当前尾端处。

        lseek函数只修改文件表项中的当前文件偏移量,不进行任何I/O操作。



    展开全文
  • UNIX文件类型主要包含如下几种: 1.普通文件(regular file) 2.目录文件(directory file) 3.块特殊文件(block special file),这种文件提供对设备(例如硬盘)带缓冲的访问,每次访问以固定长度为单位进行。 4....

    UNIX文件类型主要包含如下几种:

    1.普通文件(regular file)

    2.目录文件(directory file)

    3.块特殊文件(block special file),这种文件提供对设备(例如硬盘)带缓冲的访问,每次访问以固定长度为单位进行。

    4.字符特殊文件(character special file),这种文件提供对设备不带缓冲的访问,每次访问长度可变。

    5.FIFO文件,命名管道(named pipe),用于进程间通信。

    6.socket文件,用于进程间的网络通信,也可以在同一台机器上进行进程间通信。

    7.符号链接文件(symbolic link),指向另外一个文件。


    文件类型信息存放在stat结构体的st_mode成员中。stat结构体的声明如下:

    struct stat {
    
            mode_t     st_mode;       //文件对应的模式,文件,目录等
    
            ino_t      st_ino;       //inode节点号
    
            dev_t      st_dev;        //设备号码
    
            dev_t      st_rdev;       //特殊设备号码
    
            nlink_t    st_nlink;      //文件的连接数
    
            uid_t      st_uid;        //文件所有者
    
            gid_t      st_gid;        //文件所有者对应的组
    
            off_t      st_size;       //普通文件,对应的文件字节数
    
            time_t     st_atime;      //文件最后被访问的时间
    
            time_t     st_mtime;      //文件内容最后被修改的时间
    
            time_t     st_ctime;      //文件状态改变时间
    
            blksize_t st_blksize;    //文件内容对应的块大小
    
            blkcnt_t   st_blocks;     //文件内容对应的块数量
    
          };


    可以使用下面的宏确定文件的类型,宏的参数都是结构体stat的成员st_mode.

    posix.1实现允许将进程间通信(IPC)对象表示为文件,下面的宏确定可用来确定IPC对象的类型。

    上述宏的参数是结构体stat。


    那么如何才能获取stat结构体呢,使用下面三个函数:

    #include <sys/stat.h>
    int stat(const char* restrict pathname, struct stat* restrict buf);
    int fstat(int filedes, struct stat *buf);
    int lstat(const char* restrict pathname, struct stat* restrict buf );
    //三个函数如果成功则返回0,出错返回-1.

    lstat类似于stat,但是当文件时一个符号链接时,lstat获取的是该符号链接的有关信息,而不是该符号链接引用的

    文件的信息。

    实践:

    #include <stdio.h>
    #include <sys/stat.h>
    
    int main(int argc, char * argv[]){
            struct stat buf;
    
            if(argc != 2){
                    printf("you must specify one parameter.\n");
                    return -1;
            }
    
            if(stat(argv[1],&buf) < 0){
                    perror("stat");
                    return -1;
            }
    
            if(S_ISREG(buf.st_mode)){
                    printf("regular.\n");
            }else if(S_ISDIR(buf.st_mode)){
                    printf("directory.\n");
            }else if(S_ISBLK(buf.st_mode)){
                    printf("block.\n");
            }else if(S_ISLNK(buf.st_mode)){
                    printf("symbolic link.\n");
            }
    
            return 0;
    }
    运行结果:

    yan@yan-vm:~/apue$ ll /etc/init.d/acpid
    lrwxrwxrwx 1 root root 21 Apr 12 20:33 /etc/init.d/acpid -> /lib/init/upstart-job*
    yan@yan-vm:~/apue$ ./a.out /etc/init.d/acpid
    regular.


    如果将stat修改为lstat,结果如下:

    yan@yan-vm:~/apue$ ll /etc/init.d/acpid
    lrwxrwxrwx 1 root root 21 Apr 12 20:33 /etc/init.d/acpid -> /lib/init/upstart-job*
    yan@yan-vm:~/apue$ ./a.out /etc/init.d/acpid
    symbolic link.

    展开全文
  • 1. 文件类型7种文件类型 表示符号 文件类型 - ASCII / Binary data d directory l link b block c char s socket p pipe 2. 文件权限文件和目录的权限的含义 操作 含义 读文件 读取文件内容 写...
  • 在《文件系统研究、一 i节点》中提到了i节点的结构,如下 struct dinode {  ushort di_mode; /*文件类型+用户权限*/  ……  time_t di_ctime; /*创建时间*/ };   ushort di_mode是16位2
  • Unix文件系统

    千次阅读 2012-03-11 16:49:14
    Unix文件系统有多种实现,下文主要讨论基于BSD的UFS(UNIX File System)。  一般硬盘被分为多个分区,每个分区可以包含一个文件系统。文件系统的结构一般如下: 自举块 | 超级块 | 柱面组0 | 柱面组1 | ...
  • unix环境高级编程-4.3-文件类型

    千次阅读 2011-10-18 23:01:16
    unix大多数都是这些文件类型。但是也有另外一种。 下面简单介绍一下文件类型: (1)普通文件。最常见的文件类型。 (2)目录文件。这种文件包含了其他文件的名字以及指向与这些文件有关的信息指针。对一个目
  • UNIX 文件格式设置

    千次阅读 2018-06-19 18:33:54
    使用vim 打开文件,设置格式::set ff=unix以上就是我对于UNIX 文件格式设置的认识。
  • Unix操作系统基础:Unix文件系统之文件权限 1. 应用背景  由于Unix系统是一个多用户系统,通常有多个用户同时在系统上工作。这些用户都可以遵循路径名到达不同的目录并读取或执行属于他人的文件。  为了用户...
  • UNIX文件存取权限

    千次阅读 2012-08-24 10:17:21
    文件的存取权限 UNIX文件的存取有三种权限: 权限 普通文件的存取权限 目录的存取权限 r 具有读取文件的权利 能读取文件名称 w 具有写入文件的权利 能...
  • 编写一个UNIX文件系统

    千次阅读 2013-08-25 14:30:51
    近日有人求助,要写一个UNIX文件系统作为暑假作业。这种事情基本是学操作系统的必须要做的或者是做过的,毕竟文件系统是操作系统课程的一个重要组成部分。要实现这个UNIX文件系统,很多人就扎进了UNIX V6的的系统...
  • UNIX文件系统

    千次阅读 2014-07-16 11:59:21
    第8章 文件系统 文件系统经常是操作系统中最大的一部分,尽管并不包含最复杂的算法和数据结构。文件是一种操作系统机制,用于从一个会话(session)保存信息到另一个会话(session)中。文件也被用做永久性存档...
  • DOS2UNIX文件转换工具

    2014-08-26 18:30:49
    WINDOWS下的DOS文件转成LINUX下的文件类型
  • unix系统使用inode来表示内部的文件。里面存储了有关于文件大小,类型,链接数、权限等等信息。 1、可以对一个文件使用stat命令来查看信息,一般得到的结果如下 [root@localhost sharedfolder]# stat temptwo ...
  • 如果要将dos类型的换行符
  • 通过Beyond Compare比较文件发现文件类型为PC和UNIX。如果按照PC文件类型修改的代码上传到gerit上,发现就全部修改了。 那么问题来了,怎么把PC的格式转为UNIX格式呢? 一、PC与UNIX文件比较 二、设置 1、点击...
  • unix文件描述符——socket

    千次阅读 2016-07-16 13:12:12
    unix系统中,socket和普通文件一样对待,因为它可以像普通文件一样被读和写,但是它还有一些自己独特的特点,例如,文件的读写位置可以设置,但是socket只能被顺序的读写等等,那么在unix系统中,是如何实现这种...
  • unix文件管理命令

    千次阅读 2007-09-13 19:53:00
    unix文件管理命令unix系统提供了很多命令用于管理文件和目录。它们以简单的方式完成各种特定的任务,比如删除符合指定条件的文件,重命名某些文件。下面是一些常用到的命令。1、lsls是一个使用频率非常高的命令,它...
  • Unix操作系统基础3-Unix文件系统

    千次阅读 2006-06-18 13:16:00
    Unix文件系统文件的概念文件是字节流。 文件类型-普通文件-目录文件:目录内文件名的列表-特殊文件:代表系统中的设备,在/dev目录 路径名目录操作相关概念-用户主目录-当前目录,工作目录 相关命令- pwd (print ...
  • 深入了解UNIX文件权限

    千次阅读 2012-10-13 00:42:29
    注:本文于2009-01-21 ...我曾看到过一些关于UNIX文件权限的错误信息,我将在本文对这些问题做一个澄清。请看如下例子中的ls命令的输出结果: 例一: $ ls -ld /usr/bin /usr/bin/cat drwxrwxr-x
  • Unix / Linux 文件系统

    千次阅读 2018-08-19 00:56:47
    我们工作中使用 Unix / Linux 作为应用程序服务器,无非就是把我们编写好的软件部署到远程服务器,其中少不了对文件的各种操作,如果你不会操作文件那么将寸步难行。接下来我们来认识一下 Unix / Linux 文件系统。 ...
  • UNIX文件描述符和文件指针

    千次阅读 2013-03-12 21:14:56
    ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UNIX的I/O函数(open, close, read, write, ioctl)使用文件描述符。下面来说下,文件描述符是如何工作的。   文件...
  • unix文件中i节点

    千次阅读 2013-07-27 08:44:49
    3. 磁盘块上存储文件时,按照一定的规律。 每个文件系统分为3部分:超级块,i-节点表,数据区 。 超级块 :存放文件系统本身的信息,比如记录了每个区域的大小,或未被使用的磁盘块的信息。(不同版本稍...
  • DOS文件转换成UNIX文件格式详解(转)

    万次阅读 2008-07-11 12:43:00
    DOS文件转换成UNIX文件格式详解dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 2532C 字样,表示是一个[dos]格式文件...
  • unix文件权限详解

    千次阅读 2012-12-03 09:21:04
    当我们使用ls -l查看文件的时候,经常会看到如下的情况: drwxr-xr-x 2 root root 4096 9月 25 21:41 bin/ drwxr-xr-x 3 root root 4096 9月 25 21:41 boot/ drwxr-xr-x 2 root root 4096 9月 25 21:38 cdrom/ ...
  • UNIX文件mode_t详解

    万次阅读 2013-03-11 11:07:56
    打开文件、新建文件和关闭文件操作 打开文件操作使用系统调用函数open(),该函数的作用是建立一个文件描述符,其他的函数可以通过文件描述符对指定文件进行读取与写入的操作。打开文件的一般形式是: open...
  • Unix/Linux文件系统安全

    千次阅读 2016-08-14 16:42:43
    文件系统安全:文件系统安全是Unix/Linux系统安全的核心,文件系统用来控制谁能访问信息以及他们能做什么(认证,授权,就像前面密码学里面提到的AAA技术,当然那个最后一个A还代表一个审计技术) 文件系统基础...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 315,438
精华内容 126,175
关键字:

unix文件类型