在Linux中我们有'模式'对于每个文件/文件夹
如果我们这样做:
struct stat buf;
fstat("file_or_folder_name", &buf);
然后fstat函数将用大量信息填充buf,包括st_mode;
我知道这个st_mode包含有关权限和文件类型的信息(告诉它是文件还是文件夹)
所以我想知道如果我必须从头开始生成/制作/烹饪st_mode,我怎样才能确保它会告诉它#s; 一个文件和其他时间它会告诉它是一个文件夹?我将通过这样做来知道:S_ISDIR(buf.st_mode)
例如:
mode_t my_file_mode = S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH;
但这仅说明了许可。 我想让它告诉文件类型。
此外,我还要填写其他成员:struct stat 那么我可以为st_dev和st_ino等分配哪些数据呢?
实际上该文件不存在于磁盘上,我将从云中读取对象,我将告诉调用者它是文件还是文件夹以及其他信息。
答案 0 :(得分:1)
我认为您正在寻找S_IFMT
它在mode_t中可用。
预定义值为:
S_IFBLK Block special.
S_IFCHR Character special.
S_IFIFO FIFO special.
S_IFREG Regular.
S_IFDIR Directory.
S_IFLNK Symbolic link.
S_IFSOCK Socket.