Hi Viacheslav, On Jul 1 23:38, Бабенко Вячеслав wrote: > Dear friends! > > The function ioctl return -1 (errno equal 95) if I use cygwin-x86_64 but > return 0 if I use cygwin-x86. > > #include <stdio.h> > #include <sys/socket.h> > #include <sys/ioctl.h> > #include <unistd.h> > #include <errno.h> > > int main() > { > int c; > int fd = socket(AF_INET, SOCK_STREAM, 0); > if (ioctl(fd, FIONREAD, &c) == -1) > printf("errno:%u\n", errno); > close(fd); > return 0; > }
My fault. As result of a header change in newlib I also changed the definition of FIONREAD and others in <asm/socket.h>, but failed to make sure to call Winsock's ioctlsocket with the correctly specified Winsock FIONREAD. This only affects x86_64 as you noticed. I applied a patch to fix this issue and uploaded new developer snapshots to https://cygwin.com/snapshots/ (Note that recent snapshots don't work on XP and Server 2003 anymore) Please give them a try. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
signature.asc
Description: PGP signature