_uname.c
来自「minix操作系统最新版本(3.1.1)的源代码」· C语言 代码 · 共 60 行
C
60 行
/* uname() - get system info Author: Kees J. Bot * 7 Nov 1994 * Returns information about the Minix system. Alas most * of it is gathered at compile time, so machine is wrong, and * release and version become wrong if not recompiled. * More chip types and Minix versions need to be added. */#define uname _uname#define open _open#define read _read#define close _close#include <sys/types.h>#include <sys/utsname.h>#include <unistd.h>#include <fcntl.h>#include <string.h>#include <errno.h>#include <minix/config.h>#include <minix/com.h>#include <minix/minlib.h>int uname(name) struct utsname *name;{ int hf, n, err; struct kinfo kinfo; char *nl; /* Read the node name from /etc/hostname.file. */ if ((hf = open("/etc/hostname.file", O_RDONLY)) < 0) { if (errno != ENOENT) return(-1); strcpy(name->nodename, "noname"); } else { n = read(hf, name->nodename, sizeof(name->nodename) - 1); err = errno; close(hf); errno = err; if (n < 0) return(-1); name->nodename[n] = 0; if ((nl = strchr(name->nodename, '\n')) != NULL) { memset(nl, 0, (name->nodename + sizeof(name->nodename)) - nl); } } getsysinfo(PM_PROC_NR, SI_KINFO, &kinfo); strcpy(name->sysname, "Minix"); strcpy(name->release, kinfo.release); strcpy(name->version, kinfo.version);#if (CHIP == INTEL) name->machine[0] = 'i'; strcpy(name->machine + 1, itoa(getprocessor()));#if _WORD_SIZE == 4 strcpy(name->arch, "i386");#else strcpy(name->arch, "i86");#endif#endif return(0);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?