From: Daniel Berger Date: 2008-09-13T02:28:13+09:00 Subject: Re: Strange Errno::EOVERFLOW error with IO#read and IO#sysread On Sep 12, 11:11 am, "ara.t.howard" wrote: > On Sep 12, 2008, at 10:48 AM, Daniel Berger wrote: > > > > > Hi all, > > > Ruby 1.8.6 p114 (32-bit) > > Solaris 10 > > > I'm reading binary data out of the /proc//as file on Solaris, and > > I'm hitting a curious overflow error on one process in particular: > > > # With IO#sysread > > irb(main):010:0> File.open("/proc/383/as"){ |fh| fh.sysread(4) } > > Errno::EOVERFLOW: Value too large for defined data type - /proc/383/as > > from (irb):10:in `sysread' > > from (irb):10 > > from (irb):10:in `open' > > from (irb):10 > > > # With IO#read > > rb(main):010:0> File.open("/proc/383/as"){ |fh| fh.read(4) } > > Errno::EOVERFLOW: Value too large for defined data type - /proc/383/as > > from (irb):10:in `read' > > from (irb):10 > > from (irb):10:in `open' > > from (irb):10 > > > Where pid 383 is: > > > UID PID PPID C STIME TTY TIME CMD > > root 383 1 0 07:14:42 ? 0:01 /usr/sfw/sbin/snmpd > > > This is the only pid in particular where this error occurs (out of > > about 80). > > > Any idea what's happening here? > > > Thanks, > > > Dan > > your programs are so powerful daniel - they're overwhelming the > system! maybe if you re-write in perl the system will be able to > handle them. Nope: use strict; use warnings; my $file = "/proc/383/as"; open(FH, $file) or die $!; my $buf = ""; # Dies here with: Value too large for defined data type read(FH, $buf, 4, 0) or die $!; close(FH); Regards, Dan