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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7 8 9 10
21  Programación / Programación General / Re: No me quiere compilar un codigo C++ en dev c++ en: 30 Abril 2019, 01:05 am
El compilador te muestra que errores tienes. Deberías darle un vistazo.
22  Foros Generales / Foro Libre / Re: El fuego devora la Catedral de Notre Dame de París en: 16 Abril 2019, 01:56 am
No es que sea islamófobo ni nada, pero, que la catedral se queme justo en semana santa no parece sospechoso? No sé solo digo, el mundo está lleno de coincidencias extrañas.
Francia y el resto de europa con excepción de algunos países, recibe a refugiados y inmigrantes sin ningún control. Véase el lamentable caso de Suecia.
Y, sin olvidarlo, es una gran pérdida patrimonial, por su antigüedad. No olvidemos las pérdidas patrimoniales causadas por el EI en Irak, o en Afganistán por los talibanes.
23  Programación / Programación C/C++ / Re: Implementación de printf no termina con null las cadenas en: 8 Abril 2019, 03:29 am
Gracias, funciona perfectamente! Gracias a ambos!
Ese error se debe a que te falta un break para el case 'x' (y ya que estamos, para el case '%').
Ah, ¡esos condenados break! siempre me pasa, y por más que reviso el código siempre se me cola uno  ;-)
Saludos  :)
24  Programación / Programación C/C++ / Re: Implementación de printf no termina con null las cadenas en: 7 Abril 2019, 22:53 pm
Ahora si funciona para los enteros, pero aún está el problema con los hexadecimales.
Osea, si le paso el hexadecimal 0xF2, imprime 0xF2, pero no tiene el terminador nulo, lo cual hace que se imprima un caracter aleatorio después de imprimir el hexadecimal. (Sólo pasa cuando se trata de imprimir hexadecimal, los demás están ok)
25  Programación / Programación C/C++ / Re: Implementación de printf no termina con null las cadenas en: 7 Abril 2019, 14:46 pm
Mismo problema, hacer un cast de int a char cuando trato de imprimir hexadecimal no imprime nada, y el mismo problema...

Código
  1. int kputs(const char *fmt, ...) {
  2. /* Empty string sanity test */
  3. if (!fmt)
  4. return 0;
  5. char buffer[1024] = {0};
  6. va_list args;
  7.  
  8. size_t cout;
  9. unsigned int* charc;
  10. va_start(args, fmt);
  11.  
  12. for (cout = 0; cout < strlen(fmt); ++cout) {
  13. switch (fmt[cout]) {
  14. case '%':
  15. switch (fmt[cout + 1]) {
  16. case 'c':
  17. charc = (char)va_arg(args, int);
  18. putch(charc);
  19. ++cout;
  20. break;
  21. case 's':
  22. charc = va_arg(args, char *);
  23. strcpy(buffer, (const char*) charc);
  24. print_string(buffer);
  25. ++cout;
  26. break;
  27. case 'i':
  28. charc = va_arg(args, int);
  29. itoa(charc, buffer, 10);
  30. print_string(buffer);
  31. ++cout;
  32. break;
  33. case 'X':
  34. case 'x':
  35. charc = (char)va_arg(args, int);
  36. itoa(charc, buffer, 16);
  37. print_string(buffer);
  38. ++cout;
  39. case '%':
  40. putch("%");
  41. ++cout;
  42.  
  43. default:
  44. va_end(args);
  45. return 1;
  46. }
  47. break;
  48. default:
  49. putch(fmt[cout]);
  50. break;
  51. }
  52. }
  53. va_end(args);
  54. return cout;
  55. }
26  Programación / Programación C/C++ / Re: Implementación de printf no termina con null las cadenas en: 7 Abril 2019, 04:49 am
Tienes que variar el tipo del segundo parametro de va_arg.

Tu solo usas unsigned int (o int) y deberias usar el tipo que calce con el % que se pasa.

Mira el ejemplo al final de aqui: https://linux.die.net/man/3/va_arg

