elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 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 ... 122
101  Foros Generales / Noticias / Re: Linux sopla las velas en su evento europeo más importante en: 6 Octubre 2016, 12:43 pm
Joder, ya estoy harto de las barbaridades de los periodistas y pseudoperiodistas. Faltas gramaticales, ortográficas, concordancias incorrectas y, sobre todo y lo que es aplicable a este caso, su falta de interés a la hora de comprobar fuentes y la corrección de las expresiones utilizadas:
El kernel ya suma 53.000 ficheros de origen

Source file se traduce como fichero/archivo fuente, por ser archivos que contienen código fuente, no como fichero de origen.

Y este nivel periodístico se encuentra hasta en el sector profesional. Cuando en el 2009 se cumplieron 40 años de la llegada a la luna, no recuerdo si fue en Radio Nacional o en la COPE, cuando el periodista que narraba el acontecimiento llego a la mítica frase de Neil Armstrong la cito de forma incorrecta de la siguiente manera: "Esto es un pequeño salto para la humanidad pero un gran paso para el hombre". ¡Mal! ¡MAL! ¡MUY MAL! El paso fue pequeño y el salto grande. Además el orden es incorrecto, primero fue el paso pequeño para el hombre y luego el salto grande para la humanidad...

Hasta las narices estoy de los periodistas que han surgido de la LOGSE (y posteriores reformas, si las ha habido, y supongo que anteriores también...), de su nivel lingüístico y su capacidad de recavar información que deja tanto, tantísimo, que desear...

Hala, que a gusto me acabo de quedar...
102  Sistemas Operativos / GNU/Linux / Re: apt-get upgrade ? en: 6 Octubre 2016, 12:08 pm
Lo que te sale se llama paginador, no se si será less, more o algo específico de apt, y sirve para mostrar una cantidad indeterminada de datos en pantallas que no tienen desplazamiento vertical. Con ellos puedes ver, por ejemplo, el contenido de un archivo de texto que tiene más líneas que las del terminal deplazándote hacia arriba y hacia abajo con las teclas de dirección (al menos con less). Para salir solo pulsa q.

¡Saludos!
103  Foros Generales / Noticias / Re: "Hasta que no haya una desgracia, nadie se tomará en serio el racismo en ... en: 29 Septiembre 2016, 03:24 am
Este señor siempre puede presentarse a oposiciones para la policía. A los dos días de entrar en el cuerpo los culpables de las amenazas estarían bien sentados delante de un juez. Si no quiere entrar en la policía supongo que lo tendrá jodido para que hagan algo con su caso...
104  Programación / Programación C/C++ / Re: Cambiar valor de una variable de tipo estructura en: 27 Septiembre 2016, 12:56 pm
Sobrecarga el operador de asignación = para poder asignar a la clase (un struct en C++ es una clase con acceso público por defecto) un valor entero. Si mal no recuerdo los compiladores crean por defecto un operador de asignación miembro a miembro, así que otra opción que tienes es hacer unobjeto = constructor(parametros) (nada aconsejable si algún miembro tiene memoria dinámicamente asignada). O crea una función miembro que asigne un valor entero al miembro de la clase que corresponda...
105  Programación / Programación C/C++ / Re: Ayuda T_T - Ejercicio de Archivos en C en: 26 Septiembre 2016, 14:32 pm
¡Buenas!

Lo del retorno de carro no se de donde te sale. De todas formas yo lo que haría, por simplicidad de código y sabiendo que cada campo está delimitado por comas, sería leer cada línea utilizando fgets, que también extrae el salto de línea que hay al final de cada línea, (puedes suponer que cada campo tiene una cantidad menor a, por ejemplo, 100 caracteres, 300 en total), y utilizar cadenas para almacenar cada campo utilizando sscanf para hacer una lectura con formato sobre la línea leída:
Código
  1. while(fgets(linea))
  2. {
  3.    sscanf(linea,"%s,%s,%s", dni, nombre, pais);
  4.    //ahora haces lo que quieras con esos datos
  5. }
  6.  

¡Saludos!

Acabo de ver que los nombres pueden tener espacios, así que el código anterior no sirve. En lugar de sscanf tendrías que utilizar strtok, incluida en string.h, utilizando la coma como delimitador, combinada con strcpy.
106  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Hay algún problema con la publicidad. en: 23 Septiembre 2016, 03:10 am
Pues no.

Entrando como visitante no me sale la publicidad, sino no hubiese dado el aviso... ¬¬

