tcsh는 파일 설명자를 닫습니다.

tcsh는 파일 설명자를 닫습니다.

tcsh 스크립트로 시작되는 프로그램이 있습니다. 파이프를 통해 해당 프로세스와 통신하고 싶습니다(~ 아니다명명된 파이프)는 상위 프로세스에 의해 생성됩니다. 그러나 tcsh는 0-2시작할 때를 제외하고 모든 열린 파이프를 닫는 것처럼 보입니다 .

예(필요한 것보다 약간 길 수 있으며 문제는 다음과 같이 표시됩니다 B''):

$"명확성"을 위해 bash 프롬프트는 , tcsh 프롬프트는 로 식별하겠습니다 %. 프로세스가 포크일 때 문자를 증가시키고 호출을 '표시하기 위해 를 추가합니다 exec (3).

A$ exec 42>42_output.txt # open fd 42
A$ ls /proc/$$/fd
0  1  2  255  3  42
A$ bash # launch bash as a child
B$ echo test >&42 #writes "test" to the file
B$ exec bash
B'$ echo test2 >&42 # also writes to the file
B'$ ls /proc/$$/fd
0  1  2  255  3  42
B'$ tcsh
B''% ls /proc/$$/fd
0  1  15  16  17  18  19  2
B''% bash
C$ ls /proc/$$/fd
0  1  2  255  3
C$ exit
B''% exec bash
B'''$ ls /proc/$$/fd
0  1  2  255  3
A$ exit
A$ ls /proc/$$/fd
0  1  2  255  3  42
A$ exec tcsh
A$ ls /proc/$$/fd
0  1  15  16  17  18  19  2  4

파일 설명자가 닫혔습니다. 이는 하위 프로세스에서 더 이상 사용할 수 없음을 의미합니다. 파일 설명자를 유지(닫는 것을 방지)하도록 csh에 지시할 수 있는 방법이 있습니까?

관련 정보