Article View: es.comp.os.linux.programacion
Article #11656hijos y padres con DDD
From: mmm876
Date: Fri, 26 Oct 2001 05:11
Date: Fri, 26 Oct 2001 05:11
106 lines
3521 bytes
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-mailShow 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/)