On Monday, August 11, 2003, at 11:21 PM, Jim Witte wrote:


  open file "/dev/rdisk3" for binary read
  put the result into item 1 of ret
* read from file "/dev/rdisk3" for 4096 -- until EOF
  put the result into item 2 of ret
  put it into fld "rtext"
  close file "/dev/rdisk3"
  put the result into item 3 of ret

The script as written works, but if I change the starred line to 'until EOF' it doesn't - it gives a result code of 'eof' for the read command. Does EOF do strange things if the thing you're reading from is a volume, and not a "real" file (whatever real means). Is there a better way to read directly from a volume other doing a file read from /dev/* ?

Maybe the volume is larger than you can read in one operation, maybe some internal buffer size that Rev has? Try something like this
repeat ... read from file "/dev/rdisk3" at (512 * n) for 512


Or try "read from driver" instead. The docs have examples of "read from driver" reading from /dev files. Maybe it handles EOF differently?

OTO maybe read that's wrong and read from file is for block devices and read from driver is for stream devices?

Alternatively you should shell() to use dd or cp to get the data from the device.

Interesting question!

Alex Rice, Software Developer
Architectural Research Consultants, Inc.
http://ARCplanning.com

_______________________________________________
use-revolution mailing list
[EMAIL PROTECTED]
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to