Saludos, comunidad de software libre. En esta entrada pongo disponible una librería de C que estoy desarrollando a medida que voy creando proyectos. Se trata de una sencilla API de C con funciones que muchos desarrolladores realmente desean estuvieran disponibles en algún lenguaje de programación. Por ejemplo observe el código siguiente.
Como verán he implementado una sencilla orientación a objetos sobre C. Aunque C no fue diseñado inicialmente orientado a objetos es sencillo implementar esto.
#include "apihack.h"
int main(int argc, char *argv[])
{
char *cad, *mac1 = NULL;
const char **dns;
int y;
NET *nt = NULL;
nt = net_new();
net_set_interf(nt, "wlp16s0");
net_activate_interf(nt);
cad = net_wifi_get_ssid(nt);
puts(cad);
cad = net_wifi_get_signal(nt);
puts(cad);
cad = net_get_ip(nt);
puts(cad);
mac1 = net_get_mac(nt); /* Salvar mac anterior para restaurar luego */
puts(mac1);
cad = net_get_gateway(nt);
puts(cad);
dns = net_get_dns_list();
while(dns[y] != NULL)
puts(dns[y++]);
net_stop_nmanager();
net_set_mac(nt, "54:04:a6:45:d4:80");
net_set_ip(nt, "7.7.7.24");
net_set_gateway(nt, "7.7.7.1");
net_apply_config(nt);
cad = net_get_mac(nt);
puts(cad);
net_set_mac(nt, mac1);
net_apply_config(nt);
cad = net_get_mac(nt);
puts(cad);
net_start_nmanager();
return 0;
}
Realmente se puede ver cuán fácil es administrar una red wifi de esta manera, aunque . Aunque esta API está escrita en C puede compilarse como una librería estática o dinámica y de esta manera utilizarla en lenguajes como python o java por ejemplo.
Hoy en día existen cientos de lenguajes pero casi todos son más de lo mismo. Tienen muchísimas facilidades pero a menudo no las funciones que realmente necesitamos para crear de manera rápida el software y a menudo complejizando la programación. Por ejemplo ahora será más difícil programar una aplicación openGL 3 con la nueva estructura comparado con la estructura anterior, ahora hay que definir un shader… y tenemos que escribir aún más código que con opengl 2.
Para usar esta API coloque los archivos de encabezados (.h) en la misma carpeta de tu proyecto los incluyes con #include «apihack.h«, recuerde que en lenguaje C las comillas significan buscar en la misma carpeta, si usa <> se buscan los archivos en /usr/include
En el archivo netproto.h puede informarse de las definiciones de las funciones. No necesita enlazar nada con -l puesto que esta librería se compila junto con tu ejecutable.
Genial, colega
Genial…. ahora a investigar como crear algo parecido con Python que use tu biblioteca (ya me han jalado las orejas par de veces por eso de decirle «librería» a las «bibliotecas»…. puristas 😉 ) y lo combine con GTK, Zenity, Qt o lo que sea que nos saque de la CLI que no todos ven con buenos ojos ese fondo oscuro y las letricas que tanto amo….
Ah y gracias por darle a este modesto editor algo en lo que trabajar (usar tags y formato de texto para resaltar algunas cosas del post y así intentar maximizar la captura de atención en las partes importantes)
En UNIX siempre fue libreria en windows se empezo a llamar biblioteca dll de hecho la palabra dll simula libros si miras la d es el borde del estante y y las 2 eles son los libritos recostados a la d DLL
Para usar esta libreria con python se debe compilar como una libreria .so y luego despe pyhton u otro lenguaje se pueden importar los simbolos dinamicamente del archivo proto una vez se copile de esta forma las funciones son accesibles desde cualquier lenguaje se pudieranusar hasta desde nodejs