Sam Steingold wrote:
> How do I figure out if the fd (specifically, stdin=0) is open?
> apparently it is closed when the application is run by nohup.
> the only thing I could figure out so far is fstat: when 0 is open,
> st_mode is 8592, when it is closed it is 8630...

When fd is closed, fstat should return -1 and set errno to EBADF. So your
test is
  fstat (fd, &stbuf) < 0 && errno == EBADF.

Of course, Jim's trick with fcntl is even better, since it does not cause
disk or disk cache accesses.

Bruno


Reply via email to