stdout이 삭제되었는지 확인하는 올바른 방법은 무엇입니까?

stdout이 삭제되었는지 확인하는 올바른 방법은 무엇입니까?

실행 중인 C 프로그램에서 stdout이 삭제되었는지 확인해야 합니다.

/proc/pid/fd"삭제됨"이란 "삭제됨"이라고 표시된 부분을 의미합니다.

ll /proc/91495/fd
total 0
dr-x------ 2 ibse ibse  0 січ 31 00:49 ./
dr-xr-xr-x 9 ibse ibse  0 січ 31 00:49 ../
lrwx------ 1 ibse ibse 64 січ 31 00:49 0 -> '/dev/pts/5 (deleted)'
lrwx------ 1 ibse ibse 64 січ 31 00:50 1 -> '/dev/pts/5 (deleted)'

예를 들어 프로그램의 제어 터미널이 종료/닫힐 때 이런 일이 발생할 수 있습니다.

표준 출력에 쓰지 않고 반환된 오류를 확인하는 방법이 있습니까?

이 경우에 사용하면 오류가 반환될 것이라고 가정했지만 fstat(STDOUT_FILENO, &buf)그렇지 않습니다.

관련 정보