stat.c

来自「unix v7是最后一个广泛发布的研究型UNIX版本」· C语言 代码 · 共 58 行

C
58
字号
#include <sys/types.h>#include <sys/stat.h>struct ostat {	short os_dev;	short os_inum;	short os_flags;	char  os_nlinks;	char  os_uid;	char  os_gid;	char  os_size0;	short os_size1;	short os_addr[8];	long  os_actime;	long  os_modtime;} osbuf;stat(name, buf)char *name;struct stat *buf;{	if (syscall(18, 0, 0, name, &osbuf, 0) < 0)		return(-1);	stcopyit(buf);	return(0);}fstat(fd, buf)int fd;struct stat *buf;{	if (syscall(28, fd, 0, &osbuf, 0, 0) < 0)		return(-1);	stcopyit(buf);	return(0);}staticstcopyit(buf)struct stat *buf;{	buf->st_dev = osbuf.os_dev;	buf->st_ino = osbuf.os_inum;	buf->st_mode = osbuf.os_flags;	buf->st_mode &= 067777;	if ((buf->st_mode&060000) == 0)		buf->st_mode |= 0100000;	buf->st_nlink = osbuf.os_nlinks;	buf->st_uid = osbuf.os_uid;	buf->st_gid = osbuf.os_gid;	buf->st_rdev = 0;	buf->st_size = ( (long) osbuf.os_size0 << 16) | osbuf.os_size1;	buf->st_atime = osbuf.os_actime;	buf->st_mtime = osbuf.os_modtime;	buf->st_ctime = buf->st_mtime;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?