Programación General > C/C++

 fseek

<< < (6/7) > >>

Eternal Idol:
¿Que IDE usas?

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


--- Código: C++ ---#include <string.h> #include <stdio.h>#include <sys/stat.h> /* Para la estructura stat */#include <unistd.h> struct _mstat64 {        _dev_t     st_dev;        _ino_t     st_ino;        unsigned short st_mode;        short      st_nlink;        short      st_uid;        short      st_gid;        _dev_t     st_rdev;        __int64    st_size;        __time64_t st_atime;        __time64_t st_mtime;        __time64_t st_ctime;        }; extern "C"{  _CRTIMP int __cdecl /*__MINGW_NOTHROW*/ _stat64 (const char*, struct _mstat64*);}; int main(int argc, char **argv){    struct _mstat64 buf;    memset(&buf, 0, sizeof(buf));     printf("%sn",argv[1]);     if ( _stat64(argv[1], &buf) == -1 )    {//        perror(argv[1]);        getchar();//        exit(-1);    }    else    {        printf("Tamaño del archivo %s %I64d bytes.n", argv[1], buf.st_size);    }    getchar();return 0;} 
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 ...

maxstepin:

--- Cita de: "Eternal Idol" ---¿Que IDE usas?
--- Fin de la cita ---
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:
De nadas  :comp:

maxstepin:
Ah, casi se me pasa. la funcion:


--- Código: C++ ---memset(&buf, 0, sizeof(buf)); 
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:
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.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa