표준 I/O 파일 디스크립터

표준 I/O 파일 디스크립터

나는 이것을 코딩했다.

$ ls -l 1> stdout.txt

원하는 출력을 얻었고,

1> stdout.txt

표준 출력의 출력을 stdout.txt 파일로 리디렉션합니다.

디스크에 그러한 파일이 표시되지 않습니다. 이러한 파일을 지원하는 파일 시스템은 무엇입니까?메모리 파일 시스템?

이는 다음과 유사합니까?프로세스 파일 시스템그리고시스템 파일 시스템?

답변1

Linux를 사용하고 있고 질문을 올바르게 읽었다면 확인하십시오./proc.

구체적인 절차 /proc/[pid]/fd는 다음을 참조하세요.ls -l /proc/123/fd/

다음을 통해 현재 프로세스 fd에 액세스하는 특별한 방법도 있습니다 /proc/self/fd.

ls -l /proc/self/fd예를 들어 현재 쉘이 아닌 프로세스 에 적용된다는 점에 유의하세요 ls. 다음을 통해 이를 확인할 수 있습니다.

cat /proc/self/cmdline | tr '\000' '\n'

또는

cat /proc/self/status

최종적으로 PPid쉘의 PID를 살펴보세요.

Name:   cat
State:  R (running)
Tgid:   12696
Pid:    12696
PPid:   312

실험적으로 두 개의 터미널 창을 열어볼 수 있습니다.

  1. echo $$이 쉘의 PID를 얻으려면 창 1에 입력하십시오 .
  2. 창 2에서 말해요cat /proc/[pid]/fd/1
  3. 창 1에서 입력을 시작하고 창 2에서 무슨 일이 일어나는지 지켜보세요.

관련 정보