signals while reading

Chris Faylor cgf@cygnus.com
Wed Oct 11 20:30:00 GMT 2000


On Thu, Oct 12, 2000 at 12:28:43PM +0900, Hiroshi Inoue wrote:
>Hi all,
>
>I tried the following program on my machine.
>( CYGWIN_NT-5.0 1.1.4(0.26/3/2) 2000-08-03 20:53 win2k)
>
>#include        <stdio.h>
>#include        <signal.h>
>#include        <errno.h>
>
>void sigfunc(int sig)
>{
>        fprintf(stderr, "received signal=%d\n", sig);
>        exit(1);
>}
>main()
>{
>        char    rdt[8];
>
>        signal(SIGTERM, sigfunc);
>        while (1)
>        {
>                fprintf(stderr,"read wait -> ");
>                read(0, rdt, 1);
>                fprintf(stderr,"read return %d\n", errno);
>                if (errno != EINTR)
>                        break;
>        }
>}
>
>When I kill this program, I see the following.
>
>read wait -> read return 4
>read wait -> read return 4
>read wait -> read return 4
>........
>(inifinite loop)
>
>Is this a expected behavior ?
>Note that sigfunc() isn't called.

It's a bug in 1.1.4.

cgf

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com



More information about the Cygwin mailing list