UTNianos

Versión completa: Uso de Exec
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gente, estaba intentando hacer andar el comando execv() que sirve teoricamente para ejecutar un .sh (con fork y toda la bola lo estoy probando) pero no llega a ejecutar me tira error, alguno tiene un ejemplo concreto andando simple?
No se si la estoy mankeando en el path, o el .sh tiene que tener alguna estructura en especial, o si los parametros que le paso por argv tienen que ser algunos en especiales, saludos!!!
Gracias!!
¿Tenes permisos de ejecucion para el .sh que estas tratando de ejecutar?
por ahi mankie con eso, o sea al archivo toque en propiedades y en la pestaña permisos y le puse que se pueda ejecutar como programa, alcanza con eso? o hay que hacer algo mas con sudo?
Mi ejemplo es asi:

int ret;
ret=execl("/home/utnso/prueba.sh","-1",(char *) 0);
if(ret==-1)
printf("error");

(obvio tiene el main y toda la bola, quizas lo estoy usando mal que decis? o quizas ese tema de los permisos)
Saludos y gracias!!!
Me parece que estas usando mal execl, pero no se en donde. Yo use el siguiente codigo y funciona:



#include <stdio.h>
#include <unistd.h>

int main(void)
{
char* path = "/home/federico/script.sh";
execl(path,"-1",(char *) 0);
}



De mas esta decir que me comi la validacion de errores para hacerlo simple. Al principio me fallaba, pero una vez que me di permisos de ejecucion al .sh me funciono.
estás seguro que no te devuelve -1? que tiene adentro tu "script.sh"?
Saludos!!
Imprime un hola mundo en pantalla.
Y si, ejecuto asi que estoy seguro.
Comprobalo por vos mismo si no me crees. El script es este:


#!/bin/bash
STRING="Hello World"
echo $STRING



Saludos!
URLs de referencia