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
- [man:chown(2) Oficjalna strona podręcznika] (wersja online)