This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project. See the Cygwin home page for more information.
[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index] [Subject Index] [Author Index] [Thread Index]

B20.1 under NT4.0, non blocking I/O





In the UNIX world the statement
"fcntl(fd,F_SETFL,FNDELAY|fcntl(fd,F_GETFL,0));" may be used to set "non
blocking io" flag on a given file descriptor. In cygwin B20.1 under NT4.0
it is completely inoperative.

The following snippet of code well illustrates the problem (it should not
block, but it does):

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#define BLEN    4096

main()
{
  char buf[BLEN];
  int p0[2], i=0, N;

  if (pipe(p0)) return 255;
  fcntl(p0[1], F_SETFL, FNDELAY|fcntl(p0[1],F_GETFL,0));
  for (i=0; i<10; ++i){
    N=write(p0[1],buf,BLEN);
    printf("%d. %d bytes written\n", i, N);
  }
  close(p0[0]); /* close read size of pipe */
  close(p0[1]); /* close write side of pipe */
  return 0;
}

The following is the output of the 'cygcheck' command:

Cygnus Win95/NT Configuration Diagnostics
Current System Time: Mon Mar 08 23:33:10 1999

WinNT Ver 4.0 build 1381 Service Pack 1

Path:     /bin
     /u/mic/bin
     /usr/bin
     /cygnus/cygwin-b20/H-i586-cygwin32/bin
     /WINNT/system32
     /WINNT
     /jkd1.1/bin
     /dbin
     /bp/bin
     .

SysDir: C:\WINNT\System32
WinDir: C:\WINNT

HOME = `/u/mic'
MAKE_MODE = `UNIX'

CLASSPATH = `.;C:\jdk1.1\lib\classes.zip'
COMPUTERNAME = `MICNT'
COMSPEC = `C:\WINNT\system32\cmd.exe'
DISPLAY = `:0'
ENV = `$HOME/kshrc'
HOMEDRIVE = `C:'
HOMEPATH = `\'
HOSTNAME = `micnt'
NUMBER_OF_PROCESSORS = `1'
OS2LIBPATH = `C:\WINNT\system32\os2\dll;'
OS = `Windows_NT'
PROCESSOR_ARCHITECTURE = `x86'
PROCESSOR_IDENTIFIER = `x86 Family 4 Model 8 Stepping 0, GenuineIntel'
PROCESSOR_LEVEL = `4'
PROCESSOR_REVISION = `0800'
PS1 = `$LOGIN@$HOSTNAME:$PWD> '
SYSTEMDRIVE = `C:'
SYSTEMROOT = `C:\WINNT'
TEMP = `C:\TEMP'
TERM = `cygwin'
TMP = `C:\TEMP'
TZ = `NFT-1DFT'
USERDOMAIN = `MICNT'
USERNAME = `Administrator'
USERPROFILE = `C:\WINNT\Profiles\Administrator'
VIM = `c:/u/mic/vim-5.3'
WINDIR = `C:\WINNT'
_ = `/cygnus/cygwin-b20/H-i586-cygwin32/bin/cygcheck'

HKEY_CURRENT_USER\Software\Cygnus Solutions
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts
HKEY_CURRENT_USER\Software\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\00
  (default) = `C:'
  unix = `/'
  fbinary = 0x00000000
  fsilent = 0x00000000
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin B20
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\Cygwin B20\B20.1
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL setup\b15.0\mounts
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\00
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\01
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\02
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\03
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\04
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\05
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\06
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\07
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\08
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\09
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\0A
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\0B
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\0C
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\0D
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\0E
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\0F
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\10
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\11
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\12
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\13
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\14
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\15
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\16
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\17
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\18
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\19
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\1A
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\1B
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\1C
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\CYGWIN.DLL
setup\b15.0\mounts\1D
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\GNUPro
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus Solutions\GNUPro\i586-cygwin32
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus
Solutions\GNUPro\i586-cygwin32\i586-cygwin32
HKEY_LOCAL_MACHINE\SOFTWARE\Cygnus
Solutions\GNUPro\i586-cygwin32\i586-cygwin32\cygwin-B20.1
  (default) = `c:\cygnus\cygwin-b20'
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Cygn
us Cygwin B20
  (default) = `C:\WINNT\IsUninst.exe -fc:\cygnus\cygwin-b20\Uninst.isu'
  DisplayName = `Cygwin B20'

a:\ fd  FAT        1Mb  97% CP    UN
c:\ hd  NTFS     327Mb  97% CP CS UN PA FC

C:    /        native  text!=binary

Found: C:\bin\bash.exe
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\bash.exe
Warning: C:\bin\bash.exe hides
C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\bash.exe
Found: \bin\bash.exe
Warning: C:\bin\bash.exe hides \bin\bash.exe
Found: C:\u\mic\bin\cat.exe
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\cat.exe
Warning: C:\u\mic\bin\cat.exe hides
C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\cat.exe
Not Found: cpp (good!)
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\find.exe
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\gcc.exe
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\gdb.exe
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\ld.exe
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\ls.exe
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\make.exe
Found: C:\bp\bin\make.exe
Warning: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\make.exe hides
C:\bp\bin\make.exe
Found: C:\bin\sh.exe
Found: C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\sh.exe
Warning: C:\bin\sh.exe hides
C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\sh.exe
Found: \bin\sh.exe
Warning: C:\bin\sh.exe hides \bin\sh.exe

  371k 1998/12/01 C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\cygtcl80.dll -
os=4.0 img=1.0 sys=4.0
                  "cygtcl80.dll" v0.0 ts=1998/12/1 9:25
    5k 1998/12/01 C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\cygtclpip80.dll
- os=4.0 img=1.0 sys=4.0
   10k 1998/12/01 C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\cygtclreg80.dll
- os=4.0 img=1.0 sys=4.0
                  "cygtclreg80.dll" v0.0 ts=1998/12/1 9:25
  600k 1998/12/01 C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\cygtk80.dll -
os=4.0 img=1.0 sys=4.0
                  "cygtk80.dll" v0.0 ts=1998/12/1 9:28
  446k 1998/12/03 C:\cygnus\cygwin-b20\H-i586-cygwin32\bin\cygwin1.dll -
os=4.0 img=1.0 sys=4.0
                  "cygwin1.dll" v0.0 ts=1998/12/4 5:39
Use -h to see help about each section



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