different behaviour on fbsd and linux

Divacky Roman xdivac02 at stud.fit.vutbr.cz
Sun Feb 19 11:50:16 CET 2006


On Sun, Feb 19, 2006 at 03:59:26AM +0100, Dan Lukes wrote:
> Divacky Roman napsal/wrote, On 02/18/06 18:17:
> >    pid = fork();
> > 
> >    if (pid == 0)
> >       execl("/bin/ls", NULL);
> 
> > works differently on fbsd and on linux. on fbsd it basically ls each record in
> > ENV on linux it executes ls listing all files in cwd.
> > 
> > can someone explain me why?
> 
> 	S ohledem na nedostatecne informace se da i duvodech rozdilneho chovani 
> jen spekulovat. Opravdu me zrovna u tebe prekvapuje, ze neuvadis zadne 
> blizsi oznaceni systemu - a u Linuxu je presne uvadeni verzi jeste 
> daleko podstatnejsi nez u FreeBSD. Tedy, v tomto pripade, s ohledem na 
> to, ze execl neni funkce jadra, ale knihovny, je predevsim podstatne 
> uvest cokoliv, co dovoli jednoznacne identifikovat verzi knihovny. V 
> idelanim pripade bys pak mel uvest i to, podle jake specfikace je udajne 
> execl funkce na onom Linuxu implementovana (tezko predpokladat, ze kazdy 
> v konference o FreeBSD bude vedet jen z cisla z verze glibc podle ceho v 
> ni byla implementovana funkce execl).
> 
> 	Takze bych konstatoval jen tolik, ze neexistuje zadny duvod, aby se dve 
> funkce v ruznych knihovnach chovaly naprosto stejne jen proto, ze se 
> stejne jmenuji (ve skutecnosti nemusi delat nic ani vzdalene navzajem 
> podobneho). A to dokonce ani v pripade, ze obe o sobe tvrdi, ze jsou 
> psane podle stejne specifikace (v takovem pripade by se stejne mely 
> chovat jen v takovem pripade, ze byly spravne, v souladu se specifikaci, 
> zavolany a porovnavame jen takove vlastnosti vysledku, ktere zminena 
> norma definuje).
> 
> 	Jenze, to urcite vis sam a tak se trochu obavam, ze tohle asi neni ta 
> odpoved, kterou cekas. Ale ani po opakovanem precteni otazky nevim, 
> jakou jinou odpoved's ocekavas ...

posix ocekava ze argv[0] bude obsahovat jmeno procesu a pokud to na fbsd
nezadas tak to nefunguje a dela to hrozne blbosti... a DA se ocekavat ze tyto
funkce budou delat to stejne protoze mame posix a ruzne dalsi unixove
standardy.

kazdopadne to s tim argv[0] mne dostalo... v man strance je jen informace ze
podle konvence to obsahuje a ne ze to bez toho nefunguje ;(

doufam ze se ta informace bude nekomu hodit :) (a ze nekdo prepise tu man
stranku s tim ze shoudl -> must)

roman

p.s. dane.. zajimave ze jini lide tu moji otazku pochopili a hned na ni
odpovedeli :))) takze to zase neni az tak hrozne ne? :) (neocekavam odpoved)



More information about the Users-l mailing list