Beim kopieren einer Datei unter C die Zugriffsrechte mitübernehmen



  • Hi!
    Ich habe ein Programm geschrieben mit dem ich in C mit System Calls eine Datei lese und neu schreibe (also kopiere).
    Nun habe ich dahingehend erweitert, dass ich auch die Modifizierungszeit mit übernehmen kann. (mit stat)
    Ich möchte jetzt mit fstat die Zugriffsrechte aus der Quelldatei auslesen. (weil ich nur noch den File-Deskriptor übergeben möchte)

    ...
    struct stat attribut;
    ...
    if(fstat(f1, &attribut) < 0)

    printf("copy: error in fstat()\n");
    ...
    printf("attribut.st_mode = %o\n", attribut.st_mode);

    Bis hier hin ist das kein Problem. Wenn ich die Oktalzahl ausgeben, dann erhalte ich beispielsweise 100655. Die letzten drei Ziffern geben mir die aktuell in der Quelldatei verwendeten Zugriffsrechte.
    Aber ich verstehe nicht, wie ich diese jetzt in die Zieldatei übernehmen kann?!?

    Ich weiß zwar, dass ich mit...

    f2 = creat(argv[n+1], PERMS)

    ...f2 zum File-Deskriptor mache und PERMS (habe ich als Konstante festgelegt) bei mir die Zugriffsreche (z.B. 0777) beinhaltet, aber ich komme nicht drauf wie ich die von der Quelldatei ausgelesenen Zugriffsrechte in die Zieldatie übernehmen könnte.

    THX im Vorraus!! 🙂

    Gruß Sebastian


Anmelden zum Antworten