Ich lese eine Datei auf Linux und Windows, auf Linux alle arbeiten ziemlich gut, aber auf Windows, die fread(r_hash, 1, 64 , f);
wird 64 char in r_hash dann 32 Char von Junk, und ich verstehe nicht Warum. Hier ist mein Code Danke!Freed Füllpuffer mit Junk
int status;
FILE *f;
char *path;
char ln[64];
char *r_hash = calloc(64, 1);
path = malloc(1024);
path = strcpy(path, "some path");
status = -1;
f = fopen(path, "rb");
if (!f)
return -1;
while (fscanf(f, "%s ", ln)!=EOF)
{
fread(r_hash, 1, 64 , f);
if(strcmp(w_hash, r_hash) == 0 && strcmp(hostname, ln) == 0)
{
status = 0;
break;
}
}
fclose(f);
Was Datei nicht Ihre Eingabe aussehen? –
so etwas wie: 'Benutzername someStringHashedAlways64CharLong' – richerarc
Ich vermute, es gibt kein Nullzeichen in den Daten, die Sie aus der Datei lesen ... – Dmitri