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
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.
En 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
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
En 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
En 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.
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:
Nuestro 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):
/* Función para devolver un error en caso de que ocurra */ void error(constchar*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!
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 🙂 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
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
Si te ha gustado el sitio, te ha resultado útil o simplemente quieres colaborar con el sitio para que siga compartiendo contenidos, invítame a un café, una pizza, una ensalada, o lo que se te ocurra.Te lo agradeceré eternamente :)
¡Atención! Este sitio utiliza cookies propias y de terceros para mejorar la experiencia de usuario, Si continúa la navegación en el sitio, asumo que estás de acuerdo con esto, aunque siempre puedes desactivar las cookies en tu navegador. AceptarLeer más
Últimos comentarios