umask

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu io.h - Index


Header-Datei

io.h, sys\stat.h

Kategorie

Eingabe-/Ausgaberoutinen

Prototyp

unsigned umask(unsigned mode);

Beschreibung

Legt die Dateizugriffsberechtigungsmaske für Lese-/Schreiboperationen fest.

Die Funktion umask legt die Zugriffsberechtigungsmaske fest, die von den Funktionen open und creat benutzt wird. Bits, die in mode gesetzt sind, werden in der Zugriffsberechtigung derjenigen Dateien gelöscht, die anschließend mit open und creat erstellt werden.

Das Argument mode kann einen der folgenden in sys\stat.h definierten Werte annehmen:

S_IWRITE

Berechtigung zum Schreiben

S_IREAD

Berechtigung zum Lesen

S_IREAD|S_IWRITE

Berechtigung zum Lesen und Schreiben



Rückgabewert

Der vorherige Wert der Maske. Es gibt keinen Rückgabewert im Fehlerfall.

Beispiel



 #include <io.h>
 #include <stdio.h>
 #include <sys\stat.h>;
 #define FILENAME "TEST.$$$"
 int main(void)
 {
     unsigned oldmask;
     FILE *f;
     struct stat statbuf;
     /* Bewirkt, dass nachfolgend erstellte Dateien als schreibgeschützte Dateien erstellt werden */
     oldmask = umask(S_IWRITE);
     printf("Old mask = 0x%x\n",oldmask);
     /* Eine Datei der Länge 0 erstellen */
     if ((f = fopen(FILENAME,"w+")) == NULL)
     {
         perror("Unable to create output file");
         return (1);
     }
     fclose(f);
     /* Überprüfen, ob die Datei schreibgeschützt ist */
     if (stat(FILENAME,&statbuf) != 0)
     {
         perror("Unable to get information about output file");
         return (1);
     }
     if (statbuf.st_mode & S_IWRITE)
         printf("Error! %s is writable!\n",FILENAME);
     else
         printf("Success! %s is not writable.\n",FILENAME);
     return (0);
 }



Portabilität



POSIX Win32 ANSI C ANSI C++

+

+