Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    129

    [C-prog. di sistema]verifica link simbolico che punta a directory

    salve come posso verificare che un link simbolico punti ad una directory
    qui posto la parte di codice che stavo scrivendo

    codice:
    while((filedir=readdir(dir1))!= NULL ){ //scorro la directory
    
    lstat(filedir->d_name,&infofile); //ottengo l info sul tipo
    
    if(S_ISLNK(infofile.st_mode)){ //se è un link simbolico verifico se punta ad una directory
    
     n= readlink(filedir->d_name,link_contenuto, sizeof(link_contenuto)-1); //leggo il link
    grazie per le risposte

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    129
    ci ho riflettuto poi
    ho usato stat passandogli link_contenuto è testando il risultato con S_ISDIR
    penso sia giusto cosi

    qualcuno puo confermare che va bene cosi? grazie
    Ultima modifica di namelessg; 08-01-2014 a 14:13

  3. #3
    Le specifiche POSIX dicono che
    For symbolic links, the st_mode member shall contain meaningful information, which can be used with the file type macros described below, that take a mode argument. The st_size member shall contain the length, in bytes, of the pathname contained in the symbolic link. File mode bits and the contents of the remaining members of the stat structure are unspecified. The value returned in the st_size field shall be the length of the contents of the symbolic link, and shall not count a trailing null if one is present.
    Per cui credo che per scrivere un'applicazione portabile tu debba necessariamente fare lo stat (eventualmente ricorsivamente) del percorso a cui punta il link simbolico e verificare lì se effettivamente si tratta di un file o una directory.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    129
    mi sa che non ho capito bene la differenza tra lstat e stat

    stat puo essere usata con i link simbolici ? ed in questo caso in st_mode trovo il tipo del link o del file a cui punta?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.