Article View: es.comp.os.linux.programacion
Article #13972Servidor.Compartir una variable entre hijo y padre.
From: Josep Ramon
Date: Tue, 26 Dec 2000 18:52
Date: Tue, 26 Dec 2000 18:52
47 lines
2406 bytes
2406 bytes
Hola a todos.
estoy haciendo un programa servidor, y necesito compartir una variable entre el
padre y n proceso hijo. El programa tiene una pinta asĂ:
...
main(){
...
shmget(...); //Creo el segmento de memoria compartida
ptr=shmat(...);
shmctl(...);
...
socket(...); //Creo el socket y demás cosas
bind(...);
...
i=1;
while(1){ //Bucle de servicio
...
ptr[i]=accept(...); //Obtengo el descriptor de cada cliente
ptr[0]=i; //Tengo el nÂş de clientes conectados
i++;
...
fork(){
...
shmget(...);
ptr=shmat(...);
shmctl(...);
...
for(j=1;j<=ptr[0];j++) //Un bucle porqué enviamos lo mismo a todos
write(ptr[j],datos,strlen(datos)); //Escrivo los datos a enviar
...
} //Final del fork
...
} Final del programa
El problema es que cuando me escribe en el hijo, solo manda datos al primer
cliente que se conecta, el cual tiene como descriptor = 4 (que le da el
accept()).
A los otros clientes que se conectan (con descriptores = {5,6,7,...}) no les
manda nada de nada. No sé si el problema es que se tiene que poner un semáforo.
Lo que pasa es que no sé como se hacen.
Bueno, haber si alguien sabe como solucionarlo y gracias.
Technical Details
Message-ID:
<977855016.1208025462@news.teleline.es>Path:
arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!216.227.56.88.MISMATCH!telocity-west!TELOCITY!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!nntp.news.xara.net!xara.net!gxn.net!easynet-uk!easynet.net!news.rediris.es!newsfeed.mad.ttd.net!telenews.teleline.es!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,530151add8193e08,start X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2000-12-26 10:48:27 PST Path: arc1-ca.pugleaf.net!supernews.google.com!sn-xit-02!supernews.com!216.227.56.88.MISMATCH!telocity-west!TELOCITY!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!nntp.news.xara.net!xara.net!gxn.net!easynet-uk!easynet.net!news.rediris.es!newsfeed.mad.ttd.net!telenews.teleline.es!not-for-mail X-Newsreader: kexpress 0.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Message-ID: <977855016.1208025462@news.teleline.es> Newsgroups: es.comp.os.linux.programacion From: Josep Ramon <jrbenet@teleline.es> Subject: Servidor.Compartir una variable entre hijo y padre. Content-Transfer-Encoding: quoted-printable Lines: 47 Date: Tue, 26 Dec 2000 18:52:35 GMT NNTP-Posting-Host: 62.82.4.56 X-Complaints-To: newsmaster@company.com X-Trace: telenews.teleline.es 977856755 62.82.4.56 (Tue, 26 Dec 2000 19:52:35 MET) NNTP-Posting-Date: Tue, 26 Dec 2000 19:52:35 MET Organization: Typhoon Authentication Testing Club