Código de C/Visual C - Obtener el modelo y numero de serie de un disco duro en C bajo Linux

Imágen de perfil

Obtener el modelo y numero de serie de un disco duro en C bajo Linuxgráfica de visualizaciones


C/Visual C

Publicado el 15 de Mayo del 2015 por xve
1.265 visualizaciones desde el 15 de Mayo del 2015. Una media de 21 por semana
Este código desarrollado en C, devuelve el modelo y numero de serie de un disco duro bajo un sistema linux.

Versión 1.0

Publicado el 15 de Mayo del 2015gráfica de visualizaciones de la versión: Versión 1.0
1.266 visualizaciones desde el 15 de Mayo del 2015. Una media de 21 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Tiene que ejecutarse como root y pasar como parámetro el disco... algo así:
gcc miprograma.c -o miprograma
sudo ./miprograma /dev/sda
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <linux/hdreg.h>
 
int main(int argc, char *argv[])
{
    static struct hd_driveid hd;
    int fd;
 
    if (geteuid() >  0) {
        printf("ERROR: Tienes que ser root\n");
        exit(1);
    }
 
    if ((fd = open(argv[1], O_RDONLY|O_NONBLOCK)) < 0) {
        printf("ERROR: No se puede abrir la unidad %s\n", argv[1]);
        exit(1);
    }
 
    if (!ioctl(fd, HDIO_GET_IDENTITY, &hd)) {
        printf("Modelo del disco: %.40s\n", hd.model);
        printf(" Numero de serie: %.20s\n", hd.serial_no);
    } else if (errno == -ENOMSG) {
        printf("No se ha podido obtener la información del disco indicado\n");
    } else {
        perror("ERROR: HDIO_GET_IDENTITY");
        exit(1);
    }
 
    exit(0);
}



Comentarios sobre la versión: Versión 1.0 (0)


No hay comentarios
 

Comentar la versión: Versión 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s3164