Etiqueta: C/C++

    Obtener la dirección MAC local en C/C++

    Este extracto de código muestra cómo obtener a dirección de hardware del adaptador de red en C/C++ en sistemas POSIX. Debería funcionar también en Windows, usando Cygwin o similar. #include <netdb.h>#include <unistd.h>#include <string.h>#include <sys/fcntl.h>#include <sys/errno.h>#include <sys/ioctl.h>#include <sys/socket.h>#include <arpa/inet.h>#include <net/if.h>#include <stdio.h> int main(int argc, char ** argv) { struct ifreq ifr; int s; if ((s = socket(AF_INET, SOCK_STREAM,0)) < 0) { perror("socket"); return -1; } strcpy(ifr.ifr_name, argv[1]); if (ioctl(s, SIOCGIFHWADDR, &ifr) < 0) { perror("ioctl"); return -1; } unsigned char *hwaddr = (unsigned char *)ifr.

    Conociendo GDB segunda parte

    Objetivo Continuar con la exploración de las diferentes posibilidades de GDB, tal como se adelantó en el artículo inicial. Breakpoints condicionales En el artículo anterior vimos cómo colocar un breakpoint en una línea de código arbitraria. Experimentamos la ejecución del programa con GDB y la consecuente detención en el punto indicado. La diferencia entre un breakpoint regular y uno condicional es que la herramienta de depuración no se detiene en él a menos que se cumpla la condición asociada.

    Conociendo GDB

    Objetivo Introducir al lector en el uso de GDB como herramienta para inspeccionar la ejecución de un programa. Introducción A medida que la complejidad de un programa crece se hace más difícil predecir todos los posibles escenarios para una línea de código determinada. Los valores de cada variable en tiempo de ejecución pueden hacer que una porción del programa, que parece estar bien programada, produzca la finalización del proceso por “violación de segmento”.