Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

topen(3f) [bsd man page]

TOPEN(3F)																 TOPEN(3F)

topen, tclose, tread, twrite, trewin, tskipf, tstate - f77 tape I/O SYNOPSIS
integer function topen (tlu, devnam, label) integer tlu character*(*) devnam logical label integer function tclose (tlu) integer tlu integer function tread (tlu, buffer) integer tlu character*(*) buffer integer function twrite (tlu, buffer) integer tlu character*(*) buffer integer function trewin (tlu) integer tlu integer function tskipf (tlu, nfiles, nrecs) integer tlu, nfiles, nrecs integer function tstate (tlu, fileno, recno, errf, eoff, eotf, tcsr) integer tlu, fileno, recno, tcsr logical errf, eoff, eotf DESCRIPTION
These functions provide a simple interface between f77 and magnetic tape devices. A ``tape logical unit'', tlu, is ``topen''ed in much the same way as a normal f77 logical unit is ``open''ed. All other operations are performed via the tlu. The tlu has no relationship at all to any normal f77 logical unit. Topen associates a device name with a tlu. Tlu must be in the range 0 to 3. The logical argument label should indicate whether the tape includes a tape label. This is used by trewin below. Topen does not move the tape. The normal returned value is 0. If the value of the function is negative, an error has occured. See perror(3F) for details. Tclose closes the tape device channel and removes its association with tlu. The normal returned value is 0. A negative value indicates an error. Tread reads the next physical record from tape to buffer. Buffer must be of type character. The size of buffer should be large enough to hold the largest physical record to be read. The actual number of bytes read will be returned as the value of the function. If the value is 0, the end-of-file has been detected. A negative value indicates an error. Twrite writes a physical record to tape from buffer. The physical record length will be the size of buffer. Buffer must be of type char- acter. The number of bytes written will be returned. A value of 0 or negative indicates an error. Trewin rewinds the tape associated with tlu to the beginning of the first data file. If the tape is a labelled tape (see topen above) then the label is skipped over after rewinding. The normal returned value is 0. A negative value indicates an error. Tskipf allows the user to skip over files and/or records. First, nfiles end-of-file marks are skipped. If the current file is at EOF, this counts as 1 file to skip. (Note: This is the way to reset the EOF status for a tlu.) Next, nrecs physical records are skipped over. The normal returned value is 0. A negative value indicates an error. Finally, tstate allows the user to determine the logical state of the tape I/O channel and to see the tape drive control status register. The values of fileno and recno will be returned and indicate the current file and record number. The logical values errf, eoff, and eotf indicate an error has occurred, the current file is at EOF, or the tape has reached logical end-of-tape. End-of-tape (EOT) is indicated by an empty file, often referred to as a double EOF mark. It is not allowed to read past EOT although it is allowed to write. The value of tcsr will reflect the tape drive control status register. See ht(4) for details. FILES
/usr/lib/libU77.a SEE ALSO
ht(4), perror(3F), rewind(1) 4.2 Berkeley Distribution May 15, 1985 TOPEN(3F)

Check Out this Related Man Page

TM(4)							     Kernel Interfaces Manual							     TM(4)

tm - TM-11/TU-10 magtape interface DESCRIPTION
The files mt0, ..., mt7 refer to the DEC TU10/TM11 magtape. When closed it can be rewound or not, see below. If it was open for writing, two end-of-files are written. If the tape is not to be rewound it is positioned with the head between the two tapemarks. If the 0200 bit is on in the minor device number the tape is not rewound when closed. A standard tape consists of a series of 512 byte records terminated by an end-of-file. To the extent possible, the system makes it possi- ble, if inefficient, to treat the tape like any other file. Seeks have their usual meaning and it is possible to read or write a byte at a time. Writing in very small units is inadvisable, however, because it tends to create monstrous record gaps. The mt files discussed above are useful when it is desired to access the tape in a way compatible with ordinary files. When foreign tapes are to be dealt with, and especially when long records are to be read or written, the `raw' interface is appropriate. The associated files are named rmt0, ..., rmt7. Each read or write call reads or writes the next record on the tape. In the write case the record has the same length as the buffer given. During a read, the record size is passed back as the number of bytes read, provided it is no greater than the buffer size; if the record is long, an error is indicated. In raw tape I/O, the buffer must begin on a word boundary and the count must be even. Seeks are ignored. A zero byte count is returned when a tape mark is read, but another read will fetch the first record of the new tape file. FILES
/dev/mt?, /dev/rmt? SEE ALSO
tp(1) BUGS
If any non-data error is encountered, it refuses to do anything more until closed. In raw I/O, there should be a way to perform forward and backward record and file spacing and to write an EOF mark. TM(4)
Man Page