我想利用Mac OS X上的CFStream能够异步读/写到作为串行通信设备的文件描述符。我需要访问文件描述符,以便通过ioctl控制和更改设备设置。
虽然在使用面向套接字的流操作时似乎可以访问本机套接字fd,但我还没有看到任何方法使用CFCreateXxxStreamWithFile API打开文件然后获取文件描述符(甚至当时,我真的需要一个来自同一个fd的对,所以我可以设置读/写选项)或从现有文件描述符创建CFStreams的方法。
有没有方法,或者是否有允许这样做的库(类似于AyncCococaSocket)?或者我降级到自己的线程操作和/或GCD(这会将自己限制在10.6及以上)?
感谢您的帮助!
答案 0 :(得分:0)
您可以使用CFReadStreamCopyProperty
通过属性getters CFWriteStreamCopyProperty
或kCFStreamPropertySocketNativeHandle
访问CFStream的文件描述符。对于读写流对,结果描述符应该相同。