GNU/Linux >> Tutoriales Linux >  >> Linux

C++ obtener nombre de distribución de Linux\versión

Simplemente puede usar la función:

int uname(struct utsname *buf);

incluyendo el encabezado

#include <sys/utsname.h>

Ya devuelve el nombre y la versión como parte de la estructura:

   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
   };

¿Me estoy perdiendo algo?


Para distribuciones de Linux recientes, puede usar lo siguiente para obtener la información del sistema operativo. La salida es bastante estándar y se puede analizar utilizando las siguientes especificaciones:

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

cat /etc/os-release

Salidas de muestra:

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. Linux – ¿Cómo elegir una distribución?

  2. Cómo obtener el tamaño del directorio en Linux

  3. ¿Cómo obtener el nombre y la versión de la distribución de Linux?

  4. Obtener la dirección IP de una interfaz en Linux

  5. Cómo obtener el uso total de la CPU en Linux usando C++

¿Cuál es tu distribución de Linux favorita?

10 maneras de empezar con Linux

Obtener información de la CPU en Linux

CrunchBang Linux:la distribución minimalista

Cómo obtener su dirección IP en Linux

BlackArch Linux Una distribución de Linux Pentesting