Linux Wiki
Advertisement
Wieloznaczność
Ta strona dotyczy wywołanie systemowego. Może chodziło Ci o polecenie chown?

Chown()wywołanie systemowe występujące w systemach opartych na Uniksie, również w GNU/Linuksie. Służy ono do zmiany użytkownika i grupy będących właścicielstwem podanego pliku.

Jako pierwszy argument chown() pobiera ścieżkę pliku, którego atrybuty chcemy zmienić (w postaci wskaźnika do ciągu znaków). Jako drugi argument pobiera identyfikator użytkownika, który ma zostać właścicielem pliku , jako liczbę całkowitą bez znaku (unsigned int). Trzecim i ostatnim argumentem jest identyfikator grupy użytkowników, której własnością ma się stać dany plik (również jako unsigned int).

Jeśli operacja zmiany właścicielstwa się udała, zwracane jest 0. W przypadku wystąpienia błędu zwracana jest liczba -1.

Przykład użycia

Poniższy przykład po skompilowaniu i uruchomieniu zada 3 pytania - o plik oraz identyfikatory użytkownika i grupy, których własnością ma być plik. Jeśli zmiana atrybutów się uda, wyświetli informację o tym, w przeciwnym wypadku wyświetli komunikat błędu.

#include <errno.h>
#include <stdio.h>

int main() {
  int uid, gid;
  char plik[200];
  printf("Podaj nazwę pliku: ");
  scanf("%s", &plik);
  printf("Podaj UID: ");
  scanf("%i", &uid);
  printf("Podaj GID: ");
  scanf("%i", &gid);
  if (chown(plik, uid, gid)) {
    printf("Wystąpił jakiś błąd!\n");
    perror(NULL);
  } else {
    printf("Zmiana dokonana!\n");
  }
  return 0;
}

Linki zewnętrzne

Advertisement