이는 Linux 관련 문제입니다.
Bash 스크립트는 다음과 같습니다.
echo foo > "a.txt"
exec 3<"a.txt"
cat /dev/fd/3
cat /dev/fd/3
cat /dev/fd/3
산출:
foo
foo
foo
이들 모두가 cat
표시됩니다 /dev/fd/3
. 그러나 /dev/fd/3
단지 심볼릭 링크일 뿐입니다 a.txt
. 이것은 동작을 설명하지만 이것이 보장되는지는 알 수 없습니다(만약 그렇다면 어떤 보장으로):
실행하면
exec 3<"a.txt"
항상/dev/fd/3
심볼릭 링크가 있습니다a.txt
.열어서 읽을 때마다
/dev/fd/3
몸 전체가 반환됩니다.
비슷하지만 동일하지는 않은 질문에 대한 답변이 있습니다.