我必须编写一个char
类型的函数,该函数返回文件的类型。我已经知道了使用mode_t
的线索,但是真的不知道该怎么做。
我一直在搜索,并且看到过其他语言的答案,但不是C语言。
预期输出为char
,指示文件类型。
关于如何做的任何线索?我应该使用任何功能吗?
答案 0 :(得分:3)
也许有帮助,它应该可以工作。
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)。