different behaviour on fbsd and linux
Dan Lukes
dan at obluda.cz
Sun Feb 19 03:59:26 CET 2006
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 ...
Dan
P.S. Zkusil jsem to na jednom nahodne vybranem systemu obsahujicim
nejake Linuxove jadro (nevim co je to za distribuci ani jaka je tam
verze glibc) a tam se to proste nechovalo tak, jak popisujes, ze se to
na "Linuxu" chova.
--
Dan Lukes SISAL MFF UK
AKA: dan at obluda.cz, dan at freebsd.cz,dan at kolej.mff.cuni.cz
More information about the Users-l
mailing list