Profifrage: Symbolischer Link



  • Hallo zusammen!

    Laut den FAQ (http://www.c-plusplus.net/forum/viewtopic.php?t=39523) diese Forums gilt:

    int stat ( const char *PathName, struct stat *Buffer );

    [...] Handelt es sich bei der unter
    'PathName' spezifizierten Datei um einen symbolischen Link, so werden
    die Attribute der Datei, auf die der symbolische Link zeigt, in die
    Strukturvariable 'Buffer' geschrieben.

    Wie finde ich denn raus, ob 'PathName' ein symbolsicher Link ist?? Denn wenn ich erst über

    if(S_ISLNK(Buffer->st_mode)) != 0)
    

    nachsehe, stehen ja in 'Buffer' schon die Werte derjenigen Datei drin, auf die 'PathName' zeigt. Die IF Abfrage liefert bei mir also immer FALSE.

    Hat jemand ne Idee?
    Die verzweifelte Lis



  • Morgen,

    die lstat-Funktion folgt der Datei nicht, wenn es sich um einen symbolischen Link
    handelt. Statt dessen liefert diese Funktion in 'Buffer' dann die Informationen
    ueber den Link selbst. Ansonsten verhaelt sich die Funktion wie die stat
    Funktion.

    mfg
    cu



  • Hi virtuell Realistica, vielen dank für deine morgentliche Antwort 😉
    Kannst du dir vorstellen, warum dann meine if-Abfrage immer fehlschlägt? Wenn ich z.B. nach "Socket" abfrage, bekomme ich die richtige Antwort, nur bei "symblischen Links" nicht 😞

    Grüsse, Lis



  • Lis83 schrieb:

    Hi virtuell Realistica, vielen dank für deine morgentliche Antwort 😉
    Kannst du dir vorstellen, warum dann meine if-Abfrage immer fehlschlägt? Wenn ich z.B. nach "Socket" abfrage, bekomme ich die richtige Antwort, nur bei "symblischen Links" nicht 😞

    Grüsse, Lis

    Die stat-Funktion folgt dem symbolischen Link zur Datei und liefert dir deren
    Attribute. Bei dieser Datei handelt es sich allerdings um keinen symbolischen
    Link.

    mfg
    v R


Anmelden zum Antworten