【发布时间】:2023-02-16 14:51:47
【问题描述】:
是否有一个 C 函数可以在不使用 printf 或 puts 或它们家族中的任何函数的情况下打印到 stderr?
【问题讨论】:
标签: c
是否有一个 C 函数可以在不使用 printf 或 puts 或它们家族中的任何函数的情况下打印到 stderr?
【问题讨论】:
标签: c
不,因为 stderr、stdout 和 stdin 是特定于 C 的东西。
但是,这些是基于 UNIX 标准错误、输出和输入文件描述符建模的。因此,如果您使用的是 Linux 或 macOS 等系统,则可以使用 write 系统调用来写入 STDERR_FILENO 和 STDOUT_FILENO。
Windows当然有类似的东西。
【讨论】:
使用 write 系统调用:
#include <unistd.h>
int main(int argc, char *argv[]) {
char buf[] = "Hello, world!
";
write(2, buf, sizeof(buf));
}
【讨论】: