Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

read prekinut signalom

[es] :: C/C++ programiranje :: read prekinut signalom

[ Pregleda: 4283 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.ppp-bg.sezampro.yu



Profil

icon read prekinut signalom27.01.2002. u 18:44 - pre 270 meseci
Code:

#include<stdio.h>
#include<errno.h>
#include<signal.h>

void handler (int sign) {

     printf("Primio sam signal broj %d\n", sign);
     signal(SIGTERM, handler);
}

main () {
        
     int a; char c;
     signal(SIGTERM, handler);
     a=read(0,&c,1);
     if (errno==EINTR) printf("Read je prekinut signalom\n");
}


Zasto ne odstampa "Read je prekinut signalom" kada bi trebalo da posle primljenog signala read izmeni errno? U stvari read ne bi trebalo ni da se zavrsi pa bi bilo if (a<0 && errno==EINTR) ali nesto i nije bas tako... help!
vitamini, minerali, suplementi...
 
Odgovor na temu

Vojislav Milunovic

Član broj: 25
Poruke: 2117
*.fwi.com



+1 Profil

icon Re: read prekinut signalom27.01.2002. u 22:25 - pre 270 meseci
A kako bi bilo da posaljes signal ?
 
Odgovor na temu

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.ppp-bg.sezampro.yu



Profil

icon Re: read prekinut signalom27.01.2002. u 23:21 - pre 270 meseci
Sta kako bi bilo ?

Znaci, startuje se program i recimo ode se na drugu konzolu saznas njegov pid i das mu jedno kill pid i odstampa se "Primio sam signal broj 15" sto je sve ok ali nastavi se sa read pozivom koji ne izmeni errno a trebao bi i ne izvrsi se drugi printf ?!
vitamini, minerali, suplementi...
 
Odgovor na temu

anatogen
Novi Beograd

Član broj: 1294
Poruke: 150
*.InfoSky.Net



Profil

icon Re: read prekinut signalom28.01.2002. u 01:27 - pre 270 meseci
A resio sam problem naime po defaultu kod linuxa sys poziv bice obnovljen
ako je primio signal ali se to moze promeniti sys pozivom sigaction
tj menjanjem sa_flags u sigaction strukturi.

Naravno postoji i funkcija int siginterrupt(int sig, int flag); kojom
se cas posla to menja i stavljanjem flag na 1 sys poziv se ne obnavlja vec javlja
gresku (vraca -1) i podesava errno na EINTR !
vitamini, minerali, suplementi...
 
Odgovor na temu

[es] :: C/C++ programiranje :: read prekinut signalom

[ Pregleda: 4283 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.