Bonjour,
J'aurais besoin d'implémenter la commande bash who en C toujours sous Linux. Je ne trouve aucune doc la dessus.
Je m'explique. J'ai un serveur qui tourne sur ma machine Linux. Un client se connecte sur ma machine avec comme argument un nom de login. Le serveur prend cet argument et fait une sorte de "who | grep $1" où $1 est donc argv[1].
J'ai bien essayé de faire avec la fonction system() et sprintf pour créer la commande mais j'ai une erreur de segmentation. Je pense que ca vient des caractères de fin de lignes.
Voici le bout de code qui fait cela :
Pouvez-vous m'aider ?
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 printf("***** Nouveau Client *****\n"); if( (size_buffer = recv(sock_client, buffer, sizeof(buffer)-1, 0)) == -1 ){ perror("***** Erreur recv *****"); exit(1); } buffer[size_buffer] = '\0'; printf("Nom d'utilisateur recu : %s\n", buffer); sprintf(commande,"who | grep %s", buffer); system(commande);
Merci par avance
carnibal
Partager