Obtener información del sistema y del proceso mediante programación C y Shell en Linux

Cada vez que inicia un nuevo proceso en Linux, se crea un archivo en la carpeta /proc/ con el mismo nombre que la identificación del proceso. En esa carpeta, hay un archivo llamado «estado» que tiene todos los detalles del proceso. Podemos obtener esa información de proceso a través de shell de la siguiente manera:

cat /proc/1/status

to-get-process-information-using-shell

Como puede verse, muestra la mayor parte de la información sobre el proceso.

Nota: En este caso, la identificación del proceso es 1, se puede cambiar según sea necesario.

Puede obtener la información del sistema a través del shell . La información básica del sistema se almacena en un archivo llamado os-release en la carpeta /etc/.

cat /etc/os-release

System-information-through-shell

También puede obtener la información del sistema mediante la programación en C. El siguiente código se utiliza para obtener los detalles del sistema. En este código, utsname mantiene una estructura que tiene los detalles del sistema como sysname nodename, release, version, etc.

#include<stdio.h>
#include<stdlib.h>
#include<errno.h>
#include<sys/utsname.h>
int main()
{
   struct utsname buf1;
   errno =0;
   if(uname(&buf1)!=0)
   {
      perror("uname doesn't return 0, so there is an error");
      exit(EXIT_FAILURE);
   }
   printf("System Name = %s\n", buf1.sysname);
   printf("Node Name = %s\n", buf1.nodename);
   printf("Version = %s\n", buf1.version);
   printf("Release = %s\n", buf1.release);
   printf("Machine = %s\n", buf1.machine);
}

En la ejecución, el código anterior dará el siguiente resultado:

system-information-though-c

Para obtener información del proceso mediante la programación en C, utilice el siguiente código. En este código, ejecutamos el comando de Linux a través del programa ac para obtener los detalles del proceso.

#include<stdio.h>
#include<stdlib.h>
int main()
{
   int r=system("cat /proc/1/status");
}

En la ejecución, el código anterior dará el siguiente resultado:

to-get-process-information1

Publicación traducida automáticamente

Artículo escrito por manav014 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *