00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #pragma ident "@(#) libf/fio/fnum.c 92.2 08/02/99 10:38:18"
00026
00027
00028 #include <stdio.h>
00029 #include <foreign.h>
00030 #include <errno.h>
00031 #include <liberrno.h>
00032 #include <sys/types.h>
00033 #include <sys/stat.h>
00034 #include "fio.h"
00035
00036 #ifdef KEY
00037
00038
00039 int pathf90_fnum(int *u)
00040
00041 #else
00042
00043 extern int fnum_(int *u);
00044
00045 int fnum_(int *u)
00046
00047 #endif
00048 {
00049 int n, retval;
00050 unum_t unum;
00051 unit *cup;
00052 struct stat buf;
00053 struct fiostate cfs;
00054 int stat;
00055 register int errf;
00056
00057 unum = *u;
00058 retval = -1;
00059
00060 if (unum != 0 && unum != 5 && unum != 6)
00061 return retval;
00062
00063 STMT_BEGIN(unum, 0, T_INQU, NULL, &cfs, cup);
00064
00065 if (cup == NULL && !GOOD_UNUM(unum))
00066 _ferr(&cfs, FEIVUNIT, unum);
00067
00068 if (cup == NULL)
00069 cup = _imp_open( &cfs,
00070 SEQ,
00071 FMT,
00072 unum,
00073 errf,
00074 &stat);
00075
00076 retval = fileno ( cup->ufp.std );
00077 STMT_END(cup, T_INQU, NULL, &cfs);
00078 return retval;
00079 }
00080