Question about closeing and opening stdin
Michael C. Shultz
ringworm01 at gmail.com
Wed Nov 23 23:29:00 GMT 2005
On Wednesday 23 November 2005 11:21, Joan Picanyol i Puig wrote:
> [private reply, I'm 100% unsure I understand what you want]
>
> * Michael C. Shultz <ringworm01 at gmail.com> [20051122 19:58]:
> > How do I close then open stdin and keep it set to the same terminal
> > as when it was closed?
>
> ? If it's closed, you've lost your file descriptor.
>
> > and it works in this instance of the program, but
> > if a second instance is started the second instance can't
> > close stdin.
>
> I seems like you want "file descriptor passing". You can pass
> fd's over pipes.
>
> qvb
> --
> pica
Here is the solution that finally worked in my case:
local_stdin = fopen( "/dev/stdin", "r" );
answer = getc( local_stdin );
if timeout:
fclose( local_stdin );
After answer is handled I then just:
fclose( local_stdin );
and leave it closed untill needed again
I am able to open and close this local_stdin
without adversly affecting the global stdin, don't
know if it's "the right thing to do" but it works
with every test I've thrown at it so far.
-Mike
More information about the freebsd-hackers
mailing list