Re: Faking a TTY on a pipe/socketpair

Liste des GroupesRevenir à cu programmer 
Sujet : Re: Faking a TTY on a pipe/socketpair
De : gazelle (at) *nospam* shell.xmission.com (Kenny McCormack)
Groupes : comp.unix.programmer
Date : 16. Nov 2024, 21:51:28
Autres entêtes
Organisation : The official candy of the new Millennium
Message-ID : <vhb0kg$ih4k$1@news.xmission.com>
References : 1
User-Agent : trn 4.0-test77 (Sep 1, 2010)
In article <vh9vgr$5bb$1@dont-email.me>,  <Muttley@dastardlyhq.com> wrote:
There is a command line util (MacOS "say")* that I wish to use fork-exec'd from
my own program and send data to it via a socket created by socketpair().
Unfortunately "say" behaves differently depending on whether its stdin is
attached to a tty or not (and there's no cmd line option to prevent this).
With the former it'll speak after every newline, with the latter not until it
gets an EOF and I'd rather not do a fork-exec for each individual word or
phrase that needs to be spoken.
>
So my question is - is there a way to set up a pipe or socketpair** so that
it appears to be a tty from the exec'd programs point of view, eg ttyname()
returns non null?

I think the short answer to your question is: No.

There's no way to directly do what you want in a clean way.

Thus, all we have is kludgey workarounds.  And I'm sure you've got plenty
of your own kludgey workarounds; you don't need any more from me.

That said, if was me, I'd use Expect.  A few lines of Expect would do it,
such that I could send text to the process and the process would think they
were coming from a tty.  In fact, if you don't want to learn Expect (i.e.,
Tcl) just for this project, I think just using "unbuffer -p" (unbuffer is a
program that comes with the Expect distribution) would do it for you.

If you want a more integrated Expect solution, there is a way to embed
Expect inside of your C program (i.e., link to it as a DLL instead of via
TCL scripting).  I've never done this because I've never had the need, but
it might be closer to what you want.

Another way might be to write an interposer so that you could fool the
"say" program into thinking it was talking to a tty even if it wasn't.  I
haven't done any Mac programming in a long time (since my Mac stopped
working), but I think interposers were do-able in the Mac ecosystem.

--
Many North Koreans believe Kim-il-Sung is an "almighty god" who "created
the world" in seven  days as a divine spirit millions  of years ago, and
came to Earth as a human in 1912 as a messianic figure.

