From: "Mark J. Reed" Date: 2003-12-22T15:01:56+09:00 Subject: BUG in fcntl? In ruby 1.8.1 (2003-12-05) [i686-linux], why does this program: require 'fcntl' flags = $stdin.fcntl(Fcntl::F_GETFL) flags |= Fcntl::O_NONBLOCK $stdin.fcntl(Fcntl::F_SETFL, flags) c = $stdin.getc puts "c=#{c}" Hang on the getc call? I'd expect the same behavior as this C program: #include main() { int ch; int flags; flags = fcntl(0, F_GETFL); flags |= O_NONBLOCK; fcntl(0, F_SETFL, flags); ch = getchar(); printf("ch=`%d'\n", ch); } which gets an instant EOF back from getchar(). -Mark