Grosse einer Datei



  • Wie kann ich in C die grosse einer datei herausfinden (in bytes) gib da was gutes?.



  • mit fseek und ftell



  • Hi!

    Hayo:

    unsigned long pos, size;
    FILE *f = fopen( "deinedatei", "rb" );
    pos = ftell( f );
    fseek( 0, SEEK_END );
    size = ftell( f );
    fseek( pos, SEEK_SET );
    

    Feddisch!!!

    grüße



  • Man sollte fpos_t nehmen anstatt unsigned long.
    fpos_t ist unter Windows glaube ich ein unsigned long aber unter Linux ein struct.



  • feigling schrieb:

    Man sollte fpos_t nehmen anstatt unsigned long.
    fpos_t ist unter Windows glaube ich ein unsigned long aber unter Linux ein struct.

    quark und quark. wo steht etwas von fpos_t? doch nicht etwa im standard, oder? hab da jetzt nicht reingeguckt, also zwing mich nicht dazu.
    die impl. als struct halte ich fuer falschen glauben.



  • feigling schrieb:

    Man sollte fpos_t nehmen anstatt unsigned long.
    fpos_t ist unter Windows glaube ich ein unsigned long aber unter Linux ein struct.

    Wäre mir neu. Soweit ich das jetzt gesehen habe, wird fpos_t nur bei den Funktionen

    int fgetpos( FILE *stream, fpos_t *pos)
    int fsetpos( FILE *stream, fpos_t *pos)
    

    verwendet.



  • Herrmann schrieb:

    feigling schrieb:

    Man sollte fpos_t nehmen anstatt unsigned long.
    fpos_t ist unter Windows glaube ich ein unsigned long aber unter Linux ein struct.

    Wäre mir neu. Soweit ich das jetzt gesehen habe, wird fpos_t nur bei den Funktionen

    int fgetpos( FILE *stream, fpos_t *pos)
    int fsetpos( FILE *stream, fpos_t *pos)
    

    verwendet.

    Oh, ich dachte das wäre bei den anderen Funktionen auch so. Ich hatte das jetzt nur von den beiden Funktionen in Erinnerung, da diese unter *nix kein unsigned long akzeptieren.


Log in to reply