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
