xref: /original-bsd/sys/stand.att/close.c (revision 3705696b)
1 /*-
2  * Copyright (c) 1982, 1988, 1993
3  *	The Regents of the University of California.  All rights reserved.
4  *
5  * %sccs.include.proprietary.c%
6  *
7  *	@(#)close.c	8.1 (Berkeley) 06/11/93
8  */
9 
10 #include <sys/param.h>
11 #include <stand.att/saio.h>
12 
13 close(fdesc)
14 	int fdesc;
15 {
16 #ifndef SMALL
17 	struct iob *file;
18 
19 	fdesc -= 3;
20 	if (fdesc < 0 || fdesc >= SOPEN_MAX ||
21 	    ((file = &iob[fdesc])->i_flgs&F_ALLOC) == 0) {
22 		errno = EBADF;
23 		return (-1);
24 	}
25 	if ((file->i_flgs&F_FILE) == 0)
26 		devclose(file);
27 	file->i_flgs = 0;
28 #endif
29 	return (0);
30 }
31