Datei schreiben



  • Hi, ich programmiere mir gerade eine kleine Anwendungs für den Pocket PC, und leider gibts da keine fstreams, also muss ich auf die C Variante mit fopen usw. zurückgreifen. Nun, damit hab ich noch nix gemacht, also hab ichs mir mal durchgelesen, aber ich finde zum Schreiben nur den Befehl 'fputs', der für mich aber nicht geeignet ist, weil ich in die Datei Daten mit bestimmter Länge (structs) schreiben muss und keine strings, die mit 0 aufhören.
    Gibts dafür eine geeignete Funktion? Thx!.

    Ps ich mach das ganze für Windows Mobile 6, wenns da nen super Winapi befehl geben sollte, wäre ich für den Tip natürlich auch dankbar!



  • öffne die datei mit open(). also:

    int fd = -1;
    fd = open("filename.dat", O_RDWR);
    

    lesen kannst du dann mit read():

    char* buffer[1024];
    int res = -1;
    
    res = read(fd, buffer, sizeof(buffer));
    

    den filedescriptor schliessen mit:

    close(fd);
    

    edit: die daten im buffer kannst du dann via memcpy() in deine struktur kopieren, oder in read() gleich einen zeiger auf die struktur übergeben.



  • Danke, aber die Funktionen gibts leider auch nit 😞 . Oder brauch ich dazu nen zusätzlichen Header?



  • selbstverständlich 🙂 auf posix-kompatiblen system sind "unistd.h" und "fnctl.h" dein freund.
    unter windows sind es "io.h" und "fnctl.h". 🙂



  • Leider gibts die Header im Mobile SDK nicht. Ist aber nicht so tragisch, ich habe jetzt die Api Funktionen CreatFile, WriteFile und ReadFile entdeckt.
    Trotzdem Danke für deine Hilfe! 🙂



  • .< /me slaps himself

    ich sollte die original posts sorgfältiger lesen 😃



  • Gragg schrieb:

    Hi, ich programmiere mir gerade eine kleine Anwendungs für den Pocket PC, und leider gibts da keine fstreams

    kann ich mir nicht vorstellen. fopen, fread, fwrite, usw. sind standard. deine lösung mit CreateFile, etc. ist zwar in ordnung, aber eben nicht portabel. ist das eine win-CE box?
    🙂


Anmelden zum Antworten