Bonjour,
je dois reprogrammer la commande who et je rencontre diverse probleme notamment, au niveau de la compatibilte linux(unbuntu 9.04)/unix(pc-bsd). Mais aussi des problemes
d affichage.
Probleme d affichage ubuntu
pour pouvoir recoder la fonction je parcours les fichiers utmp et wtmp(voir man).
je dois afficher le nom du user(ut_user), le nom du peripherique tty, la date et l adresse ip. mais pour l ip j arrive pas l afficher car de type int32 quel format puis-je tiliser pour l affichage?
il m est interdit d utilise atime, ctime ou tout autre fonction dans le genre pr l affichage, j ai pensee a ecrire une fonction pour ca, mais en regardant le man utmp j ai la structure struct ut_tv pour m aider mais je sais pas comment m y prendre.
je vous montre deja le code de ma fonction qui n affiche seulement que le ut_user et le ut_line(tty);
A l execution j ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 int who(char *file) { struct utmp *ut; int nb_read; int fd; int i; fd = open(file, O_RDONLY); if (fd == -1) { my_putstr("error opening file\n"); exit (-1); } i = 0; while((nb_read = read(fd, ut, sizeof(*ut))) > 0) { printf("%s %s\n", ut->ut_name, ut->ut_line); } } int main(char ac, char **av) { who("/var/run/utmp"); return(0); }
au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 reboot ~ runlevel ~ LOGIN tty5 LOGIN tty4 LOGIN tty2 LOGIN tty3 LOGIN tty6 LOGIN tty1 serialp tty7 serialp pts/0
comment parcourir mon fichier et recuperer que les utilsateur connecter comme le fait la commande who. sous pc-bsd par exple les parties LOGIN sont remplaces par un grand espace vide ensuite suivent les utlisateurs connectes avant et/ou apres les esapces.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 serialp tty7 2009-06-17 18:08 (:0) serialp pts/0 2009-06-17 20:27 (:0.0)
vos conseils, commentaires et suggestions seront les biensvenu.
desole d avoir ete long mais je ne suis qu un simple debutant.
PS: je n ai pas tellement aborde la question de pc-bsd mais il suivra peut etre apres resolution de ce pobleme mais elle debatera plus au niveau de la compatibilte systeme.
Bien a vous![]()
Partager