Нет, ты не можешь. Строго говоря, вы можете использовать много хакерских атак с ОС, но не должны. Вы не должны определять путь для стандартных потоков, открывать путь и писать / читать по нему.
Стандартный ввод / вывод / ошибка не связаны с файлами. Они неразрывно связаны с дескрипторами файлов, которые не обязательно связаны с путем в файловой системе. Они представляют собой намеренную абстракцию над концепцией путей, так что программа всегда может записывать в стандартный ввод / вывод / ошибку, не заботясь о реальных путях. Таким образом, выбор пути осуществляется на стороне пользователя программы, а не самой программы.
Что launchd
делает, когда видит StandardErrorPath
концептуально это:
- Как часть процедуры инициализации, он открывает путь в
StandardErrorPath
, получает дескриптор файла.
- Запустите приложение, установив для этого дескриптора файла «стандартный дескриптор файла ошибок» приложения.
Приложение, когда оно хочет записать в стандартную ошибку, должно просто написать в стандартную ошибку ,
не попытаться определить путь к файлу для стандартной ошибки и записать в него.