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