Wie bestimmen Sie mit stat (), ob eine Datei ein symbolischer Link ist?

Ich muss im Grunde genommen einen Klon des UNIX-Befehls ls für eine Klasse schreiben, und ich habe fast alles zum Laufen. Eine Sache, die ich anscheinend nicht herausfinden kann, ist zu überprüfen, ob eine Datei eine symbolische Verknüpfung ist oder nicht. Von demMan Seite fürstat(), Ich sehe, dass es ein @ gimode_t Wert definiert,S_IFLNK.

Dies ist, wie ich versuche, zu überprüfen, ob eine Datei ein Sym-Link ist, ohne Glück (beachten Sie, stbuf ist der Puffer, derstat() gab die Inode-Daten zurück in):

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;
}

Mein Code druckt IMMERthis is not a link selbst wenn ja, und ich weiß, dass die besagte Datei eine symbolische Verknüpfung ist, da der eigentliche ls-Befehl dies sagt, und ich habe die sym-Verknüpfung erstellt ...

ann jemand erkennen, was ich falsch mache? Danke für die Hilfe

Antworten auf die Frage(1)

Ihre Antwort auf die Frage