tiocgwinsz(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– tiocgwinsz β€” the window query ioctl bestie πŸ’–

okay so this is tiocgwinsz from the Kernel API Manual, and honestly? she's a little icon. the whole point of her is implementing the window query ioctl, and she does it flawlessly. no cap. ✨


🌸 SYNOPSIS 🌸

int tiocgwinsz (struct tty_struct *tty , struct winsize __user *arg );

like, that's the whole signature. that's her. periodt. πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • tty β€” the tty. that's it. that's the argument. a whole tty struct, bestie. πŸ¦‹
  • arg β€” a user buffer for the result. she's gonna put the answer in there. very generous of her, honestly. 🫢

✨ DESCRIPTION ✨

okay so what she does is: she copies the kernel's idea of the window size into the user buffer. like, the kernel has opinions about how big your window is, and tiocgwinsz is the girl who delivers that info to userspace. lowkey iconic. πŸ‘‘

Locking: tty->winsize_mutex is taken to ensure the winsize data is consistent. so like, she locks the mutex first because she's responsible and she wants the data to actually make sense. main character energy, honestly. no racing conditions on her watch. πŸ’€βœ¨


🌈 SEE ALSO 🌈

this is the friend group, and it's a lot of friends. like, an entire group chat. iykyk. 🧚

Kernel file ./drivers/tty/tty_io.c β€” and then the whole squad: free_tty_struct(9), tty_free_file(9), tty_name(9), get_tty_driver(9), tty_dev_name_to_number(9), tty_find_polling_driver(9), tty_wakeup(9), tty_release_redirect(9), __tty_hangup(9), tty_hangup(9), tty_vhangup(9), tty_vhangup_self(9), tty_vhangup_session(9), tty_hung_up_p(9), stop_tty(9), start_tty(9), tty_read(9), tty_write(9), tty_send_xchar(9), pty_line_name(9), tty_line_name(9), tty_driver_lookup_tty(9), tty_init_termios(9), tty_standard_install(9), tty_driver_install_tty(9), tty_driver_remove_tty(9), tty_reopen(9), tty_init_dev(9), tty_save_termios(9), tty_flush_works(9), release_one_tty(9), tty_kref_put(9), release_tty(9), tty_release_checks(9), tty_kclose(9), tty_release_struct(9), tty_release(9), tty_open_current_tty(9), tty_lookup_driver(9), tty_kopen_exclusive(9), tty_kopen_shared(9), tty_open_by_driver(9), tty_open(9), tty_poll(9), tiocsti(9), tty_do_resize(9), tiocswinsz(9), tioccons(9), tiocsetd(9), tiocgetd(9), send_break(9), tty_get_tiocm(9), tty_tiocmget(9), tty_tiocmset(9), tty_get_icount(9), alloc_tty_struct(9), tty_put_char(9), tty_register_device(9), tty_register_device_attr(9), tty_unregister_device(9), __tty_alloc_driver(9), tty_driver_kref_put(9), tty_register_driver(9), tty_unregister_driver(9).

like i said. the whole friend group. every single one of them. πŸ’œ


ngl this is such a specific little function and i'm obsessed with her. she queries windows. she locks mutexes. she slays. what more could you want? πŸ“

okay so that's the page!! sourced from ./drivers/tty, dated October 2026, and it's giving very much kernel-api-manual realness. bye bestie, go query some windows responsibly!! πŸ˜­πŸ’–πŸ”₯

πŸ“¦ where this page comes from