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

From: "Magnvs -- Carles Querol" <magnvsctv(at)hotmail(dot)com>
To: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: [Pgsql-ayuda] Problemas con función en C
Date: 2004-01-23 17:50:57
Message-ID: Law12-F124hdbRMy6wG0003bf36@hotmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos,

He escrito una pequeña función en C que me permita ser invocada por un
trigger para que, dadas unas ciertas condiciones, ejecute un programa. La
idea básica es que el trigger llame a la función, la cual tiene dos
parámetros, una para el nombre del archivo a ejecutar y otra para los
parámetros para este ejecutable, como por ejemplo:

CridarExec ('/bin/touch','hola.txt')

lo cual llamará al programa touch para generar un archivo con el nombre
hola.txt. El código de la función és el siguiente:

1 #include "postgres.h"
2 #include "fmgr.h"
3 #include <unistd.h>
4
5 PG_FUNCTION_INFO_V1(CridarExec);
6
7
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:

cridarexec
-----------
-1
(1 row)

He comprovado que la función execve devuelve -1 cuando falla la ejecución
del programa que se quiere ejecutar, pero en principio todo está bien...

Pueden echarme una mano?

gracias por adelantado.

Carles Querol
magnvsctv(at)hotmail(dot)com
carquesa(at)eui(dot)upv(dot)es

Linux Registered User #299843

_________________________________________________________________
Una mejor experiencia en Internet. Prueba gratis dos meses MSN 8.
http://join.msn.com/?pgmarket=es-es&XAPID=1577&DI=1055

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Manuel Sugawara 2004-01-23 18:14:16 Re: [Pgsql-ayuda] Problemas con función en C
Previous Message Martín Marqués 2004-01-23 17:47:41 Re: [Pgsql-ayuda] postmaster(FAILED)