Question about closeing and opening stdin

Michael C. Shultz ringworm01 at
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> [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.


More information about the freebsd-hackers mailing list