V7/usr/man/man4/rk.4
.TH RK 4
.SH NAME
rk \- RK-11/RK03 or RK05 disk
.SH DESCRIPTION
.I Rk?
refers to an entire disk as a single sequentially-addressed
file.
Its 256-word blocks are numbered 0 to 4871.
Minor device numbers are drive numbers on one controller.
.PP
The
.I rk
files
discussed above access the disk via the system's normal
buffering mechanism
and may be read and written without regard to
physical disk records.
There is also a `raw' interface
which provides for direct transmission between the disk
and the user's read or write buffer.
A single read or write call results in exactly one I/O operation
and therefore raw I/O is considerably more efficient when
many words are transmitted.
The names of the raw RK files
begin with
.I rrk
and end with a number which selects the same disk
as the corresponding
.I rk
file.
.PP
In raw I/O the buffer must begin on a word boundary,
and counts should be a multiple of 512 bytes
(a disk block).
Likewise
.I seek
calls should specify a multiple of 512 bytes.
.SH FILES
/dev/rk?, /dev/rrk?
.SH BUGS
In raw I/O
.I read
and
.IR write (2)
truncate file offsets to 512-byte block boundaries,
and
.I write
scribbles on the tail of incomplete blocks.
Thus,
in programs that are likely to access raw devices,
.I read, write
and
.IR lseek (2)
should always deal in 512-byte multiples.