Publi

  • Conociendo el proceso que me ha enviado una señal (signal)

    Hace tiempo hablábamos de capturar señales, aunque en ocasiones, es necesario saber quién me envía esa señal, si por ejemplo nos envían un SIGINT o SIGTERM, tal vez queremos saber qué proceso nos quiere muerto y qué usuario lo ha invocado. O tal vez estamos esperando una señal de control (SIGUSR1, por ejemplo) por parte de un proceso cliente específico.

    El problema es que por nuestro modo actual de direccionar señales (con signal(señal, funcion)) sólo comunicamos el número de señal que se ha recibido, sin más información.… Leer artículo completo

  • Tiempos difíciles

    Llevo muchos días saturado de trabajo y no tengo mucho tiempo para escribir en el blog. Suelo dedicar un tiempo para contestar los correos y los comentarios que dejáis, pero, aunque tengo muchos posts en la cabeza no tengo tiempo para escribirlos.

    Aunque intento sacar unos minutos a la semana 🙂

    Mis disculpas.… Leer artículo completo

  • Instalar y configurar un servidor LAMP

    Lámpara de bajo consumoEn esta ocasión el servidor LAMP a instalar corresponderá con Linux + Apache + MySQL + PHP, intentaré dejarlo todo funcionando.

    Éste es el servidor local que suelo utilizar para mis proyectos web, de todas formas no me quiero meter en necesidades muy avanzadas, ni de seguridad (es un servidor local para hacer pruebas, desarrollar webs, y correr servicios locales; no un servidor de producción), si el servidor está cerrado al exterior, mejor.… Leer artículo completo

  • RIP Dennis Ritchie

    Muchos medios de comunicación y blogs ( 1, 2, 3, 4, 5 por ejemplo ) ya informaron de la noticia. Es una lástima que una de las grandes mentes del siglo XX y parte del XXI pasara tan desapercibida, y es que nos enteramos de la noticia hace 3 días habiendo sucedido hace una semana. Y es que sin él, este blog no existiría (C / C++ / PHP (hecho en C) / Linux (tipo Unix)), tal vez muchas de las cosas que hacemos en el ordenador no serían posibles, a lo mejor ni tendríamos ordenadores en casa, ni MP3, ni gadgets, ni smartphones, tal vez sea demasiado decir, puede que en un mundo paralelo todo esto exista sin su aportación lo que es seguro es que nada de esto sería como lo conocemos.… Leer artículo completo

  • Ocultar los parámetros de nuestro proceso a ps

    password_flickrEn ocasiones, estamos desarrollando una aplicación, y ésta necesita que le pasemos como parámetro, por ejemplo, una contraseña. El gran peligro que esto tiene es que cualquier usuario, pidiendo un listado de procesos con ps podrá ver la contraseña.

    Imaginemos que tenemos una aplicación (que hemos hecho nosotros) que conecta con un servidor, y dado que hemos hecho un script para automatizar el proceso, el nombre de usuario y contraseña los pasaremos como parámetro al ejecutable.… Leer artículo completo

  • Buscando un proceso en C

    Comando topEn ocasiones, nuestros programas requieren que un servicio o un programa esté en ejecución. Algunos servicios los podemos ubicar fácilmente, ya que /var/run ,  /dev/shm u otra ruta contienen un archivo con su PID (Identificador de proceso), otras servicios no figuran en ningún lado. También puede ser que estemos esperando que otro proceso termine y necesitamos averiguar su PID.

    Para todo ello, debemos echar un ojo al contenido de /proc/, ahí encontramos, entre otras cosas, información sobre los procesos en ejecución del sistema.… Leer artículo completo

  • Guía de supervivencia para disfrutar de Linux Mint Debian Edition XFCE (IV : Soporte de idioma, tipografías y plugins de XFCE, complementos, efectos de escritorio con Compiz Fusion)

    Hasta ahora, aunque en la instalación especificamos que queríamos el sistema en idioma español, era sólo para la instalación y algunas aplicaciones que ya instalaban el soporte para varios idiomas. Esto es así porque la instalación no requería de conexión a Internet, y en el DVD de instalación no se incluían los idiomas adicionales. Por ello tendremos que instalarlos.

    Este post será largo, quiero incluir detalles de muchas cosas, y pongo aquí el índice:

    Instalar paquetes de idioma para varias aplicaciones

    A partir de ahora, instalaremos los paquetes de idioma español para Firefox, Thunderbird, LibreOffice y páginas del manual (man):

    $ sudo apt-get install firefox-l10n-es thunderbird-l10n-es libreoffice-l10n-es manpages-es

    También encontramos paquetes para Chromium o para la plataforma KDESC y muchos más.… 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
  • ¡ A los premios Bitácoras 2011 !

    Sé que ni siquiera quedaré de los primeros, pero bueno, este año como muchos otros blogs también participaré, al menos espero dar un poco a conocer el blog con algún enlacillo 🙂
    Votar en los Premios Bitacoras.com
    Si os gusta el blog, dedicad unos segundos y votad, os lo agradeceré, y si también participas, ¡ mándame un comentario con tu blog y le echo un vistazo !… Leer artículo completo

  • Comentarios y críticas en los posts del blog.

    Bueno, voy a hacer un mini-post rápido sobre esto. Me parece un tema ético que todos deberíamos aplicar, aunque no es así.
    Normalmente los usuarios que suelen comentar cualquier blog, lo hacen, al menos con su e-mail de contacto válido, y al menos un nombre con el que se pueden identificar de forma correcta. Aunque cuando se trata de no estar de acuerdo con algo, mucha gente opta por degradar, insultar y expresar su disconformidad metiéndose de lleno rozando la bordería.… Leer artículo completo