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;
}
}
}
--
-------
____________________________
|\ /|
| \ Manuel Martin Martin / |
| \ [EMAIL PROTECTED] / |
| \ ___________________/ |
| |
| mmm |
|____________________________|
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com
--
�Desea desuscribirse? Escriba a [EMAIL PROTECTED] con
el tema "unsubscribe".