read a alarm
sci
scipraha na applet.cz
Středa Prosinec 18 12:48:34 CET 2002
Dobry den,
doufam, ze to neni prilis OT, ale mam tu nejakou potiz se signaly
ve spojeni s funkci read. Ta by se mela prerusit pokud proces dostane
signal (SIGALRM) a v errno by se mel objevit kod EINTR. Nic takoveho se
ovsem nestane, i kdyz program na signal reaguje. Zkousel jsem to na SCO
(nejakem starsim), kde to takto funguje. Muzete mi poradit, co delam
blbe? Prikladam i src.
Diky Michal Vojan
---------------------------------------
#include <unistd.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
void CatchAlarm( int sig)
{
fprintf(stderr,"Mam alarm\n");
}
int main()
{
int bread;
char buf[100];
FILE *ttin = (FILE *)0;
ttin = stdin;
signal ( SIGALRM, CatchAlarm ) ;
fprintf(stderr,"PID: %d\n\n",getpid());
fprintf(stderr,"\nZadej neco na deskriptor: %d\n",fileno(ttin));
bread=read(fileno(ttin),&buf,100);
fprintf(stderr,"buffer: %s\n",buf);
}
Další informace o konferenci Linux