Gracias, pero aún así no me funciona, mismo problema.  :-(
27  Programación / Programación C/C++ / Implementación de printf no termina con null las cadenas en: 6 Abril 2019, 15:24 pm
Buenas, he hecho una implementación de printf, sin usar vsnprintf (por que no puedo).
Funciona bien, pero si trato de formatear un número hexadecimal y aveces cadenas, se descontrola todo, por lo que pienso que se me está colando un terminador nulo '\0' .
Ejemplo:
Código
  1. kputs("r8: %x    r9: %x    r10: %x", r->r8, r->r9, r->r10);
Salida:
Código:
r8: b8000└
Sólo me imprime r8  y de ahí el valor en hexadecimal, pero los demás los ignora y no imprime r9 ni r0.
Nótese el carácter "└" el cual no es esperado.
Código
  1. int kputs(const char *fmt, ...) {
  2. /* Hacer nada si la cadena esta vacia. */
  3. if (!fmt)
  4. return 0;
  5. char buffer[1024] = {0};
  6. va_list args;
  7.  
  8. size_t cout;
  9. unsigned int* charc;
  10. va_start(args, fmt);
  11.  
  12. for (cout = 0; cout < strlen(fmt); ++cout) {
  13. switch (fmt[cout]) {
  14. case '%':
  15. switch (fmt[cout + 1]) {
  16. case 'c':
  17. charc = va_arg(args, unsigned int);
  18. putch(charc);
  19. ++cout;
  20. break;
  21. case 's':
  22. charc = (int*) (va_arg(args, unsigned int));
  23. strcpy(buffer, (const char*) charc);
  24. print_string(buffer);
  25. ++cout;
  26. break;
  27. case 'i':
  28. charc = va_arg(args, int);
  29. itoa(charc, buffer, 10);
  30. print_string(buffer);
  31. ++cout;
  32. break;
  33. case 'X':
  34. case 'x':
  35. charc = va_arg(args, int);
  36. itoa((unsigned)charc, buffer, 16);
  37. print_string(buffer);
  38. ++cout;
  39. case '%':
  40. putch("%");
  41. ++cout;
  42.  
  43. default:
  44. va_end(args);
  45. return 1;
  46. }
  47. break;
  48. default:
  49. putch(fmt[cout]);
  50. break;
  51. }
  52. }
  53. va_end(args);
  54. return cout;
  55. }
  56.  
Las funciones itoa no creo que sean el problema, por que mi implementación no tiene problemas para imprimir enteros. (excepto que se desborda con un número muy grande, eso se arregla fácil)
28  Sistemas Operativos / GNU/Linux / Borrar archivos con una extensión común recursivamente en: 4 Abril 2019, 04:23 am
Pues digamos que dentro de una carpeta tengo más carpetas, de las cuales hay aún más carpetas. Cómo puedo borrar archivos de una misma extensión recursivamente en todas las carpetas que estén dentro de la carpeta principal?
Se que puedo usar rm -rf *.o, pero tengo miedo de dispararme el pie y borrar todo el disco entero.
Saludos  :)
29  Sistemas Operativos / GNU/Linux / Re: problema al instalar linux en: 4 Abril 2019, 04:20 am
O que es tu gráfica o los drivers del Linux en sí. Culpa de NVIDIA y Intel por no querer aportar a hacer drivers de calidad, y ser unos bastardos privativos. Es hipócrita decir esto cuando uso una lap con Windows, aunque solo lo uso por los drivers (otra vez, ven?) de impresora, ya que por estudios necesito la impresora, la cual sólo en Windows funciona.
30  Foros Generales / Dudas Generales / Hacer que Bochs ejecute un archivo ISO envez de IMG en: 23 Marzo 2019, 01:53 am
Pues eso, no logro hacer que Bochs use archivos ISO envez de archivos IMG. Nececito usar Bochs por su debugger.
Alguna idea?
Saludos
Páginas: 1 2 [3] 4 5 6 7 8 9 10
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines