假设我已经编译myname.c以获取可执行文件myname。 我想在命令后打印操作系统名称:
$ myname --system-name
输出: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,
);
}
答案 0 :(得分:2)
我认为这应该有效(你的缓冲区不是一个指针而你的if语句不是很明智,你也应该从那个声明方法中返回一些东西):
#include <stdio.h>
#include <stdlib.h>
#include <sys/utsname.h>
int main(int argc, char **argv) {
struct utsname uts;
if(uname(&uts) !=0 ) {
return EXIT_FAILURE;
}
printf("%s\n",uts.sysname);
return EXIT_SUCCESS;
}
答案 1 :(得分:2)
在linux上有一些信息,您可以使用以下内容:
#include<stdio.h>
#include<sys/utsname.h>
int main(void){
struct utsname detect;
uname(&detect);
printf("System name - %s \n", detect.sysname);
printf("Nodename - %s \n", detect.nodename);
printf("Release - %s \n", detect.release);
printf("Version - %s \n", detect.version);
printf("Machine - %s \n", detect.machine);
printf("Domain name - %s \n", detect.__domainname);
return 0;
}
输出:
System name - Linux
Nodename - michi
Release - 3.19.0-32-generic
Version - #37~14.04.1-Ubuntu SMP Thu Oct 22 09:41:40 UTC 2015
Machine - x86_64
Domain name - (none)
答案 2 :(得分:0)
我认为这是你正在寻找的东西:
<?php
session_start();
$twoDaysBack = time() - 60 * 60 * 24 * 2;
setcookie('Email', '', $twoDaysBack);
$_SESSION = array();
session_unset();
session_destroy();
header("Location:Home.php");
exit();
?>
if (strcmp(str, "system-name") == 0){
printf("%s\n", buffer.sysname);
}
是用于比较字符串的C函数,因此这将检查用户是否输入了strcmp()
。
当你有一个结构时,你可以使用system-name
来访问它的一个元素,你不需要获取它的地址并使用间接。您的.
参数列表末尾还有一个额外的逗号。