Se connecter / S'enregistrer
Votre question

[Linux/C] Commande kill

Tags :
  • linux
  • Programmation
Dernière réponse : dans Programmation
28 Décembre 2009 21:59:06

Bonsoir à tous ^^

J'aurais besoin de votre à propos d'un des exercices de mon TP à rendre!
Voici l'énoncé de l'exercice en question :

Le but de cet exercice est d'écrire la commande kill. cette commande devra prendre en premier paramètre le numéro du signal à envoyer et en deuxième paramètre le numéro du processus destinataire du signal.
On rappelle que le premier paramètre d'une commande peut être adressé par argv[1] et le deuxième par argv[2]. On vérifiera que le nombre de paramètres est correct et on retournera un message d'erreur si ce n'est pas le cas.

Alors voilà, j'ai essayé de commencer déjà lol

#include<stdio.h>
#include<string.h>
#include<signal.h>

int main(int arc,char *argv[])
{
if(argc!=3)
printf("Erreur : Le nombre de paramètres n'est pas le bon!");
else
{if(strcmp("kill",argv[0])==0)
signal(*argv[1],SIG_DFL);



Bon après je ne sais pas vraiment quoi faire, et franchement je bloque dans cet exercice, je n'arrive pas à avancer...
Un petit coup d'pouce serait le bienvenue, j'ai passé une bonne partie de l'aprème à compiler et toujours rien D:

Merci d'avance pour toute aide! ^^

Autres pages sur : linux commande kill

29 Décembre 2009 13:07:26

int main(int arc,char *argv[])
{
if(argc!=3) <---- argc non-declare vu que tu as mis dans le main "arc"
printf("Erreur : Le nombre de paramètres n'est pas le bon!" );
else
{if(strcmp("kill",argv[0])==0)
signal(*argv[1],SIG_DFL);

"cette commande devra prendre en premier paramètre le numéro du signal à envoyer"
Ca ressemble pas vraiment a la commande "kill". D'apres le man de signal :
No Nom Action par defaut Description
"9 SIGKILL terminate process kill program"
Donc si tu veux faire la commande kill, ca devrait toujours etre 9, non ?

De plus, la fonction signal attend un int en premier parametre, puis le nom de la fonction appelle.
Or, *argv[1], c'est un char ;) 
Tu as peut-etre vu dans des exemples, des choses du type : signal(SIGINT, ma_fonction). Cependant, "SIGINT" n'est pas une chaine de caractere, mais une macro definie dans signal.h (je pense) qui correspond en fait a un nombre.

Bonne chance pour la suite.
m
0
l
Contenus similaires
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS