Pagina 1 di 1

programmazione linux (utmp)

Inviato: mer 6 ott 2004, 20:52
da null
Salve ragazzi, qualcuno saprebbe dirmi come mai questo programma non funziona, sto impazzando;
<BR>#include <stdio.h>
<BR>#include <utmp.h>
<BR>#include <errno.h>
<BR>int main(){
<BR> struct utmp *u;
<BR> setutent();
<BR> u = getutent();
<BR> printf("%s\n",u->ut_user);
<BR> endutent();
<BR> printf("%s\n",strerror(errno));
<BR> return 0;
<BR>}
<BR>
<BR>Come errore di "errno" mi dice "No such file or directory". Qualcuno potrebbe aiutarmi?
<BR>Grazie<br>

programmazione linux (utmp)

Inviato: mer 6 ott 2004, 21:13
da useless
nah, credo che ci sia un errore di concezione nel tuo programma: tu la printf dell´errno la fai sempre, anche quando getutent() non fallisce, e quindi non imposta errno, che xò un valore lo deve avere, e quindi ti stampa un errore insensato.
<BR>infatti getutent() ritorna NULL quando fallisce, e se fai così:
<BR> if ((u = getutent()) != NULL)
<BR> printf("%s\n",u->ut_user);
<BR> else
<BR> perror ("boh: ");
<BR>vedi che l´errore non lo stampa (ho sostituito il tuo printf con perror ma è la stessa roba). in compenso stampa una riga vuota, probabilmente devi usare getutline() o similia prima, vedi man getutent.<br>

programmazione linux (utmp)

Inviato: mer 6 ott 2004, 21:54
da null
Ti spiego meglio il problema, io vorrei visualizzare il parametro ut_user della struttura utmp, per vedere l´utente loggato. potresti scrivermi un programmino in C che fa questo, in modo da confrontarlo con il mio?<br>