如何从NSTask运行“屏幕”命令?

| 我想在Mac上监控虚拟COM端口(Arduino RFID)。我可以从终端运行\“ screen /dev/tty.serialnumber \”,并且在我滑动它时会输出RFID序列号。 当我使用NSTask从Xcode尝试使用它时,将得到以下输出。   必须连接到端子。 这是我的代码:
NSTask *cd = [[NSTask alloc] init];

[cd setLaunchPath:@\"/usr/bin/screen\"];
[cd setArguments:[NSArray arrayWithObjects:@\"-L\",@\"/dev/tty.usbserial-A800509K\",nil]];

NSPipe *pipe;
pipe = [NSPipe pipe];
[cd setStandardOutput: pipe];
[cd setStandardInput:[NSPipe pipe]];

NSFileHandle *file;
file = [pipe fileHandleForReading];

[cd launch];

NSData *data;
data = [file readDataToEndOfFile];

NSString *string;
string = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];

NSLog (@\"%@\", string);

[cd waitUntilExit];
[cd release];
    
已邀请:
我认为您最好直接使用基础库或第三方Obj-C库(例如,https://github.com/pbosetti/PBSerialPort)直接访问COM端口。 另外,如果要监视COM端口,则必须设置一个线程来读取串行端口,并更新UI中的文本区域。请记住,辅助线程应通过方法
- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait
更新UI。     

要回复问题请先登录注册