Auführbares Script erzeugen



  • Ich habe mit ofstream ein Script erzeugt, welches auch vewendbar sein soll, nur leider ist es im frisch erzeugten Zustand nicht ausführbar. Ich könnte jetzt einfach per

    system("chmod 755 <file>")
    

    die Datei ausführbar machen, aber würde auf das system-Kommando lieber verzichten. Gibt es eine Möglichkeit dies direkt im Code zu erledigen?
    Thx



  • da geht man so vor:
    man liest "man chmod"
    es verweist einen ganz am ende bei "see also" auf chmod(2).
    damit ist gemeint, daß man
    "man 2 chmod" lesen soll.
    ah, da ist es ja.



  • Ich glaube damit mein volkard diesen Eintrag.

    chmod("<file>", S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
    

    oder, falls die Datei schon geöffnet wurde

    int fd = open("<file>", ...);
    fchmod(fd, S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH);
    


  • Danke für den Tip. In meiner man steht leider so ein Hinweis nicht.

    chmod ändert nie die Rechte symbolischer Verknüpfungen; der chmod Systemaufruf kann ihre Zugriffsrechte nicht ändern. Das ist kein Problem da die Rechte symbolischer Verknüpfungen nie
    benutzt werden. Stattdessen ändert chmod die Zugriffsrechte der Datei, auf die gezeigt wird, bei jeder auf der Kommandozeile angegebenen symbolischen Verknüpfung. Die symbolischen
    Verknüpfungen, die chmod während des rekursiven Abstiegs in Verzeichnisse entdeckt, werden allerdings ignoriert.

    OPTIONEN
    Wechseln des Modus jeder DATEI nach MODUS.

    -c, --changes
    Wie --verbose, aber nur melden, wenn eine Änderung durchgeführt wird.

    -f, --silent, --quiet
    Unterdrücken der meisten Fehlermeldungen.

    -v, --verbose
    Ausgabe einer Diagnose für jede verarbeitete Datei.

    --reference=RDATEI
    Verwendung von RDATEIs Modus anstatt eines MODUS- Wertes.

    -R, --recursive
    Rekursives Ändern der Dateien und Verzeichnisse.

    --help Anzeigen einer kurzen Hilfe und beenden.

    --version
    Ausgabe der Versionsinformationen und beenden.

    Jeder MODUS ist einer oder mehrere der Buchstaben »ugoa«, eines der Symbole »+-=« und einer oder mehrere der Buchstaben »rwxXstugo«.

    AUTOR
    Geschrieben von David MacKenzie.

    BUGS MELDEN
    Berichten Sie Fehler an bug-fileutils@gnu.org.

    COPYRIGHT
    Copyright © 2001 Free Software Foundation, Inc.
    Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es gibt keine Garantie; auch nicht für VERKAUFBARKEIT oder FÜR SPEZIELLE ZWECKE.

    chmod (fileutils) 4.1 Mai 2001 CHMOD(1)
    Manual page chmod(1) line 23/75 (END)


Anmelden zum Antworten