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

#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

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.

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

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.

26 maja 2024 r. Linux man-pages 6.9.1