gcc -nostdlib a _start a jaderne volani exit

xmail listy ric.linux na os3.os.ds.mfcr.cz
Pondělí Srpen 21 10:50:44 CEST 2000


> > >  (jenom se z teto funkce nesmite vratit, musite
> > > zavolat _exit()).
> > > 
> > Funkci _exit jsem taky hledal - a nenasel - mohu pouzit jaderne volani exit ?
> > (man 2 exit)
> 
> Musite. _exit() je koneckoncu jen obalka pro tento syscall. (Ten nazev ma 
> zajimave historicke souvislosti. Normalne se program opousti volanim
> exit(), coz provede napr. flushnuti otevrenych stdio streamu a teprve pak
> skonci proces. Jenze kdyz nekdo udela fork() a pak se mu v potomkovi
> nepovede exec() a chce skoncit, tak chce skoncit a jakekoli dalsi akce
> mohou byt nezadouci. Tak se do rozhrani dostala i interni funkce _exit(), 
> ktera pouze patricnym volanim jadra ukoncuje proces.)
> 
> 
Jak jsem psal vyse mnel jsem na mysli syscall exit.
syscal _exit je definovan pouze pokud "#define _LIBC"
#ifdef _LIBC
#define __NR__exit __NR_exit
...

Nevim co mate vy za verzi LIBC ale u mne toto makro definovano neni.
Proto pouzivam syscall exit (nemyslim knihovni funkci exit ale syscall exit)

Richard



Další informace o konferenci Linux