我设置了一个文件句柄来读取 stdout 的内容,当我尝试使用 availableData 从中提取数据时,它会挂起,但仅当应用程序在我的设备上手动运行时。当我通过 Xcode 在我的设备上或在模拟器上运行该应用程序时,它会按预期提取数据,而我的其余代码可以完美运行。任何想法发生了什么?我的代码如下:
int pipefd[2];
pipe(pipefd);
dup2(pipefd[1], STDOUT_FILENO);
close(pipefd[1]);
NSFileHandle *stdoutReader = [[NSFileHandle alloc] initWithFileDescriptor:pipefd[0]];
// this method writes output to stout
int result = [self createOutput:string1:string2];
// code hangs on this next line when app is run manually on device)
NSData *stdoutData = [stdoutReader availableData];
我想知道是否在我的设备上,createOutput 方法运行得更慢,所以当我尝试从标准输出中获取数据时,还没有?