From: | Edwin Quijada <listas_quijada(at)hotmail(dot)com> |
---|---|
To: | <r(dot)m(dot)guerrero(at)usit(dot)uio(dot)no> |
Cc: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Ayuda con funcion en C |
Date: | 2009-08-28 16:43:21 |
Message-ID: | BLU137-W58D5014CB9DD01C4A8639E3F50@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> Date: Fri, 28 Aug 2009 18:28:48 +0200
> From: r(dot)m(dot)guerrero(at)usit(dot)uio(dot)no
> To: listas_quijada(at)hotmail(dot)com
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] Ayuda con funcion en C
>
> Edwin Quijada wrote:
>
> > ERROR: invalid memory alloc request size 4294967293
> >
> >
> [......]
> >
> > text *new_t = (text *) palloc(LENMAX);
> >
> [......]
> >
> > memcpy(VARDATA(new_t),buf,strlen(buf));
>
> Hola
>
> Asignas/reservas el espacio a usar por new_t con palloc(40) y despues
> intentas copiar los datos en buf[BUFSIZ] a este espacio.
>
> ¿Que valor tiene BUFSIZ?, probablemente mayor que 40, con lo que no
> tienes suficiente memoria asignada/reservada para copiar buf en new_t.
>
> un saludo
Hice un cambio de BUFSIZ por LENMAX para q todo estuviera de la misma manera
La funcion ahora es
Datum
pg_serverid(PG_FUNCTION_ARGS)
{
int32 arg = PG_GETARG_INT32(0);
char *cmd = "php /movil/serverkey.php";
char *arch = "/movil/serverkey.php";
char buf[LENMAX];
FILE *fp,*ptr;
text *new_t = (text *) palloc(LENMAX+1);
if ((fp = fopen(arch,"r"))==NULL) {PG_RETURN_BOOL(false);}
if ((ptr = popen(cmd, "r")) != NULL)
while (fgets(buf, LENMAX, ptr) != NULL);
(void) pclose(ptr);
memcpy(VARDATA(new_t),buf,strlen(buf));
PG_RETURN_TEXT_P(new_t);
}
*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas
*-Soporte PostgreSQL
*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*
_________________________________________________________________
From | Date | Subject | |
---|---|---|---|
Next Message | Edwin Quijada | 2009-08-28 16:49:12 | RE: Ayuda con funcion en C |
Previous Message | kernel | 2009-08-28 16:35:42 | Re: rendimiento 8.2 VS 8.3 |