|
|
1.1 root 1: .\" Copyright (c) 1983 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)topen.3f 6.1 (Berkeley) 5/15/85
6: .\"
7: .TH TOPEN 3F "May 15, 1985"
8: .UC 5
9: .SH NAME
10: topen, tclose, tread, twrite, trewin, tskipf, tstate \- f77 tape I/O
11: .SH SYNOPSIS
12: .B integer function topen
13: (tlu, devnam, label)
14: .br
15: .B integer
16: tlu
17: .br
18: .B character*(*)
19: devnam
20: .br
21: .B logical
22: label
23: .sp 1
24: .B integer function tclose
25: (tlu)
26: .br
27: .B integer
28: tlu
29: .sp 1
30: .B integer function tread
31: (tlu, buffer)
32: .br
33: .B integer
34: tlu
35: .br
36: .B character*(*)
37: buffer
38: .sp 1
39: .B integer function twrite
40: (tlu, buffer)
41: .br
42: .B integer
43: tlu
44: .br
45: .B character*(*)
46: buffer
47: .sp 1
48: .B integer function trewin
49: (tlu)
50: .br
51: .B integer
52: tlu
53: .sp 1
54: .B integer function tskipf
55: (tlu, nfiles, nrecs)
56: .br
57: .B integer
58: tlu, nfiles, nrecs
59: .sp 1
60: .B integer function tstate
61: (tlu, fileno, recno, errf, eoff, eotf, tcsr)
62: .br
63: .B integer
64: tlu, fileno, recno, tcsr
65: .br
66: .B logical
67: errf, eoff, eotf
68: .SH DESCRIPTION
69: These functions provide a simple interface between f77 and magnetic
70: tape devices.
71: A ``tape logical unit'',
72: .IR tlu ,
73: is ``topen''ed in much the same way as a normal f77 logical unit
74: is ``open''ed.
75: All other operations are performed via the
76: .IR tlu .
77: The
78: .I tlu
79: has no relationship at all to any normal f77 logical unit.
80: .PP
81: .I Topen
82: associates a device name with a
83: .IR tlu .
84: .I Tlu
85: must be in the range 0 to 3.
86: The logical argument
87: .I label
88: should indicate whether the tape includes a tape label.
89: This is used by
90: .I trewin
91: below.
92: .I Topen
93: does not move the tape.
94: The normal returned value is 0.
95: If the value of the function is negative, an error has occured.
96: See
97: .IR perror (3F)
98: for details.
99: .PP
100: .I Tclose
101: closes the tape device channel and removes its association with
102: .IR tlu .
103: The normal returned value is 0.
104: A negative value indicates an error.
105: .PP
106: .I Tread
107: reads the next physical record from tape to
108: .IR buffer .
109: .I Buffer
110: .B must
111: be of type
112: .BR character .
113: The size of
114: .I buffer
115: should be large enough to hold the largest physical record to be read.
116: The actual number of bytes read will be returned as the value of the
117: function.
118: If the value is 0, the end-of-file has been detected.
119: A negative value indicates an error.
120: .PP
121: .I Twrite
122: writes a physical record to tape from
123: .IR buffer .
124: The physical record length will be the size of
125: .IR buffer .
126: .I Buffer
127: .B must
128: be of type
129: .BR character .
130: The number of bytes written will be returned.
131: A value of 0 or negative indicates an error.
132: .PP
133: .I Trewin
134: rewinds the tape associated with
135: .I tlu
136: to the beginning of the first data file.
137: If the tape is a labelled tape
138: (see
139: .I topen
140: above)
141: then the label is skipped over after rewinding.
142: The normal returned value is 0.
143: A negative value indicates an error.
144: .PP
145: .I Tskipf
146: allows the user to skip over files and/or records.
147: First,
148: .I nfiles
149: end-of-file marks are skipped. If the current file is at
150: EOF, this counts as 1 file to skip.
151: (Note: This is the way to reset the EOF status for a
152: .IR tlu .)
153: Next,
154: .I nrecs
155: physical records are skipped over.
156: The normal returned value is 0.
157: A negative value indicates an error.
158: .PP
159: Finally,
160: .I tstate
161: allows the user to determine the logical state of the tape I/O channel
162: and to see the tape drive control status register.
163: The values of
164: .I fileno
165: and
166: .I recno
167: will be returned and indicate the current file and record number.
168: The logical values
169: .IR errf ,
170: .IR eoff ,
171: and
172: .I eotf
173: indicate an error has occurred, the current file is at EOF,
174: or the tape has reached logical end-of-tape.
175: End-of-tape (EOT) is indicated by an empty file, often
176: referred to as a double EOF mark.
177: It is not allowed to read past EOT although it is allowed to write.
178: The value of
179: .I tcsr
180: will reflect the tape drive control status register.
181: See
182: .IR ht (4)
183: for details.
184: .SH FILES
185: .ie \nM /usr/ucb/lib/libU77.a
186: .el /usr/lib/libU77.a
187: .SH "SEE ALSO"
188: ht(4), perror(3F), rewind(1)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.