Tag: 标准输出

如何使用stdout选择?

我有以下代码 fd_set set; struct timeval timeout; printf(“first printf\n”); // displayed FD_ZERO(&set); timeout.tv_sec = 1; FD_SET(fileno(stdout), &set); if (select(FD_SETSIZE, NULL, &set, NULL, &timeout)!=1) { stdout_closed = true; return; } printf(“second printf\n”); // Not displayed 我试图在printf(“second printf\n”);之前检查写入stdout的能力printf(“second printf\n”); 。 但是使用此代码,select返回一个值!= 1然后printf保持不可缓存。 看起来像选择返回“ 不可能 ”写入标准输出。 你能解释一下这种行为吗?

将stdout捕获到字符串并将其输出回C中的stdout

使用C语言。 我有一个写入stdout的函数。 我想捕获该输出,稍微修改它(替换一些字符串)。 然后再将它输出到标准输出。 所以我想从: char huge_string_buf[MASSIVE_SIZE]; freopen(“NUL”, “a”, stdout); -OR- freopen(“/dev/null”, “a”, stdout); setbuf(stdout, huge_string_buffer); /* modify huge_string_buffer */ 现在的问题是,如何将huge_string_buffer输出回原始标准输出?

写入stdout和文件

我有一个父进程,它要求子进程执行execv()。 我需要execv()给出的输出到stdout以显示在屏幕上,同样也复制到日志文件。 如何在不使用管道或T恤的情况下将相同的输出写入stdout和文件?

我怎么能临时将stdout重定向到C程序中的文件?

在我的C程序中,我想暂时将STDOUT重定向到“/ dev / null”(例如)。 然后写入“/ dev / null”之后我想恢复STDOUT。 我该如何管理?