Para terminar con las funciones relacionadas con el manejo de ficheros veremos chmod(), chown() , stat() , readdir(), opendir(), scandir(). La función chmod() tiene el mismo uso que el comando del mismo nombre: cambiar los modos de acceso permitidos para un fichero en concreto. Por mucho que estemos utilizando C, nuestro programa sigue sujeto a las restricciones del Sistema de Ficheros, y sólo su propietario o root podrán cambiar los modos de acceso a un fichero determinado. Al crear un fichero, bien con creat() o bien con open(), éste tiene un modo que estará en función de la máscara de modos… Continuar leyendo


En linux tenemos dos grupos de funciones para lectura y escritura de ficheros. Las funciones open(), write(), read() y close() son de algo más bajo nivel y específicas de linux. Dichas funciones serán tratadas en este artículo y dejaré ejemplos de cómo abrir y escribir archivos binarios. Los que desean utilizar funciones que son estándar de C, les recomiendo que lean este artículo – Comencemos por crear un fichero. Existen dos maneras de abrir un fichero, open() y creat(). Antiguamente open() sólo podía abrir ficheros que ya estaban creados por lo que era necesario hacer una llamada a creat() para llamar a open() posteriormente. A día… Continuar leyendo


Repaso de las funciones: Fork y wait: Para crear nuevos procesos, el UNIX dispone únicamente de una llamada al sistema, fork, sin ningún tipo de parámetros. Su prototipo es int fork(); Al llamar a esta función se crea un nuevo proceso (proceso hijo), idéntico en código y datos al proceso que ha realizado la llamada (proceso padre). Los espacios de memoria del padre y el hijo son disjuntos, por lo que el proceso hijo es una copia idéntica del padre que a partir de ese momento sigue su vida separada, sin afectar a la memoria del padre; y viceversa. Siendo más… Continuar leyendo


Una situación muy habitual dentro de un programa es la de crear un nuevo proceso que se encargue de una tarea concreta, descargando al proceso principal de tareas secundarias que pueden realizarse asíncronamente o en paralelo. Linux ofrece varias funciones para realizar esto: system(), fork() y exec(). Con system() nuestro programa consigue detener su ejecución para llamar a un comando de la shell (“/bin/sh” típicamente) y retornar cuando éste haya acabado. Si la shell no está disponible, retorna el valor 127, o –1 si se produce un error de otro tipo. Si todo ha ido bien, system() devuelve el valor… Continuar leyendo


Este manual es ideal para aprender a programar en el lenguaje C bajo el sistema operativo Linux. Nivel de dificultad: Intermedio/Experto Al crear los artículos, asumo que ya tienen conceptos básicos de programación (sino lo tienen, recomiendo que visiten mi manual básico e intermedio de C++). Si tienen alguna duda, pueden dejar comentarios en los artículos, que con gusto los responderé. Índice: C en Linux – Introducción Argumentos y Estructuras de control en C – Linux Creación y duplicación de procesos en C (Parte I) – Linux Creación y duplicación de procesos en C (Parte II) – Linux Archivos en… Continuar leyendo


El lenguaje C tiene varias estructuras de control para bucles y bifurcaciones condicionales. Argumentos en C pasados por el sistema operativo: En este caso, si usas la consola linux tenés que compilar el programa: gcc -o nombre nombre.c y luego ejecutarlo: ./nombre holamundo 2 El paso de compilación y ejecución es el mismo para los siguientes ejemplos. Ingreso de datos a través del programa en ejecución: Ejemplo de If, While y Switch: Ejemplo de For y vectores:


GCC (GNU Compiler Collection): es el compilador creado por el proyecto GNU. Se trata de una colección de programas libres integrados capaces de compilar diversos lenguajes de programación, entre estos C, C++, Objective-C, Java, Ada y Fortran. GCC es utilizado en el desarrollo de la mayoría de programas libres. Especialmente, el núcleo Linux depende estrechamente de las funcionalidades de GCC. En la práctica, la abreviación GCC es utilizada para nombrar a tres entidades ligeramente diferentes: 1. la colección completa de compiladores. 2. la parte común a todos los compiladores. 3. el compilador en si. Para referirse exactamente a los compiladores… Continuar leyendo


En esta ocasión les quiero dejar los pasos para tener Apache, Php y Mysql en Ubuntu 13.04 o Mint 15 de manera muy sencilla. LAMP= LINUX APACHE MYSQL PHP –          Instalar el sistema operativo Ubuntu o Mint de  forma predeterminada (Recomendado para gente sin experiencia en Linux). –          Una vez instalado el sistema operativo empezamos a instalar y configurar todo como para tener lo siguiente: servidor web apache, php y mysql. 1 – Tener privilegios de root: sudo su 2 – Instalar MySql: apt-get install mysql-server mysql-client New password for the MySQL «root» user: <– ingresatucontraseña Repeat password for the MySQL «root»… Continuar leyendo


En este tutorial se explica la instalación de un servidor de archivos Samba para Ubuntu 13.04 o Mint 15 y cómo configurarlo para compartir archivos a través del protocolo SMB, como así también la forma de agregar usuarios. 1 – Tener privilegios de root: sudo su 2 – Instalar Samba: apt-get install libcups2 samba samba-common – Editar: vi /etc/samba/smb.conf – Descomentar la linea security = user […] # «security = user» is always a good idea. This will require a Unix account # in this server for every user accessing the server. See # /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html # in the samba-doc package for details.… Continuar leyendo


Introducción Los últimos 20 años han sido testigos de avances masivos en las áreas de computación, el hardware se ha ido abaratando cada vez más y a su vez se ha ido haciendo más potente a tal punto que las computadoras de escritorio de hoy, tienen la potencia que tenían mainframes de años anteriores. Además del hardware la segunda área de avances masivos es la de las comunicaciones, avances tales como los sistemas de comunicación vía satélite y sistemas de telefonía digital entre otros que hacen posible conectar económicamente y eficientemente con otros sistemas informáticos separados físicamente, esto ha llevado… Continuar leyendo