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