_rtl_chmod, _wrtl_chmod
Nach oben zu io.h - Index
Header-Datei
io.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int _rtl_chmod(const char *path, int func [, int attrib]);
int _wrtl_chmod(const wchar_t *path, int func, ... );
Beschreibung
Ruft Dateiattribute ab oder legt Dateiattribute fest.
Anmerkung: Die Funktion _rtl_chmod ersetzt die Funktion _chmod, die veraltet ist.
_rtl_chmod kann Dateiattribute sowohl abrufen als auch festlegen. Wenn der Parameter func den Wert 0 hat, gibt _rtl_chmod die aktuellen Attribute der Datei zurück. Hat func den Wert 1, werden die mit attrib angegebenen Attribute zugewiesen.
attrib kann einer der folgenden (in dos.h definierten) symbolischen Konstanten entsprechen:
FA_RDONLY |
Nur-Lesen-Attribut |
FA_HIDDEN |
Verborgene Datei |
FA_SYSTEM |
Systemdatei |
FA_LABEL |
Datenträgerbezeichner |
FA_DIREC |
Verzeichnis |
FA_ARCH |
Archiv |
Rückgabewert
Bei erfolgreicher Ausführung gibt _rtl_chmod das Dateiattributwort zurück.
Andernfalls gibt die Funktion den Wert -1 zurück und weist der globalen Variablen errno einen der folgenden Werte zu:
ENOENT |
Path or filename not found (Pfad oder Dateiname nicht gefunden) |
EACCES |
Permission denied (Zugriff verweigert) |
Beispiel
#include <errno.h>
#include <stdio.h>
#include <dir.h>
#include <io.h>
int get_file_attrib(char *filename);
int main(void)
{
char filename[128];
int attrib;
printf("Enter a filename:");
scanf("%s", filename);
attrib = get_file_attrib(filename);
if (attrib == -1)
switch(errno)
{
case ENOENT : printf("Path or file not found.\n");
break;
case EACCES : printf("Permission denied.\n");
break;
default : printf("Error number: %d", errno);
break;
}
else
{
if (attrib & FA_RDONLY)
printf("%s is read-only.\n", filename);
if (attrib & FA_HIDDEN)
printf("%s is hidden.\n", filename);
if (attrib & FA_SYSTEM)
printf("%s is a system file.\n", filename);
if (attrib & FA_DIREC)
printf("%s is a directory.\n", filename);
if (attrib & FA_ARCH)
printf("%s is an archive file.\n", filename);
}
return 0;
}
/* Gibt die Attribute einer DOS-Datei zurück */
int get_file_attrib(char *filename)
{
return(_rtl_chmod(filename, 0));
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
_rtl_chmod |
+ |
|||
_wrtl_chmod |
Nur NT |