149182Sbostic /*- 249182Sbostic * Copyright (c) 1991 The Regents of the University of California. 349182Sbostic * All rights reserved. 449182Sbostic * 549182Sbostic * %sccs.include.redist.c% 649182Sbostic * 7*60328Smckusick * @(#)stat.c 7.3 (Berkeley) 05/24/93 849182Sbostic */ 949182Sbostic 1049182Sbostic #include <sys/param.h> 1149182Sbostic #include <sys/stat.h> 12*60328Smckusick #include <stand.att/saio.h> 1349182Sbostic 1449182Sbostic #ifndef SMALL 1549182Sbostic fstat(fd, sb) 1649182Sbostic int fd; 1749182Sbostic struct stat *sb; 1849182Sbostic { 1949182Sbostic register struct iob *io; 2049182Sbostic 2149182Sbostic fd -= 3; 2249182Sbostic if (fd < 0 || fd >= SOPEN_MAX || 2349182Sbostic ((io = &iob[fd])->i_flgs & F_ALLOC) == 0) { 2449182Sbostic errno = EBADF; 2549182Sbostic return (-1); 2649182Sbostic } 2749182Sbostic /* only important stuff */ 2849182Sbostic sb->st_mode = io->i_ino.di_mode; 2949182Sbostic sb->st_uid = io->i_ino.di_uid; 3049182Sbostic sb->st_gid = io->i_ino.di_gid; 3149182Sbostic sb->st_size = io->i_ino.di_size; 3249182Sbostic return (0); 3349182Sbostic } 3449182Sbostic 3549182Sbostic stat(str, sb) 3649182Sbostic const char *str; 3749182Sbostic struct stat *sb; 3849182Sbostic { 3949182Sbostic int fd, rv; 4049182Sbostic 4149182Sbostic fd = open(str, 0); 4249182Sbostic if (fd < 0) 4349182Sbostic return(-1); 4449182Sbostic rv = fstat(fd, sb); 4549182Sbostic close(fd); 4649182Sbostic return(rv); 4749182Sbostic } 4849182Sbostic #endif SMALL 49