아니요. 물론 엄밀히 말하면 OS로 많은 해커를 사용하면되지만 그렇지 않아야합니다. 표준 스트림의 경로를 결정하고 경로를 열고 쓰기/읽기를해서는 안됩니다.
표준 입력/출력/오류는 파일과 관련이 없습니다. 파일 핸들은 파일 시스템의 경로와 반드시 연관 될 필요는 없지만 파일 핸들과 본질적으로 연관되어 있습니다. 이것들은 경로의 개념에 대한 의도적 인 추상화이므로 프로그램은 실제 경로를 신경 쓰지 않고도 표준 입력/출력/오류에 항상 쓸 수 있습니다. 이렇게하면 경로의 선택은 프로그램 자체가 아니라 프로그램 사용자 측에서 수행됩니다. 이 StandardErrorPath
이 개념이있다 볼 때
무엇 launchd
가 수행합니다
- 가 초기화 절차의 일환으로, 그것은
StandardErrorPath
에 경로를 열어, 파일 기술자를 얻을.
- 앱을 실행하여 해당 파일 설명자를 앱의 "표준 오류 파일 설명자"로 설정합니다. 이 표준 오류에 기록하고 싶은
응용 프로그램은,해야 단지 하지가 표준 오류에 대한 파일 경로를 확인하고 그것에 작성하려고 표준 오류, 쓰기.
혼란 스럽습니다. 당신 자신의 프로세스 나 NSTask (자식 프로세스)에 대한 표준 출력/에러를 원합니까? –
나는 내 자신의 프로세스의 표준 출력/오류를 원한다. 나는 NSTask로하려고했던 것이 잘못되었다고 생각합니다. 내 자신의 프로세스에 대한 작업을 만든 다음 NSTask의 init 만 사용하여 standardError (NSFileHandle로)를 가져 오려고했습니다. – stan0
NSTask는 새 프로세스를 시작하기위한 것입니다. 기존 프로세스에 대해 하나를 작성할 수 없습니다. –