Publi

  • Flags en un enum en C


    Las flags, son opciones binarias que acompañan un dato o un sistema y valen para informar o definir su comportamiento o su estado entre otras cosas.

    En muchos casos, utilizaremos flags para ver el resultado de una operación, imaginémonos que estamos pasando una serie de tests a un dato de texto:

    1. El dato no está vacío
    2. El dato tiene más de 3 letras
    3. El dato tiene menos de 20 letras
    4. El dato tiene caracteres no numéricos
    5. El dato tiene caracteres no números/letras
    6. El dato tiene caracteres de control
    7. El dato tiene caracteres no válidos
    8. El dato tiene formato de fecha
    9. El dato tiene formato de hora
    10. El dato tiene formato de teléfono
    11. El dato tiene formato de coordenadas

    Bueno, así puedo poner muchas condiciones, lo importante es la forma de almacenarlo.… Leer artículo completo

  • Cómo crear un volumen cifrado en un archivo


    Queremos alojar en un archivo un sistema de archvos, ya sea para probarlo, para organizarnos o para almacenar información sensible. También puede ser una buena solución si tenemos una unidad con una partición en un sistema de archivos FAT32 y queremos establecer permisos de Linux a ciertos archivos, esos archivos podemos almacenarlos en nuestro nuevo volumen, que residirá en un archivo muy grande dentro de la partición FAT.

    Lo primero que debemos hacer es crear un archivo con el tamaño del volumen que queremos crear, no importa lo que escribamos dentro, podemos copiar un fichero grande, o escribir desde un fichero de texto… pero vamos a lo fácil, vamos a crear un archivo que sólo contenga ceros.… Leer artículo completo

  • Creando un mutex con semáforos entre procesos hijos en C [fork()]

    Hemos estado viendo cómo compartir variables entre procesos hijos, y dejamos un poco en el tintero la implementación de mutex en ese caso, esta vez, para implementar el mutex vamos a utilizar semáforos. Estos semáforos también tienen que ser variables compartidas para funcionar correctamente.

    Los semáforos tendrá un funcionamiento peculiar. En principio, pensemos en ellos con los valores 1 y 0. Por tanto, si el semáforo vale 1, el semáforo está abierto y lo haremos 0, pero si vale 0, nos esperaremos hasta que valga 1 (al contrario que un while (semaforo==0); utilizando semáforos, será el sistema operativo el que active nuestro proceso cuando el semáforo vale 1 por lo que podemos utilizar los recursos del sistema para otra cosa mientras).… Leer artículo completo