我想从Objective-C捕获NSLog
的输出并将内容放在文本视图中。为此,我创建了一个在poll
和STDERR_FILENO
上使用STDOUT_FILENO
的后台线程,如下所示:
struct pollfd fds[2] = {
{.fd = STDERR_FILENO, .events = POLLIN },
{.fd = STDOUT_FILENO, .events = POLLIN }
};
const size_t nfds = sizeof(fds) / sizeof(fds[0]);
int result = poll(fds, nfds, -1);
但是,即使我在致电printf
之前先致电poll
,电话也会永久阻塞。实际上是否可以使用STDERR_FILENO
/ STDOUT_FILENO
进行读取以捕获内容,或者由于它们是伪文件描述符,所以这种方式行不通吗?