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