Diese Seltsame Sache mit fread



  • Hallöle

    Also, die Definition von fread is ja

    size_t fread(void *ptr, size_t size, size_t nobj, FILE *stream)
    

    was is jez die Sache mit size und nobj, wie funktioniert das genau mit dem nobj mal size Bytes lesen?

    und... theoretisch könnte ich dann machen

    FILE *fp;
    char p[1];
    
    fp = fopen("laufwerk:\pfad\dateiname", "r");
    
    fread(p, 1, 1, fp);
    
    printf("%c", p);
    

    und dann würde bei mir doch im stdout das erste Zeichen aus der Datei stehen, oder?

    wenn ich so etwas in dem Stil mache, kommt ein Dateifehler 16. Was heißt das?

    Viele Fragen, sorry, aber ich bin ratlos...



  • geeniusRL schrieb:

    fp = fopen("laufwerk:\pfad\dateiname", "r");

    fang mal da an zu überprüfen ((fp = fopen(...)) == NULL), ob das öffnen erfolgreich war! kann mit net vorstellen, dass ein "\" so einfach geht im string. gehört sicher "\" -> hab aber kein windows 🙂

    hth,
    ciao



  • %c steht dafür das du ihm einen char übergibt aber datsächlich übergibst du ihm einen pointer (d.h. verwend %s oder schreibe p[0])



  • ach, das mit dem %c-pointer zeuch hab ich jez nur hier im forum gemacht - whoopsie! aber das mit dem \ könnte stimmen ich probiers mal aus, thx!



  • okay, es hat daran gelegen, dass ich irgendwie gar keinen absolute Pfad angeben durfte oder so etwas ähnliches. seltsame sache!

    btw, weiß jemand, wo eine tabelle der datei-fehlercodes zu finden is?


Anmelden zum Antworten