"); //-->
总算看完了I/O,下面看看文件目录到底怎么回事吧!
这章讨论的中心是三个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
1. 对于第一个参数
? 给定一个pathname,stat函数返回一个与此命名文件有关的信息结构。
? fstat函数获得已在描述符filedes上打开的文件的有关信息。
? lstat函数类似于stat,但是当命名的文件是一个符号连接时,lstat返回该符号连接的有关信息,而不是由该符号连接引用的文件的信息。
2. 第二个参数是个指针,它指向一个我们应提供的结构。这些函数填写由buf指向的结构。该结构的实际定义可能随实现而有所不同,但其基本形式是:
struct stat{
mode_t st_mode; /* file type & mode (permissions) */
ino_t st_ino; /* i_node number (serial number) */
dev_t st_dev; /* device number (filesystem) */
dev_t st_rdev; /* device number for special files */
nlink_t st_nlink; /* number of links */
uid_t st_uid; /* user ID of owner */
gid_t st_gid; /* group ID of owner */
off_t st_size; /* size of bytes, for regular files */
time_t st_atime; /* time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last file status change */
long st_blksizes; /* best I/O block size */
long st_blocks; /* number of 512-byte blocks allocated */
};
1. 一个文件相关的函数umask()
umask()
//-----------------------------------------------------------------
// 函数原型
#include <sys/types.h>
#include <sys/stat.h>
mode_t umask(mode_t cmask);
// 返回:以前的文件方式创建屏蔽字
//-----------------------------------------------------------------
函数为进程设置文件方式创建屏蔽字,并返回以前的值。
在进程创建一个新文件或新目录时,就一定会使用文件方式创建屏蔽字。
在文件方式创建屏蔽字中为1的位,在文件mode中的相应位将被转换为0。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。