[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)