아니, /dev/stdin
하고 /dev/stdout
잘못된 장치입니다. 이들은 터미널 장치가 아니며 각각 표준 입력 및 표준 출력의 별명입니다. 표준 입력과 표준 정의에 의해 출력되고, 파일 디스크립터 애플리케이션이 개방 될 것으로 기대하고 종래의 의미를 가지고 (각각의 파일 디스크립터 0, 1, 표준 오차이다도 2있다). 응용 프로그램에서 파일 이름이 필요한 경우 /dev/stdin
와 같은 장치 /dev/stdout
는 유용하지만 응용 프로그램 사용자는 파일을 열지 않고 특정 파일 설명자에 액세스하려고합니다. 유닉스 변종에 따라 장치 파일이 아닐 수도 있습니다. 예를 들어, Linux에서는 다음과 같은 심볼릭 링크입니다./proc/self/fd/0
그리고 친구들이며, 이는 프로세스가 해당 파일 디스크립터에서 이미 열어 놓은 모든 파일에 대한 "매직"심볼릭 링크입니다.
의 사용 권한을 변경 /dev/stdin
하고 /dev/stdout
에만이 파일 이름은 명시 적으로 사용하는 경우 발생하는 변경합니다. 터미널과 관련된 내용에는 영향을 미치지 않으며 특정 파일 이름을 열 때만 권한이 중요하므로 표준 입력 및 표준 출력의 일반적인 사용에는 영향을 미치지 않습니다.
어떤 mesg
일은 프로세스의의 권한을 변경하는 제어 단자 . 터미널에서 실행되는 응용 프로그램의 경우 표준 입력, 표준 출력 및 표준 오류 (파일 설명자 0, 1 및 2)에서 터미널이 열립니다. 이 명령 tty
을 사용하여 터미널 장치가 무엇인지 확인할 수 있습니다 . mesg n
동등 chmod g-w "$(tty)"
과 mesg y
동일하다 chmod g+w "$(tty)"
.
mesg n
권한을 사용하여 미래write
에만 영향을 줄 수 있습니다 .write