Me dieron una lista de recursos para obtener valor de ellos programáticamente en C. Aunque sé que estos son demasiado específicos y no son realmente importantes o genéricos, aún así debido a mi inteligente jefe, solo quería tener una opinión sobre la lista. Recuerde que puede ejecutarse en cualquier tipo de dispositivo basado en Linux, puede ser de escritorio, portátil, incluso en dispositivos integrados como rpi o edison, gallileo
SERIAL_NO /*vendor specific*/ BATTERY_LEVEL /*not generic*/ HEAP /*only program specific*/ CPU_FREQUENCY /*vendor specific register*/ PROCESSOR_TYPE /*vendor specific register*/ PROCESSOR_SPEED /*vendor specific register*/ STORAGE /*I am not really sure*/ MODEL /*vendor specific register*/ IMEI /*vendor specific driver, not generic*/ DEVICE_TYPE /*vendor specific register*/ ALTITUDE /*vendor specific sensor, not generic*/ SPEED /*vendor specific sensor*/ BEARING /*vendor specific*/Si alguien tiene alguna sugerencia, ya sea técnica o estratégica, por favor aconséjenme. Cansado de requisitos tan ilógicos. Lo siento si de todos modos violé las reglas SO.
Algunas sugerencias:
Encuentre herramientas que descarguen/utilicen la información que está buscando y strace para tener una idea de dónde buscar esta información
Encuentre herramientas de código abierto que descarguen/utilicen la información que está buscando y lea el código
Mire en /proc , por ejemplo cpuinfo
También depende de cuáles son los tipos de dispositivos que le interesan (adaptador de red, dispositivo de bloqueo, etc.). Para muchos de ellos, la forma habitual de obtener información puede ser sysctl , que le proporciona una API C nativa, lo que significa que se supone que la solución es portátil entre todas las plataformas compatibles con este dispositivo. Entonces, lo que puede hacer es buscar qué controlador exacto maneja su dispositivo y ver qué sysctls admite. Para esto, necesita leer su archivo de encabezado o su implementación o su documento, si está presente. man sysctl como referencia. Sin embargo, no conozco ningún tipo de forma "genérica" de obtener información de un dispositivo aleatorio.