RE: [PHP-DEV] Unbuffered fgetc needed for stdin
| From: | August Zajonc | Date: | Sat, 15 Dec 2001 22:49:15 +0000 |
| Subject: | RE: [PHP-DEV] Unbuffered fgetc needed for stdin | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-73955@lists.php.net to get a copy of this message | ||
Doh... That's right. Stream input is usually buffered. Futzing with tty is
pretty ugly I think (stty/ioctl)...
On further reflection it seems that the getting a wrapper for ncurses or cdk
would be a real nice win for PHP. Perl's got a cdk module, think Python has
a ncurses wrapper. If they have reasonable license terms might be easy to
use those as a starting point for a php wrapper.
Wrapping these ncurses / cdk would be a nice add for PHP on the commandline.
Unfortunatly don't have the time to attempt something like this.
-AZ
> -----Original Message-----
> From: Andi Gutmans [mailto:andi@zend.com]
> Sent: Saturday, December 15, 2001 1:34 PM
> To: August Zajonc; php-dev@lists.php.net
> Subject: Re: [PHP-DEV] Unbuffered fgetc needed for stdin
>
>
> This usually depends on how you configured your tty. I think by
> default it
> is buffered by the OS until a newline so it's probably not PHP
> which needs
> changing but your settings.
>
> Andi
>
> At 12:30 PM 12/15/2001 -0800, August Zajonc wrote:
> >I've really run into a wall trying to get single charachters from stdin.
> >
> >Something similar to the getchar macro or a real fgetc would be nice.
> >
> >The current behavior is that more than a signle charachter can
> be typed and
> >fgetc only returns when it sees a "\n".
> >
> >I'd like it to return immediatly after the first charachter.
> >
> >fscanf with a format string something like "%c" requires a "\n" before
> >returning as well, though I suppose that is more understandable.
> >
> >various things like fread with length of 1 also don't work.
> >
> >This is missing functionality for which there is no workaround that would
> >certainly make shell scripting easier. It should be relativly trivial to
> >implement, either an unbuffered fgetc option or a new function
> or something.
> >
> >-AZ
> >
> >
> >--
> >PHP Development Mailing List <http://www.php.net/>
> >To unsubscribe, e-mail: php-dev-unsubscribe@lists.php.net
> >For additional commands, e-mail: php-dev-help@lists.php.net
> >To contact the list administrators, e-mail: php-list-admin@lists.php.net
>
>