On 2/7/2010 1:28 AM, Mike Clarke wrote:
curlew:/root# cat /dev/null>  /dev/da0
curlew:/root# ls -l /dev/da0*
crw-r-----  1 root  operator    0, 176  6 Feb 23:15 /dev/da0
crw-r-----  1 root  operator    0, 129  6 Feb 23:18 /dev/da0s1

I can use this to initialise the card reader but I'd feel more
comfortable with something a bit less dangerous looking.

While it may feel dangerous, is perfectly safe. There is no
way doing an IO operation on a disk-like device using requests
othen than multiplies of the physical block which currently is
512 bytes. Opening the disk for writing and trying to do a
write request, will just force GEOM to re-examine the device.

lab# echo asd | cat > /dev/da0
cat: stdout: Invalid argument
failed

lab# echo > /dev/da0
lab# echo $?
1
failed

lab# /bin/echo asd > /dev/da0
/bin/echo: write: Invalid argument
failed

Closer look:
lab# truss sh -c "echo > /dev/da0"
snip
open("/dev/da0",O_WRONLY|O_CREAT|O_TRUNC,0666)   = 2 (0x2)
dup2(0x2,0x1,0x1b6,0x1000008,0x2830d040,0x2830235c) = 1 (0x1)
close(2)                                         = 0 (0x0)
write(1,"\n",1)                                  ERR#22 'Invalid argument'
failed

FreeBSD lost the ability of doing such transparent
transformations when the support for block devices
went away.

Yes, I know, it feels awkward.

Apparently, you can easily drop the support for block
devices but not the habitual feeling of danger of UNIX
tradition.

HTH, Nikos
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[email protected]"

Reply via email to