grantpt(3)

NAZWA
grantpt - przyznaje dostęp do podrzędnego urządzenia pseudoterminala

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#define _XOPEN_SOURCE
#include <stdlib.h>

int grantpt(int fd);

    Wymagane ustawienia makr biblioteki glibc (patrz feature_test_macros(7)):

grantpt():
    Od glibc 2.24:
        _XOPEN_SOURCE >= 500
    glibc 2.23 i wcześniejsze:
        _XOPEN_SOURCE

OPIS
Funkcja grantpt() zmienia dostęp i właściciela podrzędnego urządzenia pseudoterminala na pasujące do urządzenia nadrzędnego pseudoterminala, do którego odnosi się deskryptor pliku fd. Identyfikator użytkownika urządzenia podrzędnego jest ustawiany na rzeczywisty UID procesu wywołującego. Identyfikator grupy jest ustawiany na wartość nieokreśloną (np. tty). Tryb jest ustawiany na 0620 (crw--w----).

Zachowanie grantpt() jest nieokreślone, gdy zainstalowano procedurę obsługi sygnału w celu przechwycenia sygnałów SIGCHLD.

WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu grantpt() zwraca zero. W przeciwnym przypadku zwraca -1 i ustawia errno, wskazując błąd.

BŁĘDY

EACCES
    Nie można uzyskać dostępu do odpowiedniego urządzenia podrzędnego pseudoterminala.

EBADF
    Argument fd nie jest prawidłowym, otwartym deskryptorem pliku.

EINVAL
    Argument fd jest prawidłowy, ale nie jest związany z nadrzędnym urządzeniem pseudoterminala.

ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku attributes(7).
Interfejs | Atrybut | Wartość
grantpt() | Bezpieczeństwo wątkowe | MT-bezpieczne locale

STANDARDY
POSIX.1-2008.

HISTORIA
glibc 2.1. POSIX.1-2001.

Stanowi część obsługi pseudoterminali UNIX 98, zob. pts(4).

Dawne systemy implementowały tę funkcję za pomocą pomocniczego pliku binarnego o nazwie „pt_chown”, korzystającego z bitu SUID. glibc w Linuksie przed glibc 2.33 również mógła tak robić, aby obsłużyć konfigurację korzystającą wyłącznie z pseudoterminali BSD; jednak obsługę tę usunięto. Na współczesnych systemach albo jest to niaktywne — z uprawnieniami konfigurowanymi przy przydzielaniu pty, jak jest to w Linuksie — albo korzysta się z ioctl(2).

ZOBACZ TAKŻE
open(2), posix_openpt(3), ptsname(3), unlockpt(3), pts(4), pty(7)

TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 (https://www.gnu.org/licenses/gpl-3.0.html) lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.