PDA

Visualizza la versione completa : [C] Verificare esistenza file (Linux)


}gu|do[z]{®©
09-01-2006, 11:35
Sto scrivendo un programmino poe rl'università in C con le syscall di linucx... parte del programmino prevede un demone e una console con cui comunicare con il demone....

La console appena avviata deve verificare l'esistenza del demone e se questo non esiste avviarlo.
Demone e console comunicano tramite FIFO (named pipe), creata dal demone.

Ergo: la console per sapere se il demone esiste controlla se esiste la relativa named pipe, no?

Ecco.. come lo controllo? :D C'è uno specifico errno restituito dalla open se provo ad aprire un file che non esiste, oppure c'è una funzione apposita?

:ciauz:

}gu|do[z]{®©
09-01-2006, 11:41
ok.. stampandomi l'errno con una printf ho visto che è 2... ma il nome della costante associata? qualcuno lo sa?

Vabbè.. provo ad aprirmi errno.h... qualcosa mi dice che lì troverò quel che cerco :fagiano:

:ciauz:

toraz
09-01-2006, 11:55
La costante si chiama ENOENT. :)

}gu|do[z]{®©
09-01-2006, 11:57
denghiù! non la trovavo... errno.h include altra roba ma non la definisce direttamente :dottò:

mi confermi anche che il metodo (verificare se esiste la pipe) è valido...?

grazie

:ciauz:

toraz
09-01-2006, 12:23
Per essere valido è valido, anzi, è un sistema che si usa spesso per verificare se un daemon è in esecuzione (i vari file che stanno in /var/run servono di solito a questo). Ovviamente quando il deamon termina devi cancellare la FIFO.

}gu|do[z]{®©
09-01-2006, 12:27
certo.. quello era implicito :)

Ma se il demone crashasse o per qualche motivo particolare non cancellasse la fifo?
Vabbè.. a me interessa che il prof non abbia da ridire... se altri programmi fanno così sarà la cosa migliore :)

Grazie

:ciauz:

toraz
09-01-2006, 13:32
Originariamente inviato da }gu|do[z]{®©
Ma se il demone crashasse o per qualche motivo particolare non cancellasse la fifo?

Beh... tu fai in modo che non crashi mai e hai risolto il problema. :)

Loading