进程可以读取自己的stdout / stderr吗?

时间:2019-12-03 15:48:36

标签: c macos file-descriptor

我想从Objective-C捕获NSLog的输出并将内容放在文本视图中。为此,我创建了一个在pollSTDERR_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进行读取以捕获内容,或者由于它们是伪文件描述符,所以这种方式行不通吗?

0 个答案:

没有答案
相关问题