_rtl_chmod, _wrtl_chmod

Aus RAD Studio
Wechseln zu: Navigation, Suche

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