domingo, 25 de julio de 2010

Matar Procesos

Un ejemplo en C de como matar procesos usando para ello la llamada al sistema int system(const char *string); que permite la ejecucion de una orden del interprete de comandos (shell).
Para mas informacion sobre esta funcion en su manual " man system " o si quiere este manual en castellano " man -L es system ".

/********matar_proceso.c********/
#include < stdio.h >
#include < string.h >
#include < stdlib.h >

int main(int argc, char **argv)
{
char *tmpStr;
int i,len,lenB;
char *Kill="kill -9 ";
char *killtotal=NULL;

for (i = 0; i < argc; i++)
{
tmpStr = argv[i];
if ( (strcmp(tmpStr,"-h")==0)||(strcmp(tmpStr,"--help")==0) ||\
(strcmp(tmpStr,"--usage")==0)||(strcmp(tmpStr,"-help")==0) || argc==1)
{
printf("\n");
printf("Usar: matar_proceso --pid IDPROCESO \n");
printf(" --help\n");
printf(" --version Version\n");
printf(" --pid\n");
printf("\n");
exit(0);
}

if((strcmp(tmpStr,"--pid")==0))
{
len=strlen(argv[i+1]);
lenB=strlen(Kill);
killtotal=(char*)malloc(len+lenB);
memset(killtotal,'\0',(len+lenB));
strcpy(killtotal,Kill);
strcat(killtotal,argv[i+1]);
}
if((strcmp(tmpStr,"--version")==0))
{
printf("0.1\n");
exit(0);
}
}
if(killtotal!=NULL)
{
printf("Matando el proceso --> %s\n",killtotal);
system(killtotal);
free(killtotal);
}
return 1;
}


/********************/
Compilacion:
gcc -Wall -O2 -o matar_proceso matar_proceso.c

No hay comentarios:

Publicar un comentario