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