Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
IO::Stty(3)	      User Contributed Perl Documentation	   IO::Stty(3)

       IO::Stty	- Change and print terminal line settings

	   # calling the script	directly [setting...] {-a,-g,-v,--version}

	   # Calling Stty module
	   use IO::Stty;
	   IO::Stty::stty(\*TTYHANDLE, @modes);

	    use	IO::Stty;

	    # Turn off echoing.

	    # Do whatever.. grab input maybe?
	    $read_password = <>;

	    # Now restore the old mode.

	    # What settings do we have anyway?
	    print IO::Stty::stty(\*STDIN,'-a');

       This is the PERL	POSIX compliant	stty.

       This has	not been tailored to the IO::File stuff	but will work with it
       as indicated. Before you	go futzing with	term parameters	it's a good
       idea to grab the	current	settings and restore them when you finish.

       stty accepts the	following non-option arguments that change aspects of
       the terminal line operation. A `[-]' before a capability	means that it
       can be turned off by preceding it with a	`-'.

stty parameters
   Control settings
	   Generate parity bit in output and expect parity bit in input.

	   Set odd parity (even	with `-').

       cs5 cs6 cs7 cs8
	   Set character size to 5, 6, 7, or 8 bits.

       [-]hupcl	[-]hup
	   Send	a hangup signal	when the last process closes the tty.

	   Use two stop	bits per character (one	with `-').

	   Allow input to be received.

	   Disable modem control signals.

   Input settings
	   Ignore break	characters.

	   Breaks cause	an interrupt signal.

	   Ignore characters with parity errors.

	   Mark	parity errors (with a 255-0-character sequence).

	   Enable input	parity checking.

	   Clear high (8th) bit	of input characters.

	   Translate newline to	carriage return.

	   Ignore carriage return.

	   Translate carriage return to	newline.

	   Enable XON/XOFF flow	control.

	   Enable sending of stop character when the system input buffer is
	   almost full,	and start character when it becomes almost empty

   Output settings
	   Postprocess output.

   Local settings
	   Enable interrupt, quit, and suspend special characters.

	   Enable erase, kill, werase, and rprnt special characters.

	   Echo	input characters.

       [-]echoe, [-]crterase
	   Echo	erase characters as backspace-space-backspace.

	   Echo	a newline after	a kill character.

	   Echo	newline	even if	not echoing other characters.

	   Disable flushing after interrupt and	quit special characters.

	   * Though this claims	non-posixhood it is supported by the perl

       [-]tostop (np)
	   Stop	background jobs	that try to write to the terminal.

   Combination settings
       ek  Reset the erase and kill special characters to their	default

	   Same	as:

	       cread -ignbrk brkint -inlcr -igncr icrnl	-ixoff opost
	       isig icanon echo	echoe echok -echonl -noflsh -tostop

	   also	sets all special characters to their default values.

	   Same	as:

	       brkint ignpar istrip icrnl ixon opost isig icanon

	   plus	sets the eof and eol characters	to their default values	if
	   they	are the	same as	the min	and time characters.  With `-',	same
	   as raw.

	   Same	as:

	       -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr
	       -icrnl -ixon -ixoff -opost -isig	-icanon	min 1 time 0

	   With	`-', same as cooked.

	   Same	as:

	       -parenb -istrip cs8

	   With	 `-',  same  as	parenb istrip cs7.

       dec Same	as:

	       echoe echoctl echoke -ixany

	   Also	sets the interrupt special character to	Ctrl-C,	erase to Del,
	   and kill to Ctrl-U.

   Special characters
       The special characters' default values vary from	system to system. They
       are set with the	syntax `name value', where the names are listed	below
       and the value can be given either literally, in hat notation (`^c'), or
       as an integer which may start with `0x' to indicate hexadecimal,	`0' to
       indicate	octal, or any other digit to indicate decimal.	Giving a value
       of `^-' or `undef' disables that	special	character.

	   Send	an interrupt signal.

	   Send	a quit signal.

	   Erase the last character typed.

	   Erase the current line.

       eof Send	an end of file (terminate the input).

       eol End the line.

	   Restart the output after stopping it.

	   Stop	the output.

	   Send	a terminal stop	signal.

   Special settings
       min N
	   Set the minimum number of characters	that will satisfy a read until
	   the time value has expired,	when <E>-icanon<E> is set.

       time N
	   Set the number of tenths of a second	before reads time out if the
	   min number of characters  have  not been read, when -icanon is set.

       N   Set the input and output speeds to N.  N can	be one of: 0 50	75 110
	   134 134.5 150 200 300 600 1200 1800 2400 4800 9600 19200 38400 exta
	   extb.  exta is  the same  as	19200; extb is the same	as 38400.  0
	   hangs up the	line if	-clocal	is set.

       -a  Print all current settings in human-readable	 form.

       -g  Print all current settings in a form	 that  can  be used  as	 an
	   argument  to	 another stty command to restore the current settings.

	   Print version info.

Direct Subroutines
	       IO::Stty::stty(\*STDIN, @params);

	   From	comments:

	       I'm not feeling very inspired about this. Terminal parameters are obscure
	       and boring. Basically what this will do is get the current setting,
	       take the	parameters, modify the setting and write it back. Zzzz.
	       This is not especially efficent and probably not	too fast. Assuming the POSIX
	       spec has	been implemented properly it should mostly work.

	   Needs documentation

       Austin Schutz <> (Initial version and maintenance)

       Todd Rinaldo <> (Maintenance)

       This is use at your own risk software. Do anything you want with	it
       except blame me for it blowing up your machine because it's full	of

       See above for what functions are	supported. It's	mostly standard	POSIX
       stuff. If any of	the settings are wrong and you actually	know what some
       of these	extremely arcane settings (like	what 'sane' should be in POSIX
       land) really should be, please open an RT ticket.


       Copyright 1997 Austin Schutz, all rights	reserved.

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.32.1			  2020-01-19			   IO::Stty(3)


Want to link to this manual page? Use this URL:

home | help