[Pgsql-ayuda] Problemas con función en C

Alvaro Herrera alvherre@dcc.uchile.cl
Fri, 23 Jan 2004 15:40:32 -0300


On Fri, Jan 23, 2004 at 05:50:57PM +0000, Magnvs -- Carles Querol wrote:

>    8 Datum CridarExec (PG_FUNCTION_ARGS) {
>    9         int retornat;
>   10         char *path = PG_GETARG_TEXT_P(0);
>   11         char *args = PG_GETARG_TEXT_P(1);
>   12
>   13         retornat = execve(path, &args, NULL);
>   14
>   15         PG_RETURN_INT32((int32)retornat);
>   16 }
> 
> En principio está bien, se compila como un objeto compartido 
> (CridarExec.so), la defino dentro de postgres correctamente (Function 
> created) pero, no funciona, dándome un código de error de -1:

Verifica errno() despues del execve(), eso te deberia indicar que es lo
que está fallando.  Quizas no quieras usar execve() despues de todo,
sino execv(3) o execvp(3) ...  De todas maneras supongo que args es un
arreglo a char * terminados con un 0?

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"La virtud es el justo medio entre dos defectos" (Aristóteles)