file i/o



  • hi,

    entspricht einem "r+b" aus der fstream einen O_RDWR fuer posix? bin unter linux:)

    FILE *f = fopen(DISK_IMAGE_PATH, "r+b"); <--- c lib
    int f = open(DISK_IMAGE_PATH, O_RDWR); <--- posix
    

    gibt es hier sonst noch etwas wo man aufpassen muss?

    int fseek(FILE *datei, long offset, int origin);
    size_t fread(void *puffer, size_t blockgroesse, size_t blockzahl, FILE *datei);
    size_t fwrite(const void *puffer,size_t blockgroesse, size_t blockzahl, FILE *datei);
    long lseek(int fh, long offset, int wie);
    int write(int fh, const void *puffer, size_t bytezahl);
    int read(int fh, const void *puffer, site_t bytezahl);
    

    bytezahl = blockgroesse * blockzahl?



  • Dieser Thread wurde von Moderator/in Tim aus dem Forum ANSI C in das Forum Linux/Unix verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • linuxuser1 schrieb:

    hi,

    entspricht einem "r+b" aus der fstream einen O_RDWR fuer posix? bin unter linux:)

    Falls deine Frage ist, ob du Byteweise auf die Datei zugreifst, dann ja.

    OPEN(2)
    WRITE(2)



  • fopen() und open() unterscheiden sich dadurch, dass das eine gepufferten und das andere ungepufferten Dateizugriff einleitet. Beides ist meines Wissens im POSIX-Standard enthalten.

    Hinter dem Stream (FILE 😉 bei fopen() liegt auch immer ein open()-kompatibler Datei-Handle, siehe auch diesen Beitrag.


Anmelden zum Antworten