Como matar procesos en LINUX utilizando C

Dudas sobre los distintos compiladores C/C++ en Linux
Responder
Mensaje
Autor
darkman87
Mensajes: 4
Registrado: 30/10/2008 11:56 am
Ubicación: Costa Rica

Como matar procesos en LINUX utilizando C

#1 Mensaje por darkman87 » 30/10/2008 12:05 pm

El codigo para eliminar un proceso consiste en hacer la siguiente llamada desde la consola (Kill xxx*) (*xxx numero de proceso), en C seria utilizar el system("Kill xxx"), pero como le paso la variable xxx (entero) al system? es que el +, "," u otras alternativas "logicas" no funcionan.
La civilización no suprime la barbarie, la perfecciona.

Avatar de Usuario
rir3760
Mensajes: 7553
Registrado: 01/10/2004 11:00 pm
Ubicación: Mexico

#2 Mensaje por rir3760 » 31/10/2008 8:15 am

Esa "solucion" no funciona porque el lenguaje C no permite la concatenacion de cadenas mediante el operador '+'.

Tienes dos opciones, una es construir la cadena en base a strcpy, strcat y similares. La otra es construirla en base a la funcion sprintf, mas o menos asi:

Código: Seleccionar todo

char comando[algun_valor_aceptable];
int pid;

pid = 123; /* SOLO un ejemplo*/

/* ... */

sprintf(comando, "kill %d\n", pid);
/*
** comando ahora contiene la cadena:
** "kill 123\n"
*/

/* ... etc ... */
Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

darkman87
Mensajes: 4
Registrado: 30/10/2008 11:56 am
Ubicación: Costa Rica

Gracias...

#3 Mensaje por darkman87 » 31/10/2008 4:15 pm

OK, muchas gracias por la ayuda...
La civilización no suprime la barbarie, la perfecciona.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados