From: kuzminsk AT taussky DOT cs DOT colorado DOT edu (Sebastian Kuzminsky) Subject: unexpected behavior of read() under win95 24 Jan 1998 13:11:19 -0800 Message-ID: <199801230406.VAA17577.cygnus.gnu-win32@taussky.cs.colorado.edu> To: gnu-win32 AT cygnus DOT com Hi, i'm new to the gnu-win32 scene. (I think it's a great idea, i'll take vi and gcc over Microsoft Visual This or That ++ anyday. Thanks a lot, developers!) Anyway, i'm having a problem with read(). I've included a program which (on my system) demonstrates the problem. I'm using version 'b17.1' of win32gcc. I'm working under Linux and cross-compiling for a win95 box. The program works under Linux when compiled with gcc, exact same flags. Here's the program: ----- begin include simptest.c ----- #include #include #include #include #include int main(int argc, char *argv[]) { int file_fd; int n; char buffer[100]; int total_read = 0; if (argc < 2) { printf("usage: simptest \n"); exit(1); } file_fd = open(argv[1], O_RDONLY); if (file_fd == -1) { fprintf(stderr, "cannot open %s: ", argv[1]); exit(1); } do { n = read(file_fd, buffer, 50); if (n == -1) { return -1; } if (n == 0) { printf("end of file?\n"); printf("read %d bytes total\n", total_read); return 0; } if (n != 50) { fprintf(stderr, "read %d bytes, expected 50\n", n); } else { printf("read 50, ok\n"); } total_read += n; } while(1); exit(0); } ----- end include simptest.c ----- When run under Linux, this program reads 50 byte chunks of the named file, until there's less than 50 bytes left, then it reads whatever's left and then quits. This is what i would call the expected behavior. When run under win95, however, it behaves unexpectedly. Calls to read() often read less than 50 bytes (which is surprising and annoying but legal), and sometimes read 0 bytes (signifying EOF, which is not legal). This happens both on binary and text files. Any idea what's up here? I guess i should try it using the latest version. Also, i cant link my program static. Even if i give the -static flag at the link step i still need cygwin.dll to run my program under win95. Sebastian - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".