Ni en la cabecera ni bajo los posts.
107  Foros Generales / Sugerencias y dudas sobre el Foro / Hay algún problema con la publicidad. en: 23 Septiembre 2016, 02:03 am
¡Buenas!

Os aviso de que en XUbuntu 16.04 + Firefox 48 no se ve la publicidad, no se si hay algún error, si os he pillado cambiándola o si la habéis quitado de forma voluntaria. Por si a caso os dejo el aviso. Yo no soy partidario de ella, pero el foro es uno de los pocos sitios en los que tengo desactivado uBlock.

¡Saludos!
108  Programación / Programación C/C++ / Re: trabajo de codificacion segun cifrado cesar y juego de ahorca en: 22 Septiembre 2016, 22:15 pm
Me uno a los comentarios anteriores y te digo aquello de "¡Ánimo! ¡Que ya te queda menos!"
109  Sistemas Operativos / GNU/Linux / Re: Problemas de instalacion con muchas distros en: 20 Septiembre 2016, 00:37 am
Lo que tienes que hacer cuando entres en la configuración de tu UEFI es desactivar el secure boot y el fast boot (si el sistema está en castellano pueden aparecer como arranque seguro y arranque rápido o algo parecido). Así que primero desactiva el modo legacy para dejarlo todo como estaba al principio y luego desactiva las opciones que he mencionado (si no las tenías ya desactivadas).

Después de desactivar ambas opciones no deberías de tener problemas para instalar ninguna distro moderna (a no ser que el fabricante de la placa base no respete el estandar UEFI, ahí si que puedes tener problemas para instalar GRUB. Eso lo descubrirás al final del proceso de instalación. XD)
110  Programación / Programación C/C++ / Re: ¿Por qué sucede lo siguiente con el tratamiento de punteros? en: 14 Septiembre 2016, 12:43 pm
¡Buenas!

Lo que pasa con js es que la has utilizado para saber en que posición de memoria has reservado el vector de 256 bytes. Si mueves ese puntero le pierdes la pista a ese bloque y a su contenido, ya que no sabrás dónde empezaba, y luego no podrás utilizar free para liberar la memoria, así que por eso utilizas un puntero auxiliar, str, para llenar ese espacio con los datos que correspondan manteniendo en js la posición de memoria en donde empieza el bloque de datos.

Otra alternativa para hacer lo mismo sería utilizar una variable para indicar un desplazamiento sobre el puntero js, y utilizar aritmética de punteros o notación de subíndices:
Código
  1.    char *GetJSession (FILE *sf) {
  2.      size_t s = 0;
  3.      char *buf = NULL;
  4.      char *js = (char *) calloc (256, sizeof (char));
  5.      //char *str = (char *) js;
  6.      int desplazamiento = 0;
  7.  
  8.      while (getline (&buf, &s, sf) > 0) {
  9.        printf ("%s", buf);
  10.        if (strstr (buf, "JSESSIONID=") != NULL) {
  11.          while (*++buf != '=');
  12.          while (*buf != ';') {
  13.            *(js + desplazamiento) = *buf;
  14.            buf++;
  15.            printf ("%c", *(js + (desplazamiento++)));
  16.          }
  17.        }
  18.      }
  19.    ...
  20.  

Y con notación de subíndices quedaría:

Código
  1.    char *GetJSession (FILE *sf) {
  2.      size_t s = 0;
  3.      char *buf = NULL;
  4.      char *js = (char *) calloc (256, sizeof (char));
  5.      //char *str = (char *) js;
  6.      int desplazamiento = 0;
  7.  
  8.      while (getline (&buf, &s, sf) > 0) {
  9.        printf ("%s", buf);
  10.        if (strstr (buf, "JSESSIONID=") != NULL) {
  11.          while (*++buf != '=');
  12.          while (*buf != ';') {
  13.            js[desplazamiento] = *buf;
  14.            buf++;
  15.            printf ("%c", js[desplazamiento++]);
  16.          }
  17.        }
  18.      }
  19.    ...
  20.  

¡Saludos!

Una cosa que he visto. En ningún momento compruebas que estés dentro del límite de 256 bytes que has reservado para js.

Con el puntero auxiliar debería de comprobar que la diferencia con respecto al inicio sea menor que 256: str - js < 256, y con la variable entera con la que mides el desplazamiento deberías de comprobar que ésta tenga también un valor inferior a 256: desplazamiento < 256. Así te aseguras de no estar accediendo a posiciones de memoria en las que puede que no tengas permisos de lectura/escritura (vamos, que el programa podría crashear en tiempo de ejecución con un error de segmentación).
Páginas: 1 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 ... 122
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines