Мне в основном нужно написать клон команды UNIX ls для класса, и у меня почти все работает.Кажется, я не могу понять, как это сделать, проверить, является ли файл символической ссылкой или нет.На странице man для stat()
я вижу, что определено значение mode_t
, S_IFLNK
.
. Вот как я пытаюсь проверить, является ли файлсимволическая ссылка, без удачи (заметьте, stbuf - это буфер, в который stat()
вернул данные инода):
switch(stbuf.st_mode & S_IFMT){
case S_IFLNK:
printf("this is a link\n");
break;
case S_IFREG:
printf("this is not a link\n");
break;
}
Мой код ВСЕГДА печатает this is not a link
, даже если он есть, и я знаю,для факта, что указанный файл является символической ссылкой, так как фактическая команда ls говорит так, плюс я создал sym-ссылку ...
Может кто-нибудь определить, что я могу делать неправильно?Спасибо за помощь!