• Viernes 8 de Noviembre de 2024, 21:02

Autor Tema:  fseek  (Leído 5198 veces)

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: fseek
« Respuesta #25 en: Lunes 26 de Octubre de 2009, 10:44 »
0
¿Que IDE usas?

Ahora si, al fin, logre hacerlo con gcc usando este codigo:

Código: C++
  1. #include <string.h>
  2. #include <stdio.h>
  3. #include <sys/stat.h> /* Para la estructura stat */
  4. #include <unistd.h>
  5.  
  6. struct _mstat64 {
  7.         _dev_t     st_dev;
  8.         _ino_t     st_ino;
  9.         unsigned short st_mode;
  10.         short      st_nlink;
  11.         short      st_uid;
  12.         short      st_gid;
  13.         _dev_t     st_rdev;
  14.         __int64    st_size;
  15.         __time64_t st_atime;
  16.         __time64_t st_mtime;
  17.         __time64_t st_ctime;
  18.         };
  19.  
  20. extern "C"
  21. {
  22.   _CRTIMP int __cdecl /*__MINGW_NOTHROW*/ _stat64 (const char*, struct _mstat64*);
  23. };
  24.  
  25. int main(int argc, char **argv)
  26. {
  27.     struct _mstat64 buf;
  28.     memset(&buf, 0, sizeof(buf));
  29.  
  30.     printf("%sn",argv[1]);
  31.  
  32.     if ( _stat64(argv[1], &buf) == -1 )
  33.     {
  34. //        perror(argv[1]);
  35.         getchar();
  36. //        exit(-1);
  37.     }
  38.     else
  39.     {
  40.         printf("Tamaño del archivo %s %I64d bytes.n", argv[1], buf.st_size);
  41.     }
  42.     getchar();
  43. return 0;
  44. }
  45.  

La estructura que viene con el MinGW NO me funciona, por eso tuve que definir _mstat64 que es la que viene en el VC++ en realidad ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

maxstepin

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: fseek
« Respuesta #26 en: Lunes 26 de Octubre de 2009, 16:14 »
0
Cita de: "Eternal Idol"
¿Que IDE usas?
Codeblocks, y de compilador Mingw TDM's GCC/mingw32 Builds, de la siguiente pagina:

http://www.tdragon.net/recentgcc/

Creo que han tocado algo en la estructura de directorios, pero hasta ahora todo compilaba sin problemas.


Gracias por el esfuerzo, sos groso. primero lo he compilado como C, me tiraba error, al cabo de un rato lo he probado como C++ y listo.
Resultados: buenisimos, devuelve el tamaño exacto de archivos de 7GB, y los mas importante sin usar la API. Este codigo me puede sevir para programar un File Splitter and Joiner, para conocer el tamaño del archivo origen.

Como siempre, buena ayuda, te doy las gracias y te dejo un saludo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: fseek
« Respuesta #27 en: Lunes 26 de Octubre de 2009, 16:20 »
0
De nadas  :comp:

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

maxstepin

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: fseek
« Respuesta #28 en: Lunes 26 de Octubre de 2009, 16:23 »
0
Ah, casi se me pasa. la funcion:

Código: C++
  1. memset(&buf, 0, sizeof(buf));
  2.  

es esta? --> C:MinGWincludestring.h (1 hits)
   Line 40: _CRTIMP void* __cdecl __MINGW_NOTHROW   memset (void*, int, size_t);

sirve para guardar en el free store la variable buf? :o
gracias

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: fseek
« Respuesta #29 en: Lunes 26 de Octubre de 2009, 17:06 »
0
http://www.cplusplus.com/reference/clib ... ng/memset/

Llena un bloque de memoria con un valor determinado, lo habia puesto mientras probaba y despues no lo borre  :devil: En este caso ponemos la estructura toda a 0, es una buena practica, especialmente con cadenas.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

maxstepin

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: fseek
« Respuesta #30 en: Lunes 26 de Octubre de 2009, 22:22 »
0
Cierto, hay que mantener buenos habitos de programacion :good: