From: Andrew Barton <andrevv@users.sourceforge.net>
To: aebr@win.tue.nl
Cc: linux-kernel@vger.kernel.org
Subject: Re: forkpty with streams
Date: 25 Jul 2003 10:59:04 +0000 [thread overview]
Message-ID: <1059130744.13184.11.camel@localhost> (raw)
In-Reply-To: <20030725152751.GA606@win.tue.nl>
On Fri, 2003-07-25 at 15:27, Andries Brouwer wrote:
> On Thu, Jul 24, 2003 at 11:28:36PM +0000, Andrew Barton wrote:
>
> > I've got the 2.4 kernel, and I'm trying to use the forkpty() system call
>
> forkpty is not a system call
>
> > with the standard I/O stream functions. The calls to forkpty() and
> > fdopen() and fprintf() all return successfully, but the data never seems
> > to get to the child process.
>
> > pid = forkpty (&fd, 0, 0, 0);
> > if (pid == 0) {
> > execlp ("sh", "sh", (void *)0);
> > } else {
> > F = fdopen (fd, "w");
> > fprintf (F, "exit\n");
> > fflush (F);
> > wait (0);
> > }
>
> Let me see. Your sh gets input from this pseudotty and sends its
> output there again. But you never read that filedescriptor.
> No doubt things will improve if you let the parent read from fd.
>
> Andries
Before I tried using streams, I just used write() to communicate with
the ptty, but I had the same problem. I found that if I put a read()
call before and after the write(), it worked. But why? Is this some kind
of I/O voodoo? How does the reading affect the writing?
You mentioned that things would improve if I let the parent read from
fd. Will this work using streams? I have tried opening fd in "r+" mode,
but in that case I end up reading my own data. Do I need to lay an
fflush() somewhere inbetween? What is it exactly that causes the data to
be sent to the parent?
I appreciate the help.
next prev parent reply other threads:[~2003-07-25 17:44 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-24 23:28 forkpty with streams Andrew Barton
2003-07-25 13:02 ` Doug McNaught
2003-07-25 15:27 ` Andries Brouwer
2003-07-25 10:59 ` Andrew Barton [this message]
2003-07-25 18:46 ` Matti Aarnio
2003-07-25 12:53 ` Andrew Barton
2003-07-25 20:10 ` Andries Brouwer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1059130744.13184.11.camel@localhost \
--to=andrevv@users.sourceforge.net \
--cc=aebr@win.tue.nl \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.