Repository 32bit  Forum
Repository 64bit  Wiki

programmazione linux (utmp)

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

programmazione linux (utmp)

Messaggioda null » mer ott 06, 2004 19:52

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>
null
Linux 2.0
Linux 2.0
 
Messaggi: 167
Iscritto il: gio lug 01, 2004 23:00

programmazione linux (utmp)

Messaggioda useless » mer ott 06, 2004 20:13

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>
Avatar utente
useless
Staff
Staff
 
Messaggi: 3896
Iscritto il: sab ott 11, 2003 23:00
Località: A place where the streets have no name

programmazione linux (utmp)

Messaggioda null » mer ott 06, 2004 20:54

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>
null
Linux 2.0
Linux 2.0
 
Messaggi: 167
Iscritto il: gio lug 01, 2004 23:00


Torna a Gnu/Linux in genere

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

cron