chmod, _wchmod

Aus RAD Studio
Wechseln zu: Navigation, Suche

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