【发布时间】:2016-01-29 23:21:14
【问题描述】:
假设我已编译 myname.c 以获得可执行文件 myname。 我想在命令后打印操作系统名称:
$myname --系统名称
输出:Linux
这是我目前所拥有的
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/utsname.h>
int main(int argc, char **argv) {
struct utsname buffer;
char str[70];
scanf("%[^\n]",str);
if (uname(&buffer) == system-name){
printf(
"%s",
(&buffer)->sysname,
);
}
【问题讨论】:
-
有什么问题?这个条件
if (uname(&buffer) == system-name){应该做什么?您正在阅读str,但未在任何地方使用。它的目的是什么? -
抱歉误会,我尝试使用 uanme() 函数来获取有关系统的一些信息,并且我想创建在用户输入特定名称后将 printf 的多重条件(例如:$myname --system name),会输出当前系统Linux。
-
你的意思是
if (strcmp(str, "system-name") == 0)看用户是否输入了system-name? -
是的。这就是我的意思。
标签: c linux operating-system