Scroll to navigation

grantpt(3) Library Functions Manual grantpt(3)

NAZWA

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

BIBLIOTEKA

Standardowa biblioteka C (libc, -lc)

SKŁADNIA

#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

Nie można uzyskać dostępu do odpowiedniego urządzenia podrzędnego pseudoterminala.
Argument fd nie jest prawidłowym, otwartym deskryptorem pliku.
Argument fd jest prawidłowy, ale nie jest związany z nadrzędnym urządzeniem pseudoterminala.

WERSJE

grantpt() jest dostarczane od glibc 2.1.

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-2001, POSIX.1-2008.

UWAGI

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

Wiele systemów implementuje tę funkcję za pomocą pomocniczego pliku binarnego o nazwie "pt_chown", korzystającego z bitu SUID. W systemach Linux z systemem plików devpts (obecnym od Linuksa 2.2), jądro zwykle ustawia prawidłową własność i uprawnienia podrzędnego urządzenia pseudoterminala, gdy otwierane jest urządzenie nadrzędne (posix_openpt(3)), zatem grantpt() nie musi nic robić. Z tego powodu taki pomocniczy plik binarny nie jest wymagany (i faktycznie konfiguracja pomijająca go w czasie budowania glibc jest popularna w wielu systemach).

ZOBACZ TAKŻE

open(2), posix_openpt(3), ptsname(3), unlockpt(3), pts(4), pty(7)

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika są: 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 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.

5 lutego 2023 r. Linux man-pages 6.03