GNU/Linux >> Belajar Linux >  >> Linux

C++ dapatkan nama distribusi linux\versi

Anda cukup menggunakan fungsi:

int uname(struct utsname *buf);

dengan menyertakan tajuk

#include <sys/utsname.h>

Itu sudah mengembalikan nama &versi sebagai bagian dari struktur:

   struct utsname 
   {
       char sysname[];    /* Operating system name (e.g., "Linux") */
       char nodename[];   /* Name within "some implementation-defined network" */
       char release[];    /* OS release (e.g., "2.6.28") */
       char version[];    /* OS version */
       char machine[];    /* Hardware identifier */
       #ifdef _GNU_SOURCE
          char domainname[]; /* NIS or YP domain name */
       #endif
   };

Apakah saya melewatkan sesuatu?


Untuk distro linux terbaru, Anda dapat menggunakan berikut untuk mendapatkan info OS. Outputnya cukup standar dan dapat diuraikan menggunakan spesifikasi berikut:

https://www.freedesktop.org/software/systemd/man/os-release.html

cat /etc/os-release

Keluaran sampel:

NAME=Fedora
VERSION="27 (Twenty Seven)"
ID=fedora
VERSION_ID=27
PRETTY_NAME="Fedora 27 (Twenty Seven)"

NAME="Ubuntu"
VERSION="16.04.4 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.4 LTS"
VERSION_ID="16.04"

NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
ID_LIKE=archlinux
ANSI_COLOR="0;36"

Linux
  1. Memulai NetworkManager di Linux

  2. Linux – Bagaimana Memilih Distribusi??

  3. Distribusi Kali Linux Kustom Saya

  1. Cara mendapatkan ukuran direktori di Linux

  2. Mendeteksi Windows atau Linux di C, C++

  3. C++ Dapatkan string dari Clipboard di Linux

  1. Bagaimana cara mendapatkan nama dan versi distribusi Linux?

  2. Dapatkan alamat IP dari sebuah antarmuka di Linux

  3. Cara mendapatkan total penggunaan cpu di Linux menggunakan C++