ioctl_vt(2) System Calls Manual ioctl_vt(2)

ioctl_vt - funkcje ioctl konsoli i konsoli wirtualnych

#include <linux/vt.h>  /* Definicja stałych VT_* */
#include <sys/ioctl.h>
int ioctl(int fd, unsigned long op, void *argp);

Przedstawione poniżej operacje ioctl(2) są specyficzne dla Linuksa i są obsługiwane dla konsoli i konsoli wirtualnych.

Przekazanie pierwszej dostępnej (ale nie otwartej) konsoli. argp wskazuje na zmienną typu int, której zostanie nadana wartość równa numerowi konsoli wirtualnej (1 <= *argp <= MAX_NR_CONSOLES).
Pobranie trybu aktywnej konsoli wirtualnej. argp wskazuje na strukturę

struct vt_mode {
    char  mode;    /* tryb konsoli wirtualnej */
    char  waitv;   /* jeśli ustawione, czeka przy zapisie
                      jeśli konsola wirt. nie jest aktywna */
    short relsig;  /* sygnał w przypadku zwolnienia op. */
    short acqsig;  /* sygnał w przypadku uzyskania */
    short frsig;   /* niewykorzystane (równe 0) */
};

w której przekazywany jest tryb pracy bieżącej konsoli wirtualnej. mode może przyjmować następujące wartości:
VT_AUTO automatyczne przełączanie vt
VT_PROCESS przełączanie kontrolowane przez procesy
VT_ACKACQ potwierdzanie przełączenia
Ustawienie trybu aktywnej konsoli wirtualnej. argp wskazuje na strukturę struct vt_mode.
Pobranie globalnych informacji o stanie konsoli wirtualnej. argp wskazuje na strukturę

struct vt_stat {
    unsigned short v_active;  /* aktywna konsola wirtualna */
    unsigned short v_signal;  /* sygnał do wysłania */
    unsigned short v_state;   /* maska bitowa konsoli wirt. */
};
struct vt_stat {
    ushort v_active;  /* aktywna konsola wirtualna */
    ushort v_signal;  /* sygnał do wysłania */
    ushort v_state;   /* maska bitowa konsoli wirt. */
};

Dla każdej aktualnie używanej konsoli ustawiany jest odpowiedni bit w polu v_state. (Od Linuksa 1.0 do Linuksa 1.1.92).
Zwolnienie ekranu.
Przełączenie na konsolę argp (1 <= argp <= MAX_NR_CONSOLES).
Oczekiwanie na aktywację konsoli wirtualnej argp.
Zwolnienie pamięci przydzielonej dla konsoli wirtualnej argp. (Od Linuksa 1.1.54).
Zmiana wyobrażenia jądra o rozmiarach ekranu. argp wskazuje na strukturę

struct vt_sizes {
    unsigned short v_rows;       /* liczba wierszy */
    unsigned short v_cols;       /* liczba kolumn */
    unsigned short v_scrollsize; /* już nieużywane */
};

Należy pamiętać, że nie zmienia to trybu karty graficznej. Patrz resizecons(8). (Od Linuksa 1.1.54).
Zmiana wyobrażenia jądra o różnych parametrach ekranu. argp wskazuje na strukturę

struct vt_consize {
    unsigned short v_rows;  /* liczba wierszy */
    unsigned short v_cols;  /* liczba kolumn */
    unsigned short v_vlin;  /* liczba wierszy pikseli
                               na ekranie */
    unsigned short v_clin;  /* liczba wierszy pikseli
                               na znak */
    unsigned short v_vcol;  /* liczba kolumn pikseli
                               na ekranie */
    unsigned short v_ccol;  /* liczba kolumn pikseli
                               na znak */
};

Każdy z parametrów może mieć wartość zerową, co oznacza "nie zmieniać", lecz jeśli jednocześnie zmienianych jest kilka parametrów, muszą one być ze sobą zgodne. Należy pamiętać, że nie zmienia to trybu karty graficznej. Patrz resizecons(8). (Od Linuksa 1.3.3).
Get console size and cursor position. argp points to a

struct vt_consizecsrpos {
    __u16 con_rows;  /* number of console rows */
    __u16 con_cols;  /* number of console columns */
    __u16 csr_row;   /* current cursor's row */
    __u16 csr_col;   /* current cursor's column */
};

(Since Linux 6.16.)

Funkcja zwraca 0, jeżeli zakończy się pomyślnie (chyba że zaznaczono inaczej). Jeśli wystąpi błąd zwraca -1 i ustawia errno wskazując błąd.

argp jest niepoprawne.

Linux.

ioctl(2), ioctl_console(2)

Tłumaczenie niniejszej strony podręcznika: Piotr Pogorzelski <piotr.pogorzelski@ippt.gov.pl>, Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i 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.

11 czerwca 2025 r. Linux man-pages 6.15