Когда я отлаживаю приложение OSX из XCode, я могу связываться с консолью приложения из консоли отладки XCode - например, приложение может printf()
до stdout
, и это отображается на консоли отладки XCode, и мое приложение можно вызвать fgets()
на stdin
, в который я могу ввести ввод в консоли отладки XCode.
Похоже, XCode при отладке приложений для iOS на iPhone подключается stdout
(printf()
и др. Работают нормально), но не stdin
?
Кто-нибудь заставил stdin
на iOS / iPhone работать? Это было бы чрезвычайно полезно во время отладки - даже с приложением iOS Cocoa. Я мог бы заставить это работать более сложным способом, например с сокетом, но я бы предпочел, чтобы XCode сделал это для меня.
UPDATE:
Ну, это объяснило бы это. Симулятор iOS фактически открывает /dev/null
для stdin
. Можно выяснить, куда идет stdout
(обычно /dev/ttys00X
), а затем снова открыть его с помощью O_RDONLY
и назначить его в stdin. Это прекрасно работает для симулятора iOS, но похоже, что дисциплина линии для последовательного подключения к оборудованию iphone неправильная - вы можете продолжать вводить данные в консоли отладки xcode, и она никогда не будет отправлена на оборудование iphone (и ваша программа работает) на аппаратном обеспечении iPhone будет просто сидеть и ждать, пока что-то появится на stdin
aka /dev/ttys00X
).
Интересно, есть ли способ заставить это работать с аппаратным обеспечением iPhone?