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

estrellaestrellaestrellaestrellaestrella(1)
Publicado el 15 de Mayo del 2015 por xve
1.476 visualizaciones desde el 15 de Mayo del 2015. Una media de 14 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
estrellaestrellaestrellaestrellaestrella(1)

Publicado el 15 de Mayo del 2015gráfica de visualizaciones de la versión: Versión 1.0
1.477 visualizaciones desde el 15 de Mayo del 2015. Una media de 14 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 (1)

OP
11 de Mayo del 2017
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar la versión: Versión 1.0

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

http://lwp-l.com/s3164