¿Harto de que ponga todas mis andanzas en terminal de Linux de forma muy pobre y sin color? ¿Que casi no se distingue la entrada de datos de la respuesta de los programas? Y eso que intento que quede todo claro, pero en ocasiones no es fácil de conseguir, y con la cantidad de ejemplos que pongo por aquí no es sostenible tener que editarlos todo el rato para que queden bien en HTML.… Leer artículo completo
Un plugin de WordPress para hacer demostraciones animadas de comandos de terminal: simterm
Procesar argumentos de entrada en nuestros shell scripts con getopt
Hace unos días analizamos cómo tratar los argumentos de entrada desde un shell script en Bash de una manera sencilla. Aunque, cuando la cosa se complica, debemos utilizar herramientas algo más avanzadas. Tal y como hicimos con getopt para C [parte 1, parte 2], vamos a hacer lo mismo en un shell script.
Aunque aquí tenemos dos posibilidades, que hacen prácticamente lo mismo getopt y getopts.… Leer artículo completo
Cómo procesar múltiples argumentos de entrada en scripts para Bash
Los argumentos de entrada de un programa nos sirven para modificar ligeramente el comportamiento de un programa dentro de las opciones que nos permita su desarrollador. Y, sobre todo, siempre que trabajamos con programas para consola, es muy buena idea permitir que nuestros usuarios puedan utilizar funciones extras o especificar sus propios parámetros de trabajo sin necesidad de modificar el programa.
Si trabajáis con lenguajes como C o C++ podéis leer algo de información al respecto:
- Cosas que damos por hechas en C/C++: int main(int argc, char *argv[])
- Cómo gestionar los parámetros de nuestros programas con getopt en C
- Cómo gestionar los parámetros de un programa en C (parte 2: parámetros largos)
Pero, cuando hacemos algún script en Bash para línea de comandos, también puede resultar muy útil, tanto para especificar archivos de entrada, como las propias opciones de nuestro programa.… Leer artículo completo
Cómo gestionar los parámetros de un programa en C (parte 2: parámetros largos)
Hace unos días publiqué Cómo gestionar los parámetros de nuestros programas con getopt en C como una introducción a la gestión de los argumentos desde nuestros programas en C. De esta forma podremos hacer nuestros programas más flexibles aceptando una entrada del usuario en forma de parámetros y así modificar el comportamiento.
Antes de nada: WordPress cuando ve dos guiones seguidos (- y -) lo interpreta como un guión largo.… Leer artículo completo
Flags en un enum en C
Las flags, son opciones binarias que acompañan un dato o un sistema y valen para informar o definir su comportamiento o su estado entre otras cosas.En muchos casos, utilizaremos flags para ver el resultado de una operación, imaginémonos que estamos pasando una serie de tests a un dato de texto:
- El dato no está vacío
- El dato tiene más de 3 letras
- El dato tiene menos de 20 letras
- El dato tiene caracteres no numéricos
- El dato tiene caracteres no números/letras
- El dato tiene caracteres de control
- El dato tiene caracteres no válidos
- El dato tiene formato de fecha
- El dato tiene formato de hora
- El dato tiene formato de teléfono
- El dato tiene formato de coordenadas
Bueno, así puedo poner muchas condiciones, lo importante es la forma de almacenarlo.… Leer artículo completo
Cliente TCP no bloqueante en C, en el que podemos enviar y recibir en cualquier momento
Hace tiempo veíamos un artículo de un servidor que fuera capaz de aceptar múltiples conexiones, ahora, toca le toca el turno a la implementación del cliente.
En principio, vamos a implementar un cliente sencillo, en el que conectaremos a un servidor y nos permitirá enviar texto que escribamos por teclado. No podremos recibir nada del servidor, pero nos servirá como primera aproximación:
… Leer artículo completo1
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <errno.h>
#include <unistd.h>
#define MENS_MAX_LEN 500
void usage()
{
fprintf (stderr, "Wrong arguments.Solución temporal al problema con udev 171
Desde Mayo de 2011 tenemos a nuestra disposición una de las versiones con más bugs de udev, este gestor de dispositivos de Linux. En concreto, el bug del que hablo está apareciendo desde Julio/Agosto de este año. La forma de reproducirlo es muy fácil, tenemos que tener el servidor X con la configuración automática (en muchas distribuciones) o utilizando dispositivos de eventos, desde el arranque, ni el teclado ni el ratón funcionan.… Leer artículo completo
Número variable de argumentos en una función de C
Si habéis programado en C, seguramente la primera función que aprendisteis a utilizar era printf() ; y en todo el tiempo que pasasteis estudiando C no encontrasteis una función similar. Y es que esta función puede tener un número indeterminado de parámetros y es capaz de analizarlos todos.
Y es que quitando printf(), scanf() y derivadas de estas, la necesidad de una función con múltiples parámetros casi no se nos presenta.… Leer artículo completo
Por qué no debemos utilizar gets()
A veces me sorprendo (como profesor de programación) de que en muchos sitios siguen enseñando la función gets() para la entrada de datos desde teclado sin explicar lo que puede pasar.
gets() es una función peligrosa. Imaginemos que escribimos el siguiente programa:
1
2
3
4
5
6
7
8
9
10
11
12Ahora la compilamos, ejecutamos e introducimos un texto de prueba:
… Leer artículo completo$ gcc -o test3 test3.c
/tmp/ccK2P2ON.o: In function `main’:
test3.c:(.text+0x32): warning: the `gets’ function is dangerous and should not be used.
Últimos comentarios