sysname.c

来自「一个很有名的浏览器」· C语言 代码 · 共 71 行

C
71
字号
/* Get system name *//* $Id: sysname.c,v 1.16 2003/12/19 18:30:46 pasky Exp $ */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <stdio.h>#include <string.h>#ifdef HAVE_SYS_UTSNAME_H#include <sys/utsname.h>#endif#include "elinks.h"#include "lowlevel/sysname.h"#include "util/memory.h"#include "util/string.h"unsigned char system_name[MAX_STR_LEN];#ifdef HAVE_POPENstatic intgot_it_from_uname_command(void){	FILE *f;	unsigned char *p;	f = popen("uname -srm", "r");	if (!f) return 0;	if (fread(system_name, 1, sizeof(system_name) - 1, f) <= 0) {		pclose(f);		return 0;	}	pclose(f);	system_name[MAX_STR_LEN - 1] = '\0'; /* Safer. */	p = system_name;	while (*p >= ' ') p++;	*p = '\0';	if (system_name[0])		return 1;	return 0;}#else#define got_it_from_uname_command() 0#endifvoidget_system_name(void){#if defined(HAVE_SYS_UTSNAME_H) && defined(HAVE_UNAME)	struct utsname name;	if (!uname(&name)) {		snprintf(system_name, sizeof(system_name),			 "%s %s %s", name.sysname, name.release, name.machine);		return;	}#endif	if (got_it_from_uname_command()) return;	safe_strncpy(system_name, SYSTEM_NAME, sizeof(system_name));}

⌨️ 快捷键说明

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