tkill(2)

NAZWA
tkill, tgkill - wysyła sygnał do wątku

BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)

SKŁADNIA
#include <signal.h>           /* Definicja stałych SIG* */
#include <sys/syscall.h>      /* Definicja stałych SYS_* */
#include <unistd.h>

[[przestarzałe]] int syscall(SYS_tkill, pid_t tid, int sig);

#include <signal.h>

int tgkill(pid_t tgid, pid_t tid, int sig);

Uwaga: glibc nie udostępnia opakowania dla tkill(), co wymusza użycie syscall(2).

OPIS
tgkill() wysyła sygnał sig do wątku o identyfikatorze wątku tid w grupie wątków tgid (inaczej niż kill(2), służący do wysyłania sygnału wyłącznie do procesu (tj. grupy wątków) jako całości, gdzie sygnał jest dostarczany do arbitralnie wybranego wątku tego procesu).

tkill() jest przestarzałym poprzednikiem tgkill(). Pozwala na podanie tylko identyfikatora wątku docelowego, co może powodować wysłanie sygnału do nieprawidłowego wątku, jeśli podany wątek zakończy się, a jego identyfikator wątku zostanie ponownie wykorzystany. Proszę unikać stosowania tego wywołania systemowego.

Są to surowe interfejsy wywołania systemowego, przeznaczone do wewnętrznego stosowania wobec wątków przez bibliotekę.

WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest -1 i ustawiane errno, wskazując błąd.

BŁĘDY

EAGAIN
    Osiągnięto limit zasobu RLIMIT_SIGPENDING, a sig jest sygnałem czasu rzeczywistego.

EAGAIN
    Brak pamięci jądra, a sig jest sygnałem czasu rzeczywistego.

EINVAL
    Podano nieprawidłowy identyfikator wątku, identyfikator grupy wątków lub sygnał.

EPERM
    Brak uprawnień. Wymagane uprawnienia opisano w podręczniku kill(2).

ESRCH
    Nie istnieje proces z podanym identyfikatorem wątku (i grupy wątków).

STANDARDY
Linux.

HISTORIA

tkill()
    Linux 2.4.19 / 2.5.4.

tgkill()
    Linux 2.5.75, glibc 2.30.

UWAGI
Wyjaśnienie dotyczące grupy wątków znajduje się w opisie CLONE_THREAD w podręczniku clone(2).

ZOBACZ TAKŻE
clone(2), gettid(2), kill(2), rt_sigqueueinfo(2)

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.