C++ 中的 utsname/uname [关闭]

Posted

技术标签:

【中文标题】C++ 中的 utsname/uname [关闭]【英文标题】:utsname/uname in C++ [closed] 【发布时间】:2021-05-15 12:57:33 【问题描述】:

我正在编写一个程序,它使用 标头和名称函数来显示操作系统名称、版本等。我已经包含了标头并调用了该函数,但是,我得到了指出无法识别头文件的致命错误。我在网上看到的所有内容都显示了我用作代码示例的 main.cpp 文件。正确链接此头文件的任何帮助都会有很大帮助!

我目前在 VS、CLion 和 csegrid 上运行。

【问题讨论】:

【参考方案1】:

我收到致命错误,指出无法识别头文件

您需要先安装提供该头文件(以及更多)的软件包。

Ubuntu:

sudo apt install linux-libc-dev

Fedora:

sudo dnf install glibc-headers

如果您使用任何其他操作系统,则需要使用操作系统提供的工具找到正确的软件包

然后,如果你有其他一切,这应该编译并显示信息:

#include <sys/utsname.h>

#include <iostream>

// a small helper to display the content of an utsname struct:
std::ostream& operator<<(std::ostream& os, const utsname& u) 
    return os << "sysname : " << u.sysname << '\n'
              << "nodename: " << u.nodename << '\n'
              << "release : " << u.release << '\n'
              << "version : " << u.version << '\n'
              << "machine : " << u.machine << '\n';


int main() 
    utsname result;      // declare the variable to hold the result

    uname(&result);      // call the uname() function to fill the struct

    std::cout << result; // show the result using the helper function

我的 Ubuntu 20.04 (WSL2) 的示例输出:

sysname : Linux
nodename: TED-W10
release : 4.19.104-microsoft-standard
version : #1 SMP Wed Feb 19 06:37:35 UTC 2020
machine : x86_64

【讨论】:

以上是关于C++ 中的 utsname/uname [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

什么会导致 C++ 中的分段错误? [关闭]

函数调用中的意外编译错误(C++)[关闭]

不允许从 C++ 中的某个类继承 [关闭]

iOS设备中的C++代码性能下降[关闭]

使用 C++ 的 Ubuntu 中的文件搜索器 [关闭]

删除类 C++ 中的对象 [关闭]