[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: problems with INTERACTIVE-STREAM-P
Nathan Sidwell <firstname.lastname@example.org> writes:
> I was assuming that *error-output* was a unidirectional stream (thus
> reading it would be silly), and that interactivity was essentially
> determined by isatty(fileno).
Streams can be unidirectional or bidirectional, in Common Lisp as well
as in Unix. (Unix sockets are "bi"). INTERACTIVE-STREAM-P queries the
input side of the stream.
> > (How do you tell that a file descriptor is pointing to /dev/null
> > when all you have is the file descriptor?)
> err, isatty(3)?
Nope, doesn't work. isatty() of a pipe handle is false, so when you
run clisp within an Emacs buffer, connected to Emacs via pipes, isatty()
will tell you "false", but INTERACTIVE-STREAM-P will say "yes".
> Anyway I've solved my problem, with the rather inelegant solution of
> (zerop (shell "tty -s 0<&1"))
The same argument holds here, as for isatty().
Bruno Haible email: <email@example.com>
Software Engineer phone: +33-1-49083585