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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [SRC] ByteCounter
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SRC] ByteCounter  (Leído 2,677 veces)
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
[SRC] ByteCounter
« en: 17 Enero 2011, 18:14 pm »

::) Pequeño codigo en C++ que cuenta la cantidad de bytes de un archivo pasado como parametro.
 
Código
  1. #include <cstdio>
  2. #include <iostream>
  3.  
  4. void main(int argc, char *argv[])
  5. {
  6. FILE *pFile;
  7. long size;
  8. if(argc==2)
  9. {
  10. pFile = fopen(argv[1],"r");
  11. if(pFile!=NULL)
  12. {
  13. if(!fseek(pFile,0,SEEK_END))
  14. {
  15. size=ftell(pFile);
  16. fclose(pFile);
  17. std::cout<<"El tamaño total del archivo es ";
  18. std::cout<<size<<" Bytes."<<std::endl;
  19. }
  20. else std::cout<<"Sucedio un problema mientras se trataba de obtener la cantidad de bytes."<<std::endl;
  21. }
  22. else std::cout<<"Problemas con el archivo, verifique que el archivo exista."<<std::endl;
  23. }
  24.  
  25. else std::cout<<"Uso: "<<argv[0]<<" <ruta de archivo>"<<std::endl;
  26. }
  27.  

Ejemplos:
Código:
lordrna@AAO150:~/Proyectos/C++/ByteCounter$ ls
bc  bc.cpp

lordrna@AAO150:~/Proyectos/C++/ByteCounter$ ./bc bc.cpp
El tamaño total del archivo es 627 Bytes.

lordrna@AAO150:~/Proyectos/C++/ByteCounter$ ./bc cdc
Problemas con el archivo, verifique que el archivo exista.


« Última modificación: 20 Enero 2011, 17:57 pm por Lord R.N.A. » En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [SRC] ByteCounter
« Respuesta #1 en: 17 Enero 2011, 18:29 pm »

ftell retorna long, por lo tanto size debe ser long. El archivo de cabecera en C++ es cstdio.

Saludos


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: [SRC] ByteCounter
« Respuesta #2 en: 17 Enero 2011, 21:11 pm »

... se me paso lo del valor de retorno de ftell() pero con stdio.h compila bien.
En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: [SRC] ByteCounter
« Respuesta #3 en: 17 Enero 2011, 21:32 pm »

no es que haya problema por la compilación en el stdio.h, esque tu código está usando la librería standar de C++ y por esa razón la cabecera no debería ser <stdio.h> estandar de C sino más bien <cstdio> standar de C++
En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: [SRC] ByteCounter
« Respuesta #4 en: 17 Enero 2011, 22:58 pm »

Citar
no es que haya problema por la compilación en el stdio.h

En realidad si es un problema ya que generar híbridos entre C y C++ sin un motivo real siempre es un error. Los archivos de cabecera stdio.h y cstdio son distintos y están pensados para cada lenguaje en particular.


Citar
pero con stdio.h compila bien.

Que un código compile no significa que este bien hecho. Igualmente en este caso lo del archivo de cabecera es secundario, el error principal es el de utilizar un int en lugar del long requerido.

Saludos!
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: [SRC] ByteCounter
« Respuesta #5 en: 17 Enero 2011, 23:24 pm »

En realidad si es un problema ya que generar híbridos entre C y C++ sin un motivo real siempre es un error. Los archivos de cabecera stdio.h y cstdio son distintos y están pensados para cada lenguaje en particular.


Que un código compile no significa que este bien hecho. Igualmente en este caso lo del archivo de cabecera es secundario, el error principal es el de utilizar un int en lugar del long requerido.

Saludos!


Es bueno saberlo, gracias por la acotación
En línea

[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: [SRC] ByteCounter
« Respuesta #6 en: 18 Enero 2011, 16:36 pm »

Listo... ya el codigo esta con las correcciones recomendadas.
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [SRC] ByteCounter
« Respuesta #7 en: 18 Enero 2011, 21:56 pm »

Te falta el return.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SRC] ByteCounter
Scripting
[L]ord [R]NA 4 2,759 Último mensaje 18 Enero 2011, 16:34 pm
por [L]ord [R]NA
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines