Этот ответ демонстрирует, что на iOS можно перенаправить stderr в файл на logFileUrl
, написав
freopen(logFileUrl.path.cString(using: .ascii), "a+", stderr)
После того, как я это сделал, как я могу позжевосстановить дескриптор stderr
к его первоначальному значению?Другими словами, я хочу, чтобы дальнейший вывод стандартной ошибки шел в то же место, в котором он находился до того, как я позвонил freopen()
.
Ответы на на этот вопрос предполагают, что я могу сохранитьисходное значение stderr
и сделать пару вызовов dup2
, но я считаю, что функция принимает файловые дескрипторы, а не файловые дескрипторы, такие как stderr
, и я не уверен, как безопасно конвертировать между ними.