Date Sujet#  Auteur
16 Nov 24 * Faking a TTY on a pipe/socketpair95Muttley
16 Nov 24 +* Re: Faking a TTY on a pipe/socketpair5Kenny McCormack
17 Nov 24 i`* Re: Faking a TTY on a pipe/socketpair4Muttley
17 Nov 24 i +- Re: Faking a TTY on a pipe/socketpair1Wolfgang Agnes
17 Nov 24 i `* Re: Faking a TTY on a pipe/socketpair2Kenny McCormack
17 Nov 24 i  `- Re: Faking a TTY on a pipe/socketpair1Muttley
17 Nov 24 +* Re: Faking a TTY on a pipe/socketpair5Kaz Kylheku
17 Nov 24 i+- Re: Faking a TTY on a pipe/socketpair1Muttley
18 Nov 24 i`* Re: Faking a TTY on a pipe/socketpair3Eric Pozharski
18 Nov 24 i `* Re: Faking a TTY on a pipe/socketpair2Kaz Kylheku
19 Nov 24 i  `- Re: Faking a TTY on a pipe/socketpair1Eric Pozharski
18 Nov 24 +* Re: Faking a TTY on a pipe/socketpair4Janis Papanagnou
18 Nov 24 i+- Re: Faking a TTY on a pipe/socketpair1Muttley
18 Nov 24 i`* Re: Faking a TTY on a pipe/socketpair2Richard Kettlewell
18 Nov 24 i `- Re: Faking a TTY on a pipe/socketpair1Muttley
3 Dec 24 +* Re: Faking a TTY on a pipe/socketpair79Muttley
3 Dec 24 i`* Re: Faking a TTY on a pipe/socketpair78Lawrence D'Oliveiro
4 Dec 24 i +* Re: Faking a TTY on a pipe/socketpair75Muttley
5 Dec 24 i i`* Re: Faking a TTY on a pipe/socketpair74Lawrence D'Oliveiro
5 Dec 24 i i +* Re: Faking a TTY on a pipe/socketpair4Kenny McCormack
5 Dec 24 i i i`* Re: Faking a TTY on a pipe/socketpair3Dan Cross
5 Dec 24 i i i `* Re: Faking a TTY on a pipe/socketpair2Kenny McCormack
5 Dec 24 i i i  `- Re: Faking a TTY on a pipe/socketpair1Muttley
5 Dec 24 i i +- Re: Faking a TTY on a pipe/socketpair1Nicolas George
5 Dec 24 i i `* Re: Faking a TTY on a pipe/socketpair68Muttley
5 Dec 24 i i  `* Re: Faking a TTY on a pipe/socketpair67Lawrence D'Oliveiro
6 Dec 24 i i   +* Re: Faking a TTY on a pipe/socketpair10Muttley
6 Dec 24 i i   i`* Re: Faking a TTY on a pipe/socketpair9Lawrence D'Oliveiro
6 Dec 24 i i   i +- Re: Faking a TTY on a pipe/socketpair1John Ames
7 Dec 24 i i   i `* Re: Faking a TTY on a pipe/socketpair7Muttley
7 Dec 24 i i   i  +* Windows-think and systemd (Was: Something completely unrelated to what we're yapping about now)5Kenny McCormack
7 Dec 24 i i   i  i+* Re: Windows-think and systemd (Was: Something completely unrelated to what we're yapping about now)2Muttley
14 Dec 24 i i   i  ii`- AIX (was Re: Windows-think and systemd)1Janis Papanagnou
8 Dec 24 i i   i  i+- Re: Windows-think and systemd (Was: Something completely unrelated to what we're yapping about now)1Kaz Kylheku
9 Dec 24 i i   i  i`- Re: Windows-think and systemd (Was: Something completely unrelated to what we're yapping about now)1Jim Jackson
9 Dec 24 i i   i  `- Re: Faking a TTY on a pipe/socketpair1Rainer Weikusat
6 Dec 24 i i   +- Re: Faking a TTY on a pipe/socketpair1Rainer Weikusat
9 Dec 24 i i   +* Re: Faking a TTY on a pipe/socketpair53Jim Jackson
10 Dec 24 i i   i+* Re: Faking a TTY on a pipe/socketpair2Lawrence D'Oliveiro
10 Dec 24 i i   ii`- Re: Faking a TTY on a pipe/socketpair1Rainer Weikusat
10 Dec 24 i i   i`* Re: Faking a TTY on a pipe/socketpair50Richard Kettlewell
10 Dec 24 i i   i `* Re: Faking a TTY on a pipe/socketpair49Muttley
10 Dec 24 i i   i  +- Re: Faking a TTY on a pipe/socketpair1Jim Jackson
10 Dec 24 i i   i  `* Re: Faking a TTY on a pipe/socketpair47Lawrence D'Oliveiro
10 Dec 24 i i   i   +- Re: Faking a TTY on a pipe/socketpair1Rainer Weikusat
11 Dec 24 i i   i   `* Re: Faking a TTY on a pipe/socketpair45Muttley
11 Dec 24 i i   i    `* Re: Faking a TTY on a pipe/socketpair44Lawrence D'Oliveiro
11 Dec 24 i i   i     +* Re: Faking a TTY on a pipe/socketpair15Jim Jackson
12 Dec 24 i i   i     i`* Re: Faking a TTY on a pipe/socketpair14Nicolas George
12 Dec 24 i i   i     i +* Re: Faking a TTY on a pipe/socketpair2Alexis
12 Dec 24 i i   i     i i`- Re: Faking a TTY on a pipe/socketpair1Nicolas George
12 Dec 24 i i   i     i +* Re: Faking a TTY on a pipe/socketpair3Lawrence D'Oliveiro
12 Dec 24 i i   i     i i`* Re: Faking a TTY on a pipe/socketpair2Muttley
12 Dec 24 i i   i     i i `- Re: Faking a TTY on a pipe/socketpair1Lawrence D'Oliveiro
13 Dec 24 i i   i     i `* Re: Faking a TTY on a pipe/socketpair8Jim Jackson
13 Dec 24 i i   i     i  `* Re: Faking a TTY on a pipe/socketpair7Lawrence D'Oliveiro
14 Dec 24 i i   i     i   `* Re: Faking a TTY on a pipe/socketpair6Jim Jackson
14 Dec 24 i i   i     i    `* Re: Faking a TTY on a pipe/socketpair5Lawrence D'Oliveiro
17 Dec 24 i i   i     i     `* Re: Faking a TTY on a pipe/socketpair4Jim Jackson
17 Dec 24 i i   i     i      `* Re: Faking a TTY on a pipe/socketpair3Lawrence D'Oliveiro
18 Dec 24 i i   i     i       `* Re: Faking a TTY on a pipe/socketpair2Jim Jackson
18 Dec 24 i i   i     i        `- Re: Faking a TTY on a pipe/socketpair1Jim Jackson
12 Dec 24 i i   i     `* Re: Faking a TTY on a pipe/socketpair28Muttley
12 Dec 24 i i   i      `* Re: Faking a TTY on a pipe/socketpair27Lawrence D'Oliveiro
13 Dec 24 i i   i       +* Re: Faking a TTY on a pipe/socketpair24Muttley
13 Dec 24 i i   i       i`* Re: Faking a TTY on a pipe/socketpair23John Ames
14 Dec 24 i i   i       i +* Re: Faking a TTY on a pipe/socketpair21Lawrence D'Oliveiro
14 Dec 24 i i   i       i i+* Re: Faking a TTY on a pipe/socketpair8Rainer Weikusat
15 Dec 24 i i   i       i ii`* Re: Faking a TTY on a pipe/socketpair7Muttley
15 Dec 24 i i   i       i ii `* Re: Faking a TTY on a pipe/socketpair6Rainer Weikusat
16 Dec 24 i i   i       i ii  `* Re: Faking a TTY on a pipe/socketpair5Muttley
16 Dec 24 i i   i       i ii   `* Re: Faking a TTY on a pipe/socketpair4Lawrence D'Oliveiro
17 Dec 24 i i   i       i ii    +* Re: Faking a TTY on a pipe/socketpair2Muttley
17 Dec 24 i i   i       i ii    i`- Re: Faking a TTY on a pipe/socketpair1Lawrence D'Oliveiro
17 Dec 24 i i   i       i ii    `- Re: Faking a TTY on a pipe/socketpair1Rainer Weikusat
16 Dec 24 i i   i       i i`* Re: Faking a TTY on a pipe/socketpair12John Ames
16 Dec 24 i i   i       i i `* Re: Faking a TTY on a pipe/socketpair11Lawrence D'Oliveiro
16 Dec 24 i i   i       i i  +- Re: Faking a TTY on a pipe/socketpair1John Ames
17 Dec 24 i i   i       i i  +* Re: Faking a TTY on a pipe/socketpair8Jim Jackson
17 Dec 24 i i   i       i i  i+* Re: Faking a TTY on a pipe/socketpair3Lawrence D'Oliveiro
17 Dec 24 i i   i       i i  ii`* Re: Faking a TTY on a pipe/socketpair2Muttley
17 Dec 24 i i   i       i i  ii `- Re: Faking a TTY on a pipe/socketpair1Lawrence D'Oliveiro
17 Dec 24 i i   i       i i  i`* Re: Faking a TTY on a pipe/socketpair4Richard Kettlewell
17 Dec 24 i i   i       i i  i +* Re: Faking a TTY on a pipe/socketpair2Lawrence D'Oliveiro
17 Dec 24 i i   i       i i  i i`- Re: Faking a TTY on a pipe/socketpair1Kenny McCormack
17 Dec 24 i i   i       i i  i `- Re: Faking a TTY on a pipe/socketpair1Rainer Weikusat
17 Dec 24 i i   i       i i  `- Re: Faking a TTY on a pipe/socketpair1Rainer Weikusat
14 Dec 24 i i   i       i `- Re: Faking a TTY on a pipe/socketpair1Muttley
13 Dec 24 i i   i       +- Re: Faking a TTY on a pipe/socketpair1Rainer Weikusat
13 Dec 24 i i   i       `- Re: Faking a TTY on a pipe/socketpair1Jim Jackson
14 Dec 24 i i   +- Re: Faking a TTY on a pipe/socketpair1Muttley
14 Dec 24 i i   `- Re: Faking a TTY on a pipe/socketpair1Lawrence D'Oliveiro
14 Dec 24 i +- Re: Faking a TTY on a pipe/socketpair1Muttley
16 Dec 24 i `- macOS and UNIX conformance (was: Faking a TTY on a pipe/socketpair)1Geoff Clare
3 Dec 24 `- Re: Faking a TTY on a pipe/socketpair1Richard Kettlewell

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal