signal(): je glibc funkcni, nebo neumim programovat?

Miroslav Stibor smsti na hp832.fce.vutbr.cz
Pondělí Listopad 29 10:05:42 CET 1999



On 25 Nov 1999 BendikR na mod.gov.sk wrote:

> > void prvni(int sig)
> > {
> >         signal(SIGUSR2, druhy);
> >         printf("Prvni kill\n");
> >         scanf ("%i", &sig);	/* treba scanf */
> > }
> 
> [...]

> > Po prelozeni na glibc jen toto:
> > $ ./a.out
> > Prvni kill	... a vic nic, tvari se to jako pri nastaveni na SIG_IGN
> 
> > 			a nehnu s tim
> 
> Napis nejake cislo a <ENTER> a pohne sa to...
> Caka to v tom scanf; na libc5 ho USR2 zrusi, na glibc nie.

No prave, ale nechapu proc to dela...

Nakonec jsem to vyresil (zcela funkcni) zhruba takto:

#define signal sysv_signal

Pointa je v tom, ze v linuxu s prechodem na glibc se menila konvence 
signal(), podle jakehosi bsd ;)), kterouzto ale nechapu.

Stary styl je dostupny prave pres sysv_signal().

> Skus na koniec handlerov pridat este 'printf("%i", sig);'

To byl zjednoduseny priklad, nejsem si jist, zda by to takto slo 
praktikovat obecne.

> 	rado b <Radoslav.Bendik na mod.gov.sk>


Další informace o konferenci Linux