TCSENDBREAK(3P)

🌸 TCSENDBREAK(3P) β€” aka the POSIX Programmer's Manual page for tcsendbreak πŸ’–


✨ PROLOG ✨

okay so bestie, real talk before we even start: this page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (so like, go check the corresponding Linux manual page for the tea on Linux behavior), or honestly the interface might not even be implemented on Linux at all. πŸ™ˆ


πŸ’… NAME πŸ’…

tcsendbreak β€” send a break for a specific duration


πŸŽ€ SYNOPSIS πŸŽ€

#include <termios.h>

int tcsendbreak(int fildes, int duration);

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so here's the vibe. If your terminal is doing asynchronous serial data transmission, then tcsendbreak() shall cause transmission of a continuous stream of zero-valued bits for a specific duration. Yes, a whole lil stream of zeroes. It's giving... nothing, on purpose. 😌

Now, the duration rules, pay attention bestie:

  • If duration is 0, it shall cause transmission of zero-valued bits for at least 0.25 seconds, and not more than 0.5 seconds.
  • If duration is not 0, it shall send zero-valued bits for an implementation-defined period of time. (iykyk, that's "whatever your system feels like", not a number we're promising you.)

The fildes argument is an open file descriptor associated with a terminal. That's the whole point of it, no cap.

If the terminal is not using asynchronous serial data transmission, it is implementation-defined whether tcsendbreak() sends data to generate a break condition, or just returns without taking any action. Either way, no promises. 🀷

Now for the spicy part πŸ‘€ β€” attempts to use tcsendbreak() from a process which is a member of a background process group on a fildes associated with its controlling terminal shall cause the process group to be sent a SIGTTOU signal. BUT. If the calling thread is blocking SIGTTOU signals, or the process is ignoring SIGTTOU signals, then the process shall be allowed to perform the operation, and no signal is sent. iconic loophole behavior honestly.


⭐ RETURN VALUE ⭐

  • On a successful completion, 0 shall be returned. slay.
  • Otherwise, -1 shall be returned and errno set to indicate the error. not slay. 😭

πŸ”₯ ERRORS πŸ”₯

The tcsendbreak() function shall fail if:

  • EBADF β€” The fildes argument is not a valid file descriptor. bestie that's not a real fd, be so fr.
  • EIO β€” The process group of the writing process is orphaned, the calling thread is not blocking SIGTTOU, and the process is not ignoring SIGTTOU.
  • ENOTTY β€” The file associated with fildes is not a terminal. it's giving "sir this is a Wendy's" πŸ“
heads up: the following sections are informative. (That means they're context, not rules, bestie.)

🌈 EXAMPLES 🌈

None. literally none. we got nothing for you here πŸ’€


πŸ’œ APPLICATION USAGE πŸ’œ

None. also nothing. the void stares back 🫢


🧚 RATIONALE 🧚

None. no thoughts, head empty ✨


🌸 FUTURE DIRECTIONS 🌸

None. the future is... also nothing. periodt. πŸ‘‘


πŸŽ€ SEE ALSO πŸŽ€

  • The Base Definitions volume of POSIX.1‐2017, Chapter 11, General Terminal Interface, <termios.h>

Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html .

Any typographical or formatting errors that appear in this page are most likely to have been introduced during the conversion of the source files to man page format. To report such errors, see https://www.kernel.org/doc/man-pages/reporting_bugs.html .


okay bestie that's the whole page, go forth and break things (the good, protocol-approved kind of breaking πŸ’–) β€” this was IEEE/The Open Group, 2017, TCSENDBREAK(3P), signing off. mwah. πŸ’…βœ¨

πŸ“¦ where this page comes from