[C con Clase] duda con write

Pogui poguijuaz en gmail.com
Lun Jun 9 17:02:31 CEST 2008


Hola lista, tengo un problema que me esta rompiendo la cabeza.
Resulta que al parecer la función write de este ejemplo hace que mi 
programa termine inesperadamente:

#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <fcntl.h>

#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <string.h>

#include "hijos.h"

int hijo(char* buffer, char caracter)
{
    int *contador,pipea[2],i=0;   
    *contador=0;   
    while(*buffer) {
        if(*buffer==caracter)
            i++;
        buffer++;
    }
    *contador=i;   
    printf("%d\n%d\n",*contador,i);   
   
    if(caracter == 'a') {
        printf("es una 'a'\n");           
        if (pipe(pipea) == -1) {
            perror ("pipe");
            exit (EXIT_FAILURE);
        }       
        /*envio de mensaje */                   
        close (pipea[0]);       
        //write (pipea[1], contador, sizeof(contador));    esta es la 
linea del problema

        printf("luego de escribir\n");           
        close (pipea[1]);                               
        /*fin de envio de mensaje */
    }
   
    return *contador;
}

lo raro es que compila perfectamente.
Alguna idea de que es lo que puede estar pasando?
Apenas el programa entra al write sobre el pipe, la ajecucuión termina 
abruptamente
:(
gracias por su atención.




Más información sobre la lista de distribución Cconclase