> 2009/10/22 Topher Cawlfield >> I'm not sure if this is the right place to post such problems, but I ran into >> this problem when trying to use the paramiko library with python 2.5.2 in >> Cygwin. >> >> Ultimately the problem is that an IOError is generated when opening >> /dev/urandom, reading some bytes from it (doesn't seem to matter how much), >> and closing the file. If you don't read from the file there is no error upon >> closing. >> >> $ python >> Python 2.5.2 (r252:60911, Dec 2 2008, 09:26:14) >> [GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin >> Type "help", "copyright", "credits" or "license" for more information. >> .>>> f = open("/dev/urandom") >> .>>> f.close() >> >> Note: no problem just opening and closing the special file. But: >> >> .>>> f = open("/dev/urandom") >> .>>> f.read(8) >> '\xf9"\xb7\'E\xf8Q\xa0' >> .>>> f.close() >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> IOError: [Errno 0] Error >> .>>> > > Reproduced the issue with this C test: > > #include <stdlib.h> > #include <stdio.h> > > int main(void) { > FILE *f = fopen("/dev/urandom", "r"); > if (!f) { > puts("fopen failed"); > return 1; > } > char buf[8]; > printf("read %i bytes\n", fread(buf, 1, sizeof buf, f)); > if (fclose(f)) { > puts("fclose failed"); > return 1; > } > return 0; > } > > The fclose fails on Cygwin, but succeeds on Debian.
ps: Same issue with /dev/zero, /dev/full, and also /dev/clipboard. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple