* Copyright (c) 1983, 1985 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
static char sccsid
[] = "@(#)findfp.c 5.3 (Berkeley) %G%";
#define active(iop) ((iop)->_flag & (_IOREAD|_IOWRT|_IORW))
#define NSTATIC 20 /* stdin + stdout + stderr + the usual */
{ 0, NULL
, NULL
, 0, _IOREAD
, 0 }, /* stdin */
{ 0, NULL
, NULL
, 0, _IOWRT
, 1 }, /* stdout */
{ 0, NULL
, NULL
, 0, _IOWRT
|_IONBF
, 2 }, /* stderr */
if (iobglue
== 0 && _stdio_init() == 0) {
while (*iov
!= NULL
&& active(*iov
))
*iov
= (FILE *)calloc(1, sizeof **iov
);
nfiles
= getdtablesize();
iobglue
= (FILE **)calloc(nfiles
, sizeof *iobglue
);
endglue
= iobglue
+ nfiles
;
for (fp
= _iob
, iov
= iobglue
; fp
< &_iob
[NSTATIC
]; /* void */)
if (iobglue
== NULL
&& _stdio_init() == 0)
for (iov
= iobglue
; iov
< endglue
; iov
++)
*iov
= (FILE *)calloc(1, sizeof **iov
);
register int (*function
)();
for (fp
= _iob
; fp
< &_iob
[NSTATIC
]; fp
++)
for (iov
= iobglue
; iov
< endglue
; iov
++)
if (*iov
&& active(*iov
))