S_ISREG S_ISDIR 等几个常见的宏

S_ISLNK(st_mode):是否是一个连接.
S_ISREG(st_mode) :是否是一个常规文件.
S_ISDIR(st_mode) :是否是一个目录
S_ISCHR(st_mode):是否是一个字符设备.
S_ISBLK(st_mode):是否是一个块设备
S_ISFIFO(st_mode):是否 是一个FIFO文件.
S_ISSOCK(st_mode):是否是一个SOCKET文件 


man 2 stat 可以查到stat数据结构,其中的st_mode就是上面几个宏的输入参数
struct stat  {
dev_t st_dev;
ino_t st_ino;
mode_t st_mode;
nlink_t st_nlink;
uid_t st_uid;
gid_t st_gid;
dev_t st_rdev;
off_t st_size;
blksize_t st_blksize;
blkcnt_t st_blocks;
time_t st_mtime;
time_t st_ctime;
};


man 2 stat还可以查到下面的函数定义,用这个函数来获取指定文件(夹)的stat信息,然后带入上面的宏,判断文件(夹)的属性:是否是个常规文件、是否是一个目录……

int stat(const char *path, struct stat *buf)

http://blog.csdn.net/dssxk/article/details/6793370

你可能感兴趣的:(socket,宏)