Hello,

We have clarification, looking at the following code

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

     void key( )
     {
     printf("Some key\n");
     }

     char buff[10];
     int nbytes;

     main( )
     {

     signal(SIGALRM, key);
     alarm(5);

     nbytes = read ( STD_IN, buff, 10 );
     if ( errno == EINTR )
          {
          printf("Syscall interrupted by signal\n");
          }
     .....
     .....
     } /*  End main */

The blocking system call "read", is expected to terminate upon the
occurance of a alarm signal
by setting the process global variable "errno" to "EINTR" which is
documented in the manual pages.
This is true for all blocking system calls viz recvfrom, recv etc..

This is not happenning in almost all of the linux versions we have, are we
making a mistake or there
is any patch for this, can any one of you help us.

regards

Khader Nawaz Khan
Phoenix Global Solutions




_______________________________________________
linux-india-help mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/linux-india-help

Reply via email to