[LUGA] Mit freundlicher Unterstützung von:
Linux New Media AG

Mail Thread Index


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [luga] Re: [RANT]: Uralt Standards



On Mon, 2006-11-13 at 13:51 +0100, Peter J. Holzer wrote:
> On 2006-11-13 12:49:32 +0100, Bernd Petrovitsch wrote:
[...]
> > Etwas Zukunftsicheres hätte statt "fd_set" in der "select(2)"
> > Deklaration "unsigned int *" oder "unsigned char *" genommen und die
> > Verantwortung für ausreichend große Buffer auf den Programmierer
> > abgeschoben (so wie bei vielen anderen Funktionen in C und/oder Unix).
> 
> Du wirst lachen, aber so war es früher (Ultrix, späte 80er-Jahre).

Bei solchen Deppereien ist mir nicht nach Lachen zu Mute.

> Dann ist offenbar irgendjemand auf die Idee gekommen, dass es doch viel
> schöner wäre, wenn man das hinter einen typedef und ein paar Macros
> versteckt, mit dem Ergebnis, dass ein vorher ziemlich flexibler

Die Macros kann ich auch ohne "typedef" machen (so kompliziert sind die
nicht, da braucht es nicht mal eine zusätzlichen Parameter) - einfach
FD_SETSIZE verwenden und das nur #define'n, wenn es der Programmierer
schon nicht selber gesetzt hat.

> Systemcall ziemlich unflexibel geworden ist - zumindest wenn man ihn
> "wie spezifiziert" verwendet. In Linux kann man sich seine fdsets auch
> selber in passender Größe allozieren und mit Bits befüllen - dem Kernel
> bzw. der glibc ist das wurscht. (Wie ich der Diskussion

Ja, beim select(2) Aufruf als solchem wird es der glibc auch egal sein,
daß da irgendwo ein "schönes typedef" existiert.

> http://www.openldap.org/lists/openldap-devel/200411/msg00045.html
> entnehme, macht das der OpenLDAP auch so, man muss also nur den
> recompilieren und nicht die glibc.
>
> > > Wenn der Verdacht mit dem select stimmt, dann könnte es helfen,
> > > OpenLDAP mit poll statt select zu rekompilieren, vorausgesetzt, der
> > 
> > poll(2) ist sowieso die bessere Alternative - zumal es im Linux-Kernel
> > drin sowieso nur "poll" gibt (und ohne eine Referenz liefern zu können -
> > und im glibc Source zu stochern - konvergiert select(2) zu einem
> > User-Space-Wrapper für poll(2)).
> 
> Den System-Call gibt es sicher noch. Alte System-Calls werden in Linux
> nie weggeworfen (es gibt noch einen Systemcall, den die libc2 (nicht

Ja. Aber die Embedded Ecke #define'd/patcht sowas ganz gerne raus - v.a.
wenn sie nicht mal mehr die glibc verwendet.

> glibc2) benötigt hat - plus Testcases, die sicherstellen, dass der noch
> funktioniert). Kann aber sein, dass die glibc den nicht mehr aufruft.

	Bernd
-- 
Firmix Software GmbH                   http://www.firmix.at/
mobil: +43 664 4416156                 fax: +43 1 7890849-55
          Embedded Linux Development and Services




powered by LINUX the choice of a gnu generation
linux user group austria;
Suche
Suche
Letzte Änderung:
webmaster@luga.at
September 2010