1 /* $Id: fio.h,v 1.1.1.1 2008/08/24 05:34:47 gmcgarry Exp $ */
3 * Copyright(C) Caldera International Inc. 2001-2002. All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
9 * Redistributions of source code and documentation must retain the above
10 * copyright notice, this list of conditions and the following disclaimer.
11 * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditionsand the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * All advertising materials mentioning features or use of this software
15 * must display the following acknowledgement:
16 * This product includes software developed or owned by Caldera
18 * Neither the name of Caldera International, Inc. nor the names of other
19 * contributors may be used to endorse or promote products derived from
20 * this software without specific prior written permission.
22 * USE OF THE SOFTWARE PROVIDED FOR UNDER THIS LICENSE BY CALDERA
23 * INTERNATIONAL, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR
24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
25 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26 * DISCLAIMED. IN NO EVENT SHALL CALDERA INTERNATIONAL, INC. BE LIABLE
27 * FOR ANY DIRECT, INDIRECT INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OFLIABILITY, WHETHER IN CONTRACT,
31 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
32 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33 * POSSIBILITY OF SUCH DAMAGE.
39 /*external read, write*/
47 /*internal read, write*/
74 /*rewind, backspace, endfile*/
81 { FILE *ufd
; /*0=unconnected*/
84 int url
; /*0=sequential*/
85 flag useek
; /*true=can backspace, use dir, ...*/
90 flag uwrt
; /*last io was write*/
98 ftnint
*inex
; /*parameters in standard's order*/
124 extern cilist
*elist
; /*active external io list*/
125 extern flag reading
,external
,sequential
,formatted
;
126 extern int (*getn
)(void),(*putn
)(int); /*for formatted io*/
127 extern FILE *cf
; /*current file*/
128 extern unit
*curunit
; /*current unit*/
130 #define err(f,n,s) {if(f) errno= n; else fatal(n,s); return(n);}
135 extern int recpos
; /*position in current record*/
149 /* function prototypes */
150 void fatal(int n
, char *s
);
152 int nowreading(unit
*x
);
153 int f_back(alist
*a
);
154 int rd_ed(struct syl
*p
, void *ptr
, ftnlen len
);
155 int rd_ned(struct syl
*p
, char *ptr
);
156 int w_ed(struct syl
*p
, void *ptr
, ftnlen len
);
157 int w_ned(struct syl
*p
, char *ptr
);
158 int s_rdfe(cilist
*a
);
162 int s_wdfe(cilist
*a
);
165 int nowwriting(unit
*);
167 int do_fio(ftnint
*number
, char *ptr
, ftnlen len
);
168 int fk_open(int rd
,int seq
,int fmt
, ftnint n
);
169 int s_rdue(cilist
*a
);
170 int s_wdue(cilist
*a
);
171 int c_due(cilist
*a
, int flag
);
176 int s_rsfi(icilist
*a
);
177 int s_wsfi(icilist
*a
);
180 int f_inqu(inlist
*a
);
181 void g_char(char *a
, ftnlen alen
, char *b
);
182 void b_char(char *a
, char *b
, ftnlen blen
);
184 void setcilist(cilist
*x
, int u
, char *fmt
,int rec
,int xerr
,int end
);
185 void setolist(olist
*, int, char *, char *, char *, int, char *, int);
186 void stcllist(cllist
*x
, int xunit
, char *stat
, int cerr
);
187 void setalist(alist
*x
, int xunit
, int aerr
);
189 int s_rsfe(cilist
*a
);
190 int c_sfe(cilist
*a
, int flag
);
191 int s_rsue(cilist
*a
);
192 int s_wsue(cilist
*a
);
195 int do_uio(ftnint
*number
, char *ptr
, ftnlen len
);
196 int s_wsfe(cilist
*a
);
200 int c_le(cilist
*a
, int flag
);
202 int s_wsle(cilist
*a
);
203 int wrt_L(ftnint
*n
, int len
);
204 int s_rsle(cilist
*a
);
206 int f_open(olist
*a
);
207 int f_clos(cllist
*a
);
210 int fullpath(char *a
,char *b
, int errflag
);
212 char *icvt(long value
,int *ndigit
,int *sign
);