免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1489 | 回复: 0
打印 上一主题 下一主题

[新手入门] 2--文件类型(UNIX) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-26 09:48 |只看该作者 |倒序浏览
至今我们已介绍了两种不同的文件类型—普通文件和目录。UNIX系统的大多数文件是普通文件或目录,但是也有另外一些文件类型:
   (1)普通文件(regularfile)。这是最常见的文件类型,这种文件包含了某种形式的数据。至于这种数据是文本还是二进制数据对于内核而言并无区别。对普通文件内容的解释由处理该文件的应用程序进行。
   (2)目录文件(directoryfile)。这种文件包含了其他文件的名字以及指向与这些文件有关信息的指针。对一个目录文件具有读许可权的任一进程都可以读该目录的内容,但只有内核可以写目录文件。
   (3)字符特殊文件(characterspecialfile)。这种文件用于系统中某些类型的设备。
   (4)块特殊文件(blockspecialfile)。这种文件典型地用于磁盘设备。系统中的所有设备或者是字符特殊文件,或者是块特殊文件。
   (5)FIFO。这种文件用于进程间的通信,有时也将其称为命名管道。
   (6)套接口(socket)。这种文件用于进程间的网络通信。套接口也可用于在一台宿主机上的进程之间的非网络通信。
   只有4.3+BSD才返回套接口文件类型,虽然SVR4支持用套接口进行进程间通信,但现在是经由套接口函数库实现的,而不是通过内核内的套接口文件类型,将来的SVR4版本可能会支持套接口文件类型。
   (7)符号连接(symboliclink)。这种文件指向另一个文件。
   文件类型信息包含在stat结构的st_mode成员中。可以用表4-1中的宏确定文件类型。这些宏的参数都是stat结构中的st_mode成员。
      表4-1在中的文件类型宏
        S_ISREG()    普通文件
        S_ISDIR()    目录文件
        S_ISCHR()    字符特殊文件
        S_ISBLK()    块特殊文件
        S_ISFIFO()   管道或FIFO
        S_ISLNK()    符号连接(POSIX.1或SVR4无此类型)
        S_ISSOCK()   套接字(POSIX.1或SVR4无此类型)

早期的UNIX版本并不提供S_ISxxx宏,于是就需要将st_mode与屏蔽字S_IFMT逻辑与,然后与名为S_IFxxx的常数相比较。SVR4和4.3+BSD在文件中定义了此屏蔽字和相关的常数。如若查看此文件,则可找到S_ISDIR宏定义为:
#define S_ISDIR (mode) (((mode) & S_IFMT) == S_IFDIR)


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34065/showart_286542.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP