Publi

  • C.I. XVI: Hashtables VS Arrays, Matemáticas de Borges, renombrar archivos masivamente en Linux, Ejemplos de Crontab, Linux 3.2

    Estos días, aunque inactivos, he seleccionado algunos enlaces que me han parecido interesantes:

    Leer artículo completo
  • Listar archivos dentro de un directorio o carpeta en C

    Árbol de directoriosNuestro software debe buscar archivos dentro de un directorio determinado, ya sea un archivo especial, una recopilación de datos del disco duro, una búsqueda de plugins, etc…

    Hemos elegido lenguaje C para hacer esto, porque en bash podemos llamar a ls o find y apaga y vámonos.

    Estas funciones, nos recordarán al uso de archivos con fopen() y fclose().

    Para usar esta implementación, como veremos en el ejemplo, debemos incluir <sys/types.c> y <dirent.h> y, en principio, empezaremos con un ejemplo sencillo que lista los archivos del directorio actual (una vez tenemos el nombre y la ruta del archivo podemos hacer con él lo que queramos):

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/types.h>
    #include <dirent.h>

    /* Función para devolver un error en caso de que ocurra */
    void error(const char *s);
    /* Función que hace algo con un archivo */
    void procesoArchivo(char *archivo);

    int main()
    {
      /* Con un puntero a DIR abriremos el directorio */
      DIR *dir;
      /* en *ent habrá información sobre el archivo que se está "sacando" a cada momento */
      struct dirent *ent;

      /* Empezaremos a leer en el directorio actual */
      dir = opendir (".");

      /* Miramos que no haya error */
      if (dir == NULL)
        error("No puedo abrir el directorio");
     
      /* Una vez nos aseguramos de que no hay error, ¡vamos a jugar!
    Leer artículo completo
  • Guía de supervivencia para disfrutar de Linux Mint Debian Edition XFCE (I : Instalación)

    Me he decidido a escribir esta guía tras hablar con varios de mis alumnos de clases particulares. Siempre les intento explicar de las ventajas de un sistema operativo GNU/Linux y les animo a probarlo. Aunque la instalación generalmente no sea difícil (en las distribuciones tipo Fedora/Mandriva/Ubuntu/Linux Mint/…) siempre es algo nuevo, y supone una gran cantidad de información nueva para una persona que no ha tenido experiencia en estos sistemas, lo cual puede llegar a saturar a cualquiera.… Leer artículo completo

  • Sed… de venganza (1): Sustituyendo cadenas en múltiples archivos

    3846929292_60721fb24e

    Es uno de los grandes desconocidos y tan temidos comandos de que disponemos. Y es cierto que a veces da pereza mirarse el manual cuando queremos hacer algo que sed podría hacer rápidamente.

    Lo que cuento hoy es su uso más popular (porque sed se puede usar para muuuuuchas cosas) y es muy simple, sustituir en un stream un texto por otro (Donde dije digo, digo Diego).

    Imaginemos un fichero de texto, para ser originales llamémosle README, y en el texto queremos cambiar la palabra «Ireland» por «Spain».… Leer artículo completo

  • Uso de llaves en BASH

    llaves
    Leo en el blog de Thalskarth (proveniente de Tux Files, que a su vez venía de Slice of Linux) un truco para hacer copias de seguridad de un archivo con bash de la siguiente forma:

    cp archivo{,.bk}

    Lo que hacemos es parecido a escribir esto otro:

    cp archivo archivo.bk

    Por lo que podemos intuir fácilmente para qué valen las llaves en este contexto: replicar alternativas. Es decir escribiremos lo que hay antes de la llave, y lo terminaremos con cada una de las opciones de dentro de las llaves que están separadas por comas.… Leer artículo completo

  • Script para subir archivos rápidamente (y actualizarlos)

    Normalmente, cuando estoy desarrollando aplicaciones para Facebook, primero, las hago Offline, ejecutándolas en mi servidor local y, una vez que funcionan, las subo al servidor desde las que se ejecutarán, aunque muchas veces hay ciertos problemas una vez se está ejecutando la aplicación de forma definitiva, que requieren hacer algunas modificaciones más, y con esto, subir varias veces los archivos de los scripts.

    Por otra parte, a veces, en ciertas aplicaciones web, es necesario introducir cierta información nueva (que hago fuera de línea) y cuando todas las novedades han sido introducidas procedo a subirlo todo junto.… Leer artículo completo