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