🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #11656

hijos y padres con DDD

#11656
From: mmm876
Date: Fri, 26 Oct 2001 05:11
106 lines
3521 bytes
Hola compa�eros.Tengo una duda con ddd 3.3.1

tengo un programa en c que crea un proceso hijo.Pues bien mi problema esta 
en 
que no se como poner un break point en el codigo que ejecuta el hijo y que 
se 
pare en este.Porque aunque ponga el breakpoint no se para porque solo 
ejecuta 
el  padre.

El codigo del programa es:

#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>//standard symbolic constants and types
#include <signal.h>//definen constantes simbolicas para manejo de se�ales 
entre
#include <errno.h>//define las constantes q nos dan los numeros de los 
errores
                    //del sistema



void do_echo(int);


extern int errno;

void do_echo(int fd){
char buf[4096];

int cc,org,faltan,cc2;

while (cc=read(fd,buf,sizeof(buf))){
if (cc<0){
perror("leyendo");
exit(6);
}
printf("datos recibidos:%s\n",buf);
org=0; ----------------------------------Aqui el break point------------->
faltan=cc;//los q tengo q mandar
while (faltan){
if ((cc2=write(fd,&buf[org],faltan))<0){
perror("fallo al escribir");
exit(7);
}
org+=cc2;
faltan-=cc2;
}
}
close(fd);
}

int main(){
struct sockaddr_in sin,fsin;
int s,ssock,alen;

sin.sin_family=AF_INET;
sin.sin_addr.s_addr=htonl(INADDR_ANY);
sin.sin_port=htons(1792);

if ((s=socket(PF_INET,SOCK_STREAM,0))<0){
    perror("creando el socke");
    exit(1);
}

if (bind(s,(struct sockaddr *)&sin,sizeof(sin))<0){
    perror("no se puede asignar la direccion");
    exit(2);
}
if (listen(s,5)<0){
    perror("no puedo poner el cocket en modo escucha");
    exit(3);
}

signal(SIGCHLD,SIG_IGN);//esto es para q al morir el proceso padre los 
hijos 
no queden como zombies

while (1){
    //em el accept creo un nuevo socket con su correspondiente struct 
sockaddr
    //q sera la direcion del socket remota
    alen=sizeof(fsin);
    if ((ssock=accept(s,(struct sockaddr *)&fsin,&alen))<0){
        if (errno==EINTR) continue;
        else {
            perror("fallo en el accept");
            exit(4);
        }
    }
    switch (fork()){
        case -1:perror("no puedo crear el hijo");exit(5);
        case 0://proceso hijo
            close(s);
            do_echo(ssock);
            break;
        default:
            close(ssock);
            break;
    }
}
}
Technical Details
Message-ID: <1004051423.648206@seux119>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!194.42.224.136!diablo.netcom.net.uk!netcom.net.uk!news-hub.cableinet.net!blueyonder!btnet-peer!btnet!newsfeed.bt.es!news.bt.es!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,40b1bf1813232053,start
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2001-10-25 16:11:46 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!194.42.224.136!diablo.netcom.net.uk!netcom.net.uk!news-hub.cableinet.net!blueyonder!btnet-peer!btnet!newsfeed.bt.es!news.bt.es!not-for-mail
From: mmm876 <dsadas@fsdfsdfa.dfsd>
Newsgroups: es.comp.os.linux.programacion
Subject: hijos y padres con DDD
Date: Fri, 26 Oct 2001 01:11:52 -0400
Organization: Supercable Andalucia, S.A.
Lines: 106
Message-ID: <1004051423.648206@seux119>
NNTP-Posting-Host: 212.79.128.146
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8Bit
X-Trace: titan.bt.es 1004051083 29530 212.79.128.146 (25 Oct 2001 23:04:43 GMT)
X-Complaints-To: abuse@bt.es
NNTP-Posting-Date: 25 Oct 2001 23:04:43 GMT
User-Agent: KNode/0.4
Cache-Post-Path: seux119!unknown@cliente-217216003237.cm128.alnpa.supercable.es
X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)