У меня есть код ниже , здесь показана только его часть и я проверяю, является ли тип файла.
struct stat *buf /* just to show the type buf is*/
switch (buf.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"); break;
case S_IFLNK: printf(" symlink\n"); break;
case S_IFREG: printf(" regular file\n"); break;
case S_IFSOCK: printf(" socket\n"); break;
default: printf(" unknown?\n"); break;
}
Проблема: значение st_mode
получено, когда я выполняю printf ("\ nMode:% d \ n", buf.st_mode) ;
результат 33188.
Я тестировал свою программу с обычным типом файла и символической ссылкой. В обоих случаях вывод был «обычным файлом», т.е. случай символьной ссылки не работает, и я не понимаю, почему?