1、S_IFMT: 文件类型掩码 2、Linux内文件符号 在操作系统中,我们经常需要处理各种不同的文件类型。为了方便程序员进行相关操作,C语言提供了一组API函数用于获取和处理目录下的所有文件及其属性信息。这些函数主要定义在头文件dirent.h中,并且它们可以返回一个指向dirent结构体的指针。 那么,在这个头文件中,到底有哪些...
e.g.st_mode & S_IFMT可以得到文件类型 如果看文件是否有哪个权限,st_mode&掩码&权限的掩码,然后看是否大于0 e.g.st_mode & S_IRWXU & S_IRUSR可以看文件所有者是否有读权限 文件类型(12-15 bit) 掩码:S_IFMT0170000 过滤 st_mode中除文件类型以外的信息 S_IFSOCK0140000 套接字 S_IFLNK0120000 ...
for example:printf("File type: ");switch (sb.st_mode & S_IFMT) { case S_IFBLK: printf("block device\n"); break;case S_IFCHR: printf("character device\n"); break;case S_IFDIR: printf("directory\n"); break;case S_IFIFO: printf("FIFO/pipe\n"); ...
第一种是掩码的方式。 S_IFMT 0170000 bit mask for the file type bit fields S_IFSOCK 0140000 socket S_IFLNK 0120000 symbolic link 符号链接 S_IFREG 0100000 regular file 普通文件 S_IFBLK 0060000 block device 块设备 S_IFDIR 0040000 directory 目录 S_IFCHR 0020000 character device 字符设备 S_I...
switch(buf.st_mode & S_IFMT)//判断文件类型 { case S_IFSOCK:printf("s ");break;//套接字 case S_IFLNK: printf("l ");break;//链接 case S_IFREG: printf("- ");break;//普通文件 case S_IFBLK: printf("b ");break;//块设备文件 ...
S_IFCHR 0020000 character device S_IFIFO 0010000 FIFO 文件访问权限获得:利用struct stat中得st_mode字段与S_IFMT进行与运算:mode&S_IFMT,然后将得到的结果与下列的常量比较,相等就是 S_IFMT 0170000 bit mask for the file type bit fields S_ISUID 0004000 set UID bit ...
switch (mode & S_IFMT)//确定第一位文件类型 { case S_IFSOCK: perm[0] = 's'; break; case S_IFLNK: perm[0] = 'l'; break; case S_IFREG: perm[0] = '-'; break; case S_IFBLK: perm[0] = 'b'; break; case S_IFDIR: ...
#define S_IFREG 0100000 #define S_IFBLK 0060000 #define S_IFDIR 0040000 #define S_IFCHR 0020000 #define S_IFIFO 0010000 #define S_ISUID 0004000 #define S_ISGID 0002000 #define S_ISVTX 0001000 #define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) ...
S_IFREG:文件是一个普通文件(REG即使regular啦) S_IFLNK:文件是一个符号链接 其他模式标志包括: S_ISUID:文件设置了SUID位 S_ISGID:文件设置了SGID位 S_ISVTX:文件设置了sticky位 用于解释st_mode标志的掩码包括: S_IFMT:文件类型 S_IRWXU:属主的读/写/执行权限,可以分成S_IXUSR, S_IRUSR, S_IWUSR ...
S_IFMT 0170000 文件类型的位遮罩 S_IFSOCK 0140000 scoket S_IFLNK 0120000 符号连接 S_IFREG 0100000 一般文件 S_IFBLK 0060000 区块装置 S_IFDIR 0040000 目录 S_IFCHR 0020000 字符装置 S_IFIFO 0010000 先进先出 S_ISUID 04000 文件的(setuser-idonexecution)位 ...