BSD 4_4 release
[unix-history] / usr / src / sys / stand.att / close.c
/*-
* Copyright (c) 1982, 1988, 1993
* The Regents of the University of California. All rights reserved.
*
* This module is believed to contain source code proprietary to AT&T.
* Use and redistribution is subject to the Berkeley Software License
* Agreement and your Software Agreement with AT&T (Western Electric).
*
* @(#)close.c 8.1 (Berkeley) 6/11/93
*/
#include <sys/param.h>
#include <stand.att/saio.h>
close(fdesc)
int fdesc;
{
#ifndef SMALL
struct iob *file;
fdesc -= 3;
if (fdesc < 0 || fdesc >= SOPEN_MAX ||
((file = &iob[fdesc])->i_flgs&F_ALLOC) == 0) {
errno = EBADF;
return (-1);
}
if ((file->i_flgs&F_FILE) == 0)
devclose(file);
file->i_flgs = 0;
#endif
return (0);
}