Article View: es.comp.os.linux.programacion
Article #1835Re: Pasar estructura de datos dinámica a otro proceso
From: Carlos
Date: Sun, 31 Jul 2005 22:36
Date: Sun, 31 Jul 2005 22:36
38 lines
2456 bytes
2456 bytes
David Serrano (Hue-Bond) wrote: > Buenas. > > Tengo un programita en C con varias estructuras de datos, la mayoría son > estáticas pero tengo un par de ellas que son dinámicas (que todavía no he > implementado pero creo que haré con un array de estructuras). Quiero ¿Un array de punteros a estructuras? > pasarlas todas a otro proceso mediante algún mecanismo de IPC como memoria > compartida o sockets. > > Con las estáticas es sencillo: > > memcpy (puntero_a_memoria_compartida, &estruct, sizeof (estruct)); > > Mi problema es que no puedo hacer eso con un puntero (el que apunta a la > estructura dinámica) porque el tercer parámetro sería sizeof(puntero) y > entonces no copiaría mucho, que digamos. ¿Cómo puedo hacerlo? memcpy(p_a_m_c, p, sizeof(*p)) o memcpy(p_a_m_c, p, sizeof(struct el_tipo)) > Además, el otro proceso debe saber cuántos miembros tiene el array, así que > debo pasarle el número aparte como un int. Así, la memoria compartida > quedaría de esta forma: > > <datos estáticos><núm. de dinámicos><dinámico 1><dinámico 2>..<dinámico N> > > Esto me parece un poco chapucilla... ¿hay alguna otra forma? No sé por qué te parece chapucilla... es un protocolo tan bueno como cualquier otro. Lo chapucilla sería no mantener las funciones que leen y escriben en el mismo archivo para que no queden desincronizados los cambios, y esas cosas, pero como protocolo, si no se necesita más, ¿para qué hacerlo más complicado? Saludos.
Technical Details
Message-ID:
<dcjjbk$dp8$1@domitilla.aioe.org>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!news.newsland.it!ilaria.aioe.org!aioe.org!not-for-mailReferences:
<slrndeqj87.k49.responder_solo_en_el_grupo@genus.hue-bond.info>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,fbca0e4d84b66719 X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,UTF8 Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!news.newsland.it!ilaria.aioe.org!aioe.org!not-for-mail From: Carlos <angus@quovadis.com.ar> Newsgroups: es.comp.os.linux.programacion Subject: Re: Pasar estructura de datos dinámica a otro proceso Date: Mon, 01 Aug 2005 00:36:37 +0200 Organization: Aioe.org NNTP Server Lines: 38 Message-ID: <dcjjbk$dp8$1@domitilla.aioe.org> References: <slrndeqj87.k49.responder_solo_en_el_grupo@genus.hue-bond.info> NNTP-Posting-Host: puq3HDGyMZXR3pxeUD5GuA.domitilla.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Complaints-To: abuse@aioe.org NNTP-Posting-Date: Sun, 31 Jul 2005 22:29:08 +0000 (UTC) User-Agent: Mozilla Thunderbird 0.8 (X11/20041012)