我必须编写一个返回文件类型的 char
类型的函数。我得到了使用 mode_t
的线索,但我真的不知道该怎么做。
我一直在搜索,我看到了其他语言的答案,但没有看到 C 语言的答案。
输出应该是一个char
,表示文件类型。
关于如何做的任何线索?我应该使用它吗?
最佳答案
也许这有帮助,它应该有效。
char FileType (mode_t m) {
switch (m & S_IFMT) { //bitwise AND to determine file type
case S_IFSOCK: return 's'; //socket
case S_IFLNK: return 'l'; //symbolic link
case S_IFREG: return '-'; //regular file
case S_IFBLK: return 'b'; //block device
case S_IFDIR: return 'd'; //directory
case S_IFCHR: return 'c'; //char device
case S_IFIFO: return 'p'; //pipe
default: return '?'; //unknown
}
}
S_IFMT
是文件类型的位掩码(参见 man stat)。
关于c - 如何知道文件的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56212434/