Please send all replies to the Cygwin users' mailing list.
This serves two purposes:

  1. More people can see your problem description.  This
     will increase the chance that someone will know a
     solution to your problem.

  2. The problem and its solution are added to the
     mailing-list archives.  This is one of the main
     knowledge databases for Cygwin.  Even if a solution
     is not found, then other readers are made aware of
     the problem and know that it is not unique to them.

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:sanjayl@;mindspring.com]
> Sent: Wednesday, November 06, 2002 4:20 PM
> To: Harig, Mark A.
> Subject: RE: Process does not respond to signals on read() of win32
> handle.
> 
> 
> Hi Mark,
> 
> I am running Cygwin on Windows 2000. Here is the output of uname -a
> 
> CYGWIN_NT-5.0 REDBSUNJAY1 1.3.14(0.62/3/2) 2002-10-24 10:48 
> i686 unknown
> 
> And here is a short program that can reproduce the bug. I 
> just CreateFile()
> COM0  and then map it to a cygwin file desciptor. I then 
> read() on the fd. At
> this point the program stops responding to any signals 
> (CTRL-C) etc, until
> some data shows up on the device to wake up the read. I just 
> use g++ com.cpp
> to compile the executable.
> 
> Thanks again for all your help.
> Sanjay
> 
> ================================================
> #include <windows.h>
> #include <stdio.h>
> #include <stdlib.h>
> 
> #ifdef __CYGWIN__
> #include <unistd.h>
> #include <sys/fcntl.h>
> #include <errno.h>
> 
> extern "C" int cygwin_attach_handle_to_fd (char *name, int 
> fd, HANDLE handle,
> int bin, int access);
> 
> extern "C" void cygwin_conv_to_full_posix_path (const char *path,char
> *posix_path);
> #endif /* __CYGWIN__ */
> 
> int
> main (void)
> {
> 
>   /* Open the file */
>   int fd = -1;
>   HANDLE m_Handle = INVALID_HANDLE_VALUE;
> 
>   m_Handle = CreateFile
>     ("\\\\.\\COM1",
>      GENERIC_READ | GENERIC_WRITE,
>      FILE_SHARE_READ, 0, OPEN_EXISTING, FILE_ATTRIBUTE_SYSTEM, 0);
> 
> 
>   if (m_Handle == INVALID_HANDLE_VALUE)
>    {
>       printf ("Create file on device failed\n");
>    }
> 
>   fd = cygwin_attach_handle_to_fd ("/dev/tap", -1, m_Handle,
>                                  1, GENERIC_READ | GENERIC_WRITE);
> 
>   printf ("Cygwin fd: %d\n", fd);
>   char *Data = (char *) malloc (4096);
> 
>   int BytesRead;
>   while (1)
>     {
>       if ((BytesRead = read (fd, Data, 1500)) < 0)
>       {
>         printf ("read() error: %d\n", errno);
>         exit(errno);
>       }
> 
>       printf ("Read %d bytes\n", BytesRead);
>     }
> 
>   free (Data);
> }
> ============CUT HERE=======================
> 
> 
> 
> 
> > Source code of a small program that reproduces
> > your problem,
> > along with the commands you used to compile,
> > link, and run
> > the program would likely increase the chances
> > that someone
> > can and will help with this problem.
> > 
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED]
> > [mailto:sanjayl@;mindspring.com]
> > > Sent: Wednesday, November 06, 2002 1:51 PM
> > > To: [EMAIL PROTECTED]
> > > Subject: Process does not respond to signals
> > on read() of 
> > > win32 handle.
> > > 
> > > 
> > > I have a program that opens a Win2k driver
> > using CreateFile and then
> > > associates it with a file desciprtor using 
> > > cygwin_attach_handle_to_fd().
> > > I then do a read() on the descriptor. At this
> > point the program stops
> > > responding to CTRL-Cs etc. until something is
> > written to the 
> > > device and
> > > the read() returns.  Only then is the signal
> > caught and the 
> > > process exits.
> > > 
> > > I have tried the same program in a pure Win32
> >  environment 
> > > using CreateFile()
> > > and ReadFile() calls, and things seem to
> > > work as expected.
> > > 
> > > Any help would be greatly appreciated.
> > > 
> > > Thanks in advance,
> > > Sanjay
> > > 

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to