Как с помощью stat () определить, является ли файл символической ссылкой?

Я в основном должен написать клон команды UNIX ls для класса, и у меня почти все работает. Кажется, я не могу понять, как это сделать, проверить, является ли файл символической ссылкой или нет. Отчеловек страница для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-ссылку ...

Кто-нибудь может определить, что я могу делать не так? Спасибо за помощь!