chmod, _wchmod
Nach oben zu io.h
Header-Datei
io.h
Kategorie
Eingabe-/Ausgaberoutinen
Prototyp
int chmod(const char *path, int amode);
int _wchmod(const wchar_t *path, int amode);
Beschreibung
Ändert den Dateizugriffsmodus.
chmod legt die Dateizugriffsberechtigungen für die durch path bezeichnete Datei entsprechend der in amode angegebenen Maske fest. path zeigt auf einen String.
amode kann eine der (in sys\stat.h definierten) symbolischen Konstanten S_IWRITE und S_IREAD oder beide Konstanten enthalten.
S_IWRITE |
Berechtigung zum Schreiben |
S_IREAD |
Berechtigung zum Lesen |
S_IREAD | S_IWRITE |
Berechtigung zum Lesen und Schreiben (eine Leseberechtigung impliziert die Schreibberechtigung) |
Rückgabewert
Wenn der Dateizugriffsmodus geändert werden konnte, gibt chmod den Wert 0 zurück. Andernfalls wird -1 zurückgegeben.
Bei einem Fehler wird die globale Variable errno auf einen der folgenden Werte gesetzt:
EACCES |
Permission denied (Zugriff verweigert) |
ENOENT |
Path or file name not found (Pfad oder Dateiname nicht gefunden) |
Beispiel
#include <errno.h>
#include <stdio.h>
#include <io.h>
#include <process.h>
#include <sys\stat.h>
void main(void)
{
char filename[64];
struct stat stbuf;
int amode;
printf("Enter name of file: ");
scanf("%s", filename);
if (stat(filename, &stbuf) != 0)
{
perror("Unable to get file information");
exit(1);
}
if (stbuf.st_mode & S_IWRITE)
{
printf("Changing to read-only\n");
amode = S_IREAD;
}
else
{
printf("Changing to read-write\n");
amode = S_IREAD|S_IWRITE;
}
if (chmod(filename, amode) != 0)
{
perror("Unable to change file mode");
exit(1);
}
exit(0);
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
chmod |
+ |
+ |
||
_wchmod |
Nur NT |