[eside-ghost] Sopitas con programa en C

Ramón Echávarri Escribano eside-ghost@deusto.es
Sat, 2 Aug 2003 00:38:04 +0200


Hola a todos,
aprovecho para presentarme: soy Ramón y conocí el eghost porque Josean me
comentó que ibais a organizar los cursos de julio.  Aproveche para apuntarme
a varios de ellos y al final pude hacer 2 (Iniciación en Linux y
Programación a bajo nivel).  Me gustaron mucho, así que me apunté a la lista
para daros la brasa en cuanto profundice un poco más en ambos temas.
Pues eso, que llevo ya unos días "escuchando" y ya me tocaba dar señales de
vida.

Josean, le he echado un vistazo al programa.  Igual lo que te digo es una
tontería, pero bueno, por mirarlo no te va a pasar nada ;-):
strcspn te devuelve el índice desde el puntero que le pasas.  Ya le has
pasado el inicio de host, así que no hace falta que le restes pos a posFin.
Imagino que la resta da negativo y te falla al hacer el malloc, por eso al
intentar copiar sobre el puntero que devuelve malloc te da error.
¿puede ser o he dicho alguna barbaridad?

Bueno, un saludo a todos
Ramón

PD: ¿Ayudante de producción? jejeje

----- Original Message -----
From: "Jose Antonio Fernandes Salvador" <varelse@euskalnet.net>
To: <eside-ghost@deusto.es>
Sent: Friday, August 01, 2003 10:55 AM
Subject: [eside-ghost] Sopitas con programa en C


Sopitas con C

Hace como 7 años que no programo en c y tengo que hacer un programa que
recoge de un pipe los mensages enviados desde syslog y los almacena en una
bd. Llevo un par de días intentando partir el mensaje que recibo en sus 4
partes:
Fecha, host, aplicacion y mensaje. Pero he llegado a un punto que no se
seguir. Estoi un poco desesperado por que el programita debería ser una
tontería y consigo terminarlo.

A ver si alguien le pilla el error:

Compila bien. El programa casca con un: Segmentation fault. Linea 123.
Justo despues de sacar el mensaje "Punto 2 bis".

Básicamente lo que estoy intentado en ese bucle es detectar un salto de
linea que seria el fin de una entrada syslog. Despues intento separar las
distintas partes del mensaje para almacenarlo despues en una BD postgresql.

Por si alguien lo quiere probar:
Crear el pipe antes de que se arranque syslog:
Crear un script en /etc/init.d con:
mkfifo /tmp/myLog.pipe

Y hacer un link /etc/rc2.d/S05logtodb con:
ln -s /etc/init.d/logtdb /etc/rc2.d/S05logtodb


Que syslog escriba en el pipe:
Añadir la linea: *.* ¦/tmp/myLog.pipe






Jose Antonio Fernandes Salvador varelse@euskalnet.net

Ayudante de producción

LA HACERIA arte eszenikoak
Ribera de Deusto 43
48014 Bilbao
Tel. y FAX: 94 4470465
Móvil: 655 701442/1