notas:programacion
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
notas:programacion [2011/06/15 15:05] – cayu | notas:programacion [2014/02/07 18:02] (actual) – [IOCTLs] cayu | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
===== Programación ===== | ===== Programación ===== | ||
+ | ===== SCRIPTS ===== | ||
+ | |||
+ | [[notas: | ||
===== IOCTLs ===== | ===== IOCTLs ===== | ||
Línea 8: | Línea 11: | ||
[[notas: | [[notas: | ||
+ | |||
+ | [[notas: | ||
===== Notas generales de programación ====== | ===== Notas generales de programación ====== | ||
Línea 89: | Línea 94: | ||
< | < | ||
running | running | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Agregar comillas a direcciones IP en archivo CSV === | ||
+ | |||
+ | Por ejemplos nos dieron un archivo CSV con todos los campos delimitados por comas, menos las direcciones IP | ||
+ | |||
+ | < | ||
+ | " | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | sed ' | ||
</ | </ | ||
Línea 118: | Línea 136: | ||
<code bash> | <code bash> | ||
echo " | echo " | ||
+ | </ | ||
+ | |||
+ | === Pasar mayúculas y minúsculas === | ||
+ | |||
+ | < | ||
+ | echo hola | tr ' | ||
+ | echo HOLA | tr ' | ||
</ | </ | ||
Línea 135: | Línea 160: | ||
</ | </ | ||
+ | === can you get cp to give a progress bar like wget === | ||
+ | http:// | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/sh | ||
+ | cp_p() | ||
+ | { | ||
+ | | ||
+ | | awk '{ | ||
+ | count += $NF | ||
+ | if (count % 10 == 0) { | ||
+ | | ||
+ | | ||
+ | for (i=0; | ||
+ | printf " | ||
+ | | ||
+ | for (i=percent; | ||
+ | printf " " | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | END { print "" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | |||
+ | === Sockets en PHP === | ||
+ | |||
+ | **servidor-tcp.php** | ||
+ | <code php> | ||
+ | <?php | ||
+ | $socket = stream_socket_server(" | ||
+ | if (!$socket) { | ||
+ | echo " | ||
+ | } else { | ||
+ | while ($con = stream_socket_accept($socket)) { | ||
+ | fwrite($con, | ||
+ | fclose($con); | ||
+ | } | ||
+ | fclose($socket); | ||
+ | } | ||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | |||
+ | **servidor-udp.php** | ||
+ | <code php> | ||
+ | <?php | ||
+ | $socket = stream_socket_server(" | ||
+ | if (!$socket) { | ||
+ | die(" | ||
+ | } | ||
+ | |||
+ | do { | ||
+ | $pqt = stream_socket_recvfrom($socket, | ||
+ | echo " | ||
+ | stream_socket_sendto($socket, | ||
+ | $peer); | ||
+ | } while ($pqt !== false); | ||
+ | |||
+ | ?> | ||
+ | </ | ||
+ | |||
+ | **ascii.c** | ||
+ | <code c> | ||
+ | #include < | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | int n; | ||
+ | for (n=16; n< | ||
+ | printf ("%d.- %c %d.- %c %d.- %c %d.- %c %d.- %c %d.- %c %d.- %c\n", | ||
+ | n, n, n+1, n+1, n+2, n+2, n+3, n+3, n+4, n+4, n+5, n+5, n+6, n+6); | ||
+ | | ||
+ | } | ||
+ | </ | ||
===== Problema clásicos de programación ====== | ===== Problema clásicos de programación ====== | ||
Línea 147: | Línea 248: | ||
Peluquero dormilón | Peluquero dormilón | ||
Introducción | Introducción | ||
- | Una ciudad tiene una peluquería con dos puertas y unas pocas sillas. Los clientes entran por una puerta y salen por la otra. Dado que el negocio es chico, a lo sumo un cliente o el peluquero se pueden mover en al a la vez. El peluquero pasa su vida atendiendo clientes, uno por vez. Cuando no hay ninguno, el peluquero duerme en su silla. Cuando llega un cliente y encuentra que el peluquero está durmiendo, el cliente lo despierta, se sienta en la silla del peluquero y duerme mientras el peluquero le corta el pelo. Si el peluquero está ocupado cuando llega un cliente, el cliente se va a dormir a una de las otras sillas. | + | Una ciudad tiene una peluquería con dos puertas y unas pocas sillas. |
+ | Los clientes entran por una puerta y salen por la otra. | ||
+ | Dado que el negocio es chico, a lo sumo un cliente o el peluquero se pueden mover en al a la vez. | ||
+ | El peluquero pasa su vida atendiendo clientes, uno por vez. | ||
+ | Cuando no hay ninguno, el peluquero duerme en su silla. | ||
+ | Cuando llega un cliente y encuentra que el peluquero está durmiendo, el cliente lo despierta, | ||
+ | se sienta en la silla del peluquero y duerme mientras el peluquero le corta el pelo. | ||
+ | Si el peluquero está ocupado cuando llega un cliente, el cliente se va a dormir a una de las otras sillas. | ||
+ | Despúes | ||
+ | Si hay clientes esperando, el peluquero despierta a uno y espera que el cliente se siente. | ||
+ | Sino, se vuelve a dormir hasta que llegue un cliente. | ||
Implementación | Implementación | ||
La implementación propuesta esta desarrollada en C usando semáforos. | La implementación propuesta esta desarrollada en C usando semáforos. | ||
Línea 231: | Línea 342: | ||
while (*sem< | while (*sem< | ||
*sem-=1; | *sem-=1; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | === Uso de la Función div() === | ||
+ | |||
+ | |||
+ | **Sintaxis: | ||
+ | |||
+ | div_t div(int num, int denom); | ||
+ | |||
+ | **Descripcion: | ||
+ | |||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main() | ||
+ | { | ||
+ | div_t d; | ||
+ | int num, denom; | ||
+ | |||
+ | puts( " | ||
+ | | ||
+ | d = div( num, denom ); | ||
+ | | ||
+ | |||
+ | | ||
} | } | ||
</ | </ |
notas/programacion.1308150332.txt.gz · Última modificación: 2011/06/15 15:05 por cayu