2009-05-20 5 views
6

Ich weiß, wie Dateiattribute unter Windows mithilfe der SetFileAttributes-Funktion festgelegt werden. Aber ich frage mich, ob es eine native C/C++ Funktion kann kann dies auch tun?Festlegen von Dateiattributen mithilfe von nativen C/C++ - Funktionen

+0

"Native C/C++ Funktion" ist wahrscheinlich nicht das, was Sie verlangen. SetFileAttributes() ist eine native C-Funktion. Ich schätze, Sie suchen nach einer portablen und/oder standardisierten Funktion. – JesperE

+0

Eine Motivation für Skriptsprachen wie Perl oder Python ist, dass sie sich bemühen, eine plattformübergreifende API für Dinge bereitzustellen, die nicht allgemein plattformübergreifend sind. –

Antwort

11

Nein, gibt es nicht. Weder Standard C++ noch Standard C spezifizieren solche Funktionen.

Der Grund dafür ist, dass es in diesem Bereich über verschiedene Betriebssysteme nur wenig gemeinsame Funktionen gibt. Zum Beispiel haben UNIX-ähnliche Betriebssysteme ein "ausführbares" Attribut, während Windows-ähnliche Betriebssysteme die Dateierweiterung verwenden, um die Ausführbarkeit zu bestimmen.

4

Auf Windows gibt es eine _chmod Funktion, die das Verhalten der Chmod-Funktion auf Unix nachahmt.

4

Wenn Sie mit "nativ" in der C-Standardbibliothek meinen, dann nein. Dateiattribute sind eine OS-spezifische Erweiterung und werden daher in keinem Standardfunktionssatz angezeigt. Wenn wir unseren Aufgabenbereich auf POSIX erweitern wollen, gibt es Funktionen wie fchmod, aber dies behandelt nur UNIX-Dateimodi, die nicht so aussagekräftig sind wie Windows-Dateiattribute.

Im Allgemeinen können Sie jede Frage des Formulars beantworten "Gibt es eine STANDARD-Funktion/ein Objekt, um OS-SPEZIFISCHE Sache zu tun" mit der Aussage "Wahrscheinlich, wenn STANDARD nur für OS existiert. Sonst, nein".

Verwandte Themen