linux c 之 文件

1. 三个s t a t函数以及它们所返回的信息。

#include <sys/types.h>

#include <sys/stat.h>
int stat(const char *pathname, struct stat *buf) ;
int fstat(int filedes,struct stat *buf) ;

int lstat(const char *pathname, struct stat *buf) ;

三个函数的返回:若成功则为0,若出错则为-1

给定一个p a t h n a m e,s t a t函数返回一个与此命名文件有关的信息结构, f s t a t函数获得已在描述
符f i l e d e s上打开的文件的有关信息。l s t a t函数类似于s t a t,但是当命名的文件是一个符号连接时,
l s t a t返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息。

第二个参数是个指针,它指向一个我们应提供的结构。这些函数填写由b u f指向的结构。
该结构的实际定义可能随实现而有所不同,但其基本形式是:

2. 文件类型
至今我们已介绍了两种不同的文件类型—普通文件和目录。U N I X系统的大多数文件是
普通文件或目录,但是也有另外一些文件类型:
(1) 普通文件(regular file)。这是最常见的文件类型,这种文件包含了某种形式的数据。至
于这种数据是文本还是二进制数据对于内核而言并无区别。对普通文件内容的解释由处理该文
件的应用程序进行。
(2) 目录文件(directory file)。这种文件包含了其他文件的名字以及指向与这些文件有关信
息的指针。对一个目录文件具有读许可权的任一进程都可以读该目录的内容,但只有内核可以
写目录文件。
(3) 字符特殊文件(character special file)。这种文件用于系统中某些类型的设备。
(4) 块特殊文件(block special file)。这种文件典型地用于磁盘设备。系统中的所有设备或者
是字符特殊文件,或者是块特殊文件。
( 5 ) F I F O。这种文件用于进程间的通信,有时也将其称为命名管道。
(6) 套接口( s o c k e t )。这种文件用于进程间的网络通信。套接口也可用于在一台宿主机上的
进程之间的非网络通信。第1 5章将用套接口进行进程间的通信。
(7) 符号连接(symbolic link)。这种文件指向另一个文件。


文件类型信息包含在s t a t 结构的s t _m o d e成员中。
这些宏的参数都是s t a t结构中的s t _m o d e成员。
              文件类型
---------------------------------------------------------------------------------
S_ I S R E G ( ) 普通文件
S _I S D I R ( ) 目录文件
S _I S C H R ( ) 字符特殊文件
S _I S B L K ( ) 块特殊文件
S _I S F I F O ( ) 管道或F I F O
S _I S L N K ( ) 符号连接( P O S I X . 1或S V R 4无此类型)
S _I S S O C K ( ) 套接字(P O S I X . 1或S V R 4无此类型)
----------------------------------------------------------------------------------


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值