umask
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++ |
---|---|---|---|
+ |
+ |