[linux-l] Debian-Mirror der belug...

Oliver Bandel oliver at first.in-berlin.de
Di Okt 7 15:32:15 CEST 2003


On Tue, Oct 07, 2003 at 09:19:18AM +0200, Steffen Dettmer wrote:
> * Oliver Bandel wrote on Tue, Oct 07, 2003 at 08:19 +0200:
> > On Mon, Oct 06, 2003 at 11:21:48PM +0200, Steffen Dettmer wrote:
> > > * Peter Ross wrote on Mon, Oct 06, 2003 at 21:54 +1000:
> > [...]
> > 
> > > > Komfortabel ist es nicht, fehlertraechtig alle mal.. (wenn man
> > > > z.B. immer void * castet)
> > > 
> > > Ja, darauf läuft's bei libdl.so tatsächlich raus, nur umgekehrt
> > > :)
> > [...]
> > Nö, hat nichts mit libdl zu tun, sondern mit dem Programmierer,
> > der void* so sehr mag.
> 
> mmm... Hier der Prototyp:
> 
> /* Find the run-time address in the shared object HANDLE refers to
>    of the symbol called NAME.  */
> extern void *dlsym (void *__restrict __handle,
>             __const char *__restrict __name) __THROW;


ich weiß zwar nicht, in welchem Unterholz du das gefunden hast,
aber in meiner dlopen() und dlsym() manpages teht da was anderes:

void* dlopen( const char* filename, int flag );
void* dlsym ( void* handle, char* symbol );

Wobei dlopen() das handle zurück liefert, das bei dlsym()
gevbraucht wird.

dlsym weit man dann dem entsprechenden Funktionspointer zu,
der auf eine Funktion verweiset, die man sinnvollerweise
NICHT void* rückgeben lässt, wenn es die gesuchte Funktion
nicht auch zurückliefert.
Selbstverständlich deklariert man den benutzten Pointer so,
wie es in der Lib auch deklariert ist...

...es sei denn man liebt void* über alles, oder schaut
zu oft aus dem Fenster (besonders dann, wenn der Compiler
Warnings raus schreibt (ach so, die sind dann eh nicht
aktiviert...weil da viel zu viel zu lesen ist, was man ja
garnicht braucht...<räusper>)).



> 
> Da kommt man um's void bei der Anwendung nicht so wirklich
> rum... ;)


Ja, kommt aber auch drauf an, WO man sie einsetzt,
und wie man das handhabt.
An manchen Stelln braucht man die; aber wenn man sie
immer und überall einsetzt, DANN hat man da ein
Problem eingebaut (auch, wenn es anfangs sehr bequem ist,
weil alles "so problemlos" zuweisbar ist...


Ciao,
   Oliver




Mehr Informationen über die Mailingliste linux-l