Publi

  • Buscar un archivo en el PATH en C

    En principio si vamos a ejecutar un programa con popen() o exec*() no habría problema. Siempre que exec sea de la familia de los exec*p(), es decir execvp(), execlp(), execvpe(), ya que estos buscan en la variable de entorno PATH el ejecutable, aunque los demás exec no lo hacen y requieren el fichero y path completo.

    Podemos utilizarla, por ejemplo para ahorrarle a exec el trabajo de tener que buscar en el PATH si vamos a hacer muchas llamadas a un ejecutable o para mostrar al usuario la ruta y el nombre de archivo de un programa que va a ejecutar.… Leer artículo completo

  • Ejecutar una orden externa redirigiendo STDIN [C]

    Cuando lo hacemos desde la línea de comando, es muy fácil:

    echo -e «david\njose\nalfredo\nzacarias\npatrick\ngaspar» | sort

    Pero a la hora de querer hacer un programa que ejecute la orden sort, pasándole una serie de líneas no es tan intuitivo.

    Para ello, he construido una tubería, y para ello hacemos que el descriptor STDIN_FILENO sea input[0] es decir, el descriptor de lectura de la pipe (con dup2).
    Luego pasamos las líneas que necesitemos a la pipe a través del descriptor input[1] y lo cerramos para dar por finalizada la entrada de datos.… Leer artículo completo