/* Escriba un programa de nombre existe que reciba como argumento el
 * PID de un proceso y que le devuelva al intérprete de órdenes el 
 * valor 0 si el proceso existe, o el valor 1 si el proceso no existe. 
 *  
 * El programa existe se ha diseñado con esta funcionalidad para poder 
 * utilizarlo en instrucciones condicionales que formen parte de Shells
 * Scripts, por lo tanto, realice el programa Shell Script que permita 
 * probar al programa, considerando que existe una determinada cantidad 
 * de procesos que están corriendo en la máquina en un momento 
 * determinado.
 */



//NOTA: Usar junto con shell_existe.txt

#include <stdio.h>
#include <string.h>
#include <stdlib.h> 

int main (int argc, char *argv[])
    {
    int  salida;       /* Salida del comando */
    char comando[100]; /* Comando a ejecutar */
    int pid;
        
system("clear");
printf("*********************************************************\n");
printf("Programa que verifica la existencia de un proceso.\n");


if(argc!=2)
    {
    printf("Uso: %s PID\n\n",argv[0]);
    exit(2); //2 significa ejecución errónea
    }

pid=atoi(argv[1]);
sprintf(comando, "ps %d", pid);
salida = system (comando);
if(salida==0)
    printf("\nEl proceso %d existe\n",pid);
if(salida ==256)
    {
    printf("\nEl proceso %d no existe\n",pid);
    salida=1;
    }
printf("*********************************************************\n\n");

exit(salida);
}