zodpovednost za uvolneni pameti po volani gethostbyname, getpwuid...

Jirka Kosina jikos na jikos.cz
Úterý Prosinec 3 00:12:30 CET 2002


On Mon, 2 Dec 2002, kratochvil jiri wrote:

> > > mpatrol a zustava mi tam neco vyset. Musim nebo nesmim tu pamet uvolnit
> > > ja.
> > funkce se pouziva ta sama struktura - tedy pokud si chcete ziskane 
> > informace pamatovat, musite si je nekam ulozit ve vlastni rezii, protoze 
> to zrovna v man pisou dokonce ze by se mela delat deep copy kvuli
> pointrum.

Hm, v me manualove strance to tedy nepisou. ;)

> Me by zajimali i dalsi funkce jako treba prave getpwuid(). Nebo mam
> predpoklat ze u vsech fci u kterych neni defaultne napsano tohle musite
> uvolnit proste uvolnovat nemusim?

Asi ano. Neni tam napsano nic -> nemuzete predpokladat, ze muzete volat 
free(). Ale uznavam, ze je to velice obskurni.

Na druhou stranu to zjistite snadno sam i bez cteni zdrojaku glibc - pokud 
dve volani teze funkce po sobe vrati stejny pointer, je to staticke, jinak 
je to dynamicke. ;)

Nicmene v dokumentaci k libc to samozrejme je:

 - Function: struct passwd * getpwuid (uid_t UID)
     This function returns a pointer to a statically-allocated structure
     containing information about the user whose user ID is UID.  This
     structure may be overwritten on subsequent calls to `getpwuid'.


-- 
JiKos.




Další informace o konferenci Linux