Herramientas de usuario

Herramientas del sitio


notas:programacion

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
notas:programacion [2011/07/07 12:40] – [Notas generales de programación] cayunotas:programacion [2014/02/07 18:02] (actual) – [IOCTLs] cayu
Línea 1: Línea 1:
 ===== Programación ===== ===== Programación =====
 +===== SCRIPTS =====
 +
 +[[notas:programacion:Introducción a AWK]]
  
 ===== IOCTLs ===== ===== IOCTLs =====
Línea 8: Línea 11:
  
 [[notas:programacion:The Linux CDROM interface]] [[notas:programacion:The Linux CDROM interface]]
 +
 +[[notas:programacion:Sockets en Linux]]
 ===== Notas generales de programación ====== ===== Notas generales de programación ======
  
Línea 89: Línea 94:
 <code> <code>
  running  running
 +</code>
 +
 +
 +=== 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>
 +"10.1.1.5","255.255.255.0","Equipo de Red","Red de casa","","DHCP","","","","",""
 +</code>
 +
 +<code bash>
 +sed 's/[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}/"&"/g'
 </code> </code>
  
Línea 118: Línea 136:
 <code bash> <code bash>
 echo "tmp=$variable; tmp /= 1;tmp" | bc echo "tmp=$variable; tmp /= 1;tmp" | bc
 +</code>
 +
 +=== Pasar mayúculas y minúsculas ===
 +
 +<code>
 +echo hola | tr '[:lower:]' '[:upper:]'
 +echo HOLA | tr '[:upper:]' '[:lower:]'
 </code> </code>
  
Línea 158: Línea 183:
          }          }
          END { print "" }' total_size=$(stat -c '%s' "${1}") count=0          END { print "" }' total_size=$(stat -c '%s' "${1}") count=0
 +}
 +</code>
 +
 +
 +=== Sockets en PHP ===
 +
 +**servidor-tcp.php**
 +<code php>
 +<?php
 +$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
 +if (!$socket) {
 +  echo "$errstr ($errno)<br />\n";
 +} else {
 +  while ($con = stream_socket_accept($socket)) {
 +    fwrite($con, 'La hora local es ' . date('n/j/Y g:i a') . "\n");
 +    fclose($con);
 +  }
 +  fclose($socket);
 +}
 +?>
 +</code>
 +
 +
 +**servidor-udp.php**
 +<code php>
 +<?php
 +$socket = stream_socket_server("udp://127.0.0.1:1113", $errno, $errstr, STREAM_SERVER_BIND);
 +if (!$socket) {
 +    die("$errstr ($errno)");
 +}
 +
 +do {
 +    $pqt = stream_socket_recvfrom($socket, 1, 0, $peer);
 +    echo "$peer\n";
 +    stream_socket_sendto($socket, date("D M j H:i:s Y\r\n"), 0,
 +    $peer);
 +} while ($pqt !== false);
 +
 +?>
 +</code>
 +
 +**ascii.c**
 +<code c>
 +#include <stdio.h>
 +
 +int main()
 +{
 +   int n;
 +   for (n=16; n<256;n+=4)
 +      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);
 +   return 1;
 } }
 </code> </code>
Línea 265: Línea 342:
   while (*sem<=0){};   while (*sem<=0){};
   *sem-=1;   *sem-=1;
 +}
 +</code>
 +
 +=== Uso de la Función div() ===
 +
 +
 +**Sintaxis:**
 +
 +div_t div(int num, int denom);
 +
 +**Descripcion:** Calcula el cociente y resto de la división del numerador num entre el denominador denom. Si la división es inexacta, el cociente resultante es el entero de menor magnitud que es el más próximo al cociente algebraico. Si el resultado no puede ser representado, el comportamiento no está definido; de lo contrario, quot * denom + rem igualará num.
 +
 +
 +<code c>
 +#include <stdlib.h>
 +#include <stdio.h>
 + 
 +int main()
 +{
 +   div_t d;
 +   int num, denom;
 + 
 +   puts( "Escriba el numerador y el denominador (separados por un espacio):" );
 +   scanf( "%d %d", &num, &denom );
 +   d = div( num, denom );
 +   printf( "ldiv( %d, %d ) : cociente = %d, resto = %d\n", num, denom, d.quot, d.rem );
 + 
 +   return 0;
 } }
 </code> </code>
notas/programacion.1310042440.txt.gz · Última modificación: 2011/07/07 12:40 por cayu