Aktuelle Zeit: 12.05.2025, 16:02

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite Vorherige  1, 2
Autor Nachricht
 Betreff des Beitrags: Re: Passwortgeschütztes Archiv!
BeitragVerfasst: 27.08.2007, 20:51 
Offline
Moderator
Benutzeravatar

Registriert: 15.04.2007, 20:20
Beiträge: 505
Wohnort: Reelsen
Nun, anscheinend wurde sie das ja nicht, oder? ^^

Der findet halt keine Datei mit dem Namen libmd5.a...

_________________
Meine Gameengine :)
Bild


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Passwortgeschütztes Archiv!
BeitragVerfasst: 27.08.2007, 22:36 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Ja ich habe mal keinen Realtiven Pfard ausgewählt und nun gehts!
Habe den Code nochmals etwas abgeändert:
Code:
#include <stdio.h>
#include <stdlib.h>
#include "md5.h"

void read_file(const char *filename)
{
    unsigned char   sig[MD5_SIZE];
    char      buffer[4096];
    md5_t      md5;
    int      ret;
    FILE      *stream;
    if (strcmp(filename, "-") == 0) {
    stream = stdin;
    } else {
    stream = fopen(filename, "r");
    if (stream == NULL) {
    return 1;
    }
    }
    md5_init(&md5);
    while (1) {
    ret = fread(buffer, sizeof(char), sizeof(buffer), stream);
    if (ret <= 0)
    break;
    md5_process(&md5, buffer, ret);
             }
    md5_finish(&md5, sig);
    if (stream != stdin) {
    fclose(stream);
    }
    md5_sig_to_string(sig, buffer, sizeof(buffer));
    printf(buffer);
}

int   main()
{
  char   *infile = "YOURFILE";
  read_file(infile);
  return 0;
}

Falls mal jemand das gleiche Problem hat!

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Passwortgeschütztes Archiv!
BeitragVerfasst: 28.08.2007, 13:03 
Offline
Moderator
Benutzeravatar

Registriert: 25.03.2007, 18:11
Beiträge: 834
Wohnort: Hagen, NRW
Code:
fread(buffer, sizeof(char), sizeof(buffer), stream);

ist nicht gerade schön und auch sehr fehleranfällig.
die beiden size parameter von fread bestimmen wieviele bytes gelesen werden sollen.

in diesem fall geht das gut, weil es sich um chars handelt und die größe somit auch richtig ist (1*4096 = 4096)

wären das jedoch float (also 4 byte pro element) würde das ein problem geben, denn 4*(4096*4) = 65536

sizeof(array) gibt nämlich nicht an, wieviele elemente in einem array sind, sondern wieviele bytes dieses array im speicher belegt.

daher sollte man, wenn man sizeof in verbindung mit arrays verwendet für die anzahl der element folgendes benutzen
Code:
sizeof(buffer)/sizeof(buffer[0]);

_________________
Phenom X4 9950 BE | 6144MB DDR2-800 | GeForce 8800GT 512MB | Asus M3A32-MVP Deluxe | 2TB HDD | 520W Seasonic NT | Soprano Tower | Samsung 22" TFT + Fujitsu-Siemens 17" TFT + Toshiba 42" FullHD LCD | Windows 7 Proessional x64
Behind the Brain


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite Vorherige  1, 2

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de