Guido van Rossum wrote: > On Jan 28, 2008 12:35 AM, Greg Ewing <[EMAIL PROTECTED]> 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. > While I couldn't locate such a document, it makes sense when you consider that if such a process is part of a pipeline you really don't want the prompts being handled as input by the downstream processes.
That's why mv and similar utilities prompt on standard error. I'd be very surprised if you can find a UNIX or Linux shell, for example, that prompts on standard output. >> 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. > regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com