* Rinke, Reiner
-----Original Message----- From: Remo Behn [mailto:ray@suse.de] Sent: Montag, 28. April 2003 16:07 To: Rinke, Reiner Cc: suse-programming@suse.com Subject: Re: Shared memory - memory mapping
* Rinke, Reiner
[030428 15:15]: Hallo Experten,
ich moechte fuer Datenaustausch via shared memory einen Parser schreiben, der aus einem C header file die Definition einer Datenstruktur ausliest und fuer jedes Strukturelement seinen relativen Offset zum Beginn der Struktur ermittelt.
Dieser Job wird ja nun schon von jedem Compiler erledigt (allerdings plattform- und auch compilerabhaengig; Stichwort alignment). Er gibt es bloss nicht aus.
Gibt es (beim gcc) die Moeglichkeit, diese Informationen explizit auszugeben? Oder kennt jemand eine elegante Moeglichkeit, sich diese Offsets (und damit auch das Alignmentverhalten des Compilers) ausgeben zu lassen?
Genau dafür gibt es ein Perl-Module ==> Convert::Binary::C
Es sind Tools dabei, die du dir anschauen solltest ==> ccconfig zum Beispiel ;)
Rueckfrage(n): - Geht es auch ohne Perl ?
ja, wenn du es selber schreibst ;)
- brauche eine plattformuebergreifende Loesung
sag ich ja ==> Convert::Binary::C
- wozu gehoert ccconfig? Habe ich (bisher) nicht gefunden.
$# tar xvzf Convert-Binary-C-0.40.tar.gz
$# ls -l Convert-Binary-C-0.40/bin/
total 76
drwxr-xr-x 2 1000 users 168 Apr 22 07:02 ./
drwxr-xr-x 7 1000 users 368 Apr 22 07:02 ../
-rwxr-xr-x 1 1000 users 58799 Apr 22 06:46 ccconfig*
-rwxr-xr-x 1 1000 users 4252 Apr 22 06:46 convert.PL*
-rw-r--r-- 1 1000 users 3568 Apr 22 06:46 memmap.PL
-rwxr-xr-x 1 1000 users 2840 Apr 22 06:46 perltypes.PL*
cu
--
echo '@a=(A..Z,a..z," ");$t="a"x16;{for($x=0,$|=$n=30; $n--;){for($l=$t;
1