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);

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);
}
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
 
reboot ~
runlevel ~
LOGIN tty5
LOGIN tty4
LOGIN tty2
LOGIN tty3
LOGIN tty6
LOGIN tty1
serialp tty7
serialp pts/0
au lieu de

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)
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.

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