delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/01/13/11:05:10

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.6 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS
X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
From: Eric Blake <ebb9 AT byu DOT net>
Subject: Re: Tried out cygwin-inst-20100111.tar.bz2
Date: Wed, 13 Jan 2010 16:04:32 +0000 (UTC)
Lines: 30
Message-ID: <loom.20100113T165802-718@post.gmane.org>
References: <COL102-W462D97538DD6B7BAA121D5B56C0 AT phx DOT gbl> <20100112164834 DOT GV14511 AT calimero DOT vinschen DOT de> <COL102-W52DB3A5D272B9E630D808EB56C0 AT phx DOT gbl> <20100113110729 DOT GX14511 AT calimero DOT vinschen DOT de> <4B4DCB0C DOT 9040402 AT byu DOT net> <20100113140642 DOT GZ14511 AT calimero DOT vinschen DOT de>
Mime-Version: 1.0
User-Agent: Loom/3.14 (http://gmane.org/)
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Corinna Vinschen <corinna-cygwin <at> cygwin.com> writes:

> 
> IIU the SUSv4 description C, and given that a newly opened console is
> always setup with the default termios settings anyway, we could simply
> set O_TTY_INIT to 0 and be done with it:

Yep, that's my understanding as well.  This link is also informative:

http://www.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html#tag_11_02

"Since the termios structure may include additional members, and the standard 
members may include both standard and non-standard modes, the structure should 
never be initialized directly by the application as this may cause the terminal 
to behave in a non-conforming manner. When opening a terminal device (other 
than a pseudo-terminal) that is not already open in any process, it should be 
opened with the O_TTY_INIT flag before initializing the structure using 
tcgetattr( ) to ensure that any non-standard elements of the termios structure 
are set to values that result in conforming behavior of the terminal interface."

In other words, tcsetattr should always be used on a struct termios obtained 
from a read-modify-write manner, and never from a memset(0) manner, where the 
use of O_TTY_INIT guarantees (trivially, if it is defined to 0) that any 
extension fields in struct termios that need to be set to a non-zero value for 
POSIX conformance are set correctly.

-- 
Eric Blake




--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019