파일 설명자가 닫혀 있는지 확인

파일 설명자가 닫혀 있는지 확인

posix sh에서 파일 설명자가 열려 있는지 확인하는 것이 가능합니까?

사용자 제공 확장에 대한 스크립트에 선택적 입력 파일 설명자를 제공하면 읽기가 즉시 실패합니다 EBADF.

#!/bin/sh
database_initialize()
{
   echo "create database bob;"
  # TODO check if open
  # Input file descriptor 3 is used to send to bootstrap
  cat <&3

}

database_initialize | mysqld --bootstrap

다음과 같은 Linux 관련 항목을 피하고 싶습니다.[ -s /proc/self/fd/3 ]

답변1

fd_is_open() (: >&"$1") 2>/dev/null;

if fd_is_open 7; then
   ...
fi

오류 메시지를 제거하려면 fd 2를 열어야 하기 때문에 fd 2에 잘못된 긍정이 표시됩니다.

관련 정보