[Python-Dev] Incorrect documentation of the raw_input built-in function

Guido van Rossum guido at python.org
Mon Jan 28 18:57:01 CET 2008


On Jan 28, 2008 12:35 AM, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> Isaac Morland wrote:
>
> > What about an option (maybe even a default) to send the prompt to stdin?
> >
> > The Postgres command line interface psql appears to do this:
> >
> > $ psql 2>&1 >/dev/null
> > Password:
> > $
>
> No, it's probably using the C stdlib routine getpass(). From the man
> page:
>
>       The getpass() function displays a prompt to, and reads in a password
>       from, /dev/tty.  If this file is not accessible, getpass() displays the
>       prompt on the standard error output and reads from the standard input.
>
> So it appears that the official Unix Way prefers using stderr
> over stdout for prompting, if using the std files for it at all.

That's a dangerous generalization from just one example. I'd prefer it
if you could unearth some POSIX or Linux base document saying this.

> Writing to stdin would be wrong, since it's usually read-only, even
> when connected to a terminal.

Nowadays, it often is writable I've found, but we still shouldn't assume that.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list