Можно ли читать / записывать на устройство через CFStream? - PullRequest
0 голосов
/ 14 марта 2012

Я хотел бы воспользоваться CFStream в Mac OS X для возможности асинхронного чтения / записи в файловый дескриптор, который является устройством последовательной связи.Мне нужен доступ к файловому дескриптору, чтобы я мог контролировать и изменять настройки устройства через ioctl.

Хотя кажется, что можно получить доступ к собственному сокету fd при использовании потоковых операций, ориентированных на сокеты, у меня естьне было найдено ни способа открыть файл с помощью API-интерфейса CFCreateXxxStreamWithFile, а затем получить дескриптор файла (и даже тогда мне действительно понадобится пара из того же fd, чтобы я мог установить параметры для чтения / записи) или способ создания CFStreamиз существующих файловых дескрипторов.

Есть ли способ или есть библиотека, позволяющая сделать это (сродни AyncCococaSocket)?Или я вынужден выполнять свою собственную работу с потоками и / или GCD (которая ограничивала бы меня 10,6 и выше)?

Спасибо за помощь!

1 Ответ

0 голосов
/ 22 марта 2012

У вас есть доступ к дескриптору файла CFStream через свойство getters CFReadStreamCopyProperty или CFWriteStreamCopyProperty с использованием kCFStreamPropertySocketNativeHandle.Результирующий дескриптор должен быть одинаковым для пары чтение-запись-поток.

...