【问题标题】:How can I print to stderr in C without using printf or puts or any function from their families?如何在不使用 printf 或 puts 或它们家族中的任何函数的情况下在 C 中打印到 stderr?
【发布时间】:2023-02-16 14:51:47
【问题描述】:

是否有一个 C 函数可以在不使用 printf 或 puts 或它们家族中的任何函数的情况下打印到 stderr?

【问题讨论】:

    标签: c


    【解决方案1】:

    不,因为 stderrstdoutstdin 是特定于 C 的东西。

    但是,这些是基于 UNIX 标准错误、输出和输入文件描述符建模的。因此,如果您使用的是 Linux 或 macOS 等系统,则可以使用 write 系统调用来写入 STDERR_FILENOSTDOUT_FILENO

    Windows当然有类似的东西。

    【讨论】:

      【解决方案2】:

      使用 write 系统调用:

      #include <unistd.h>
      
      int main(int argc, char *argv[]) {
         char buf[] = "Hello, world!
      ";
         write(2, buf, sizeof(buf));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-02
        • 2015-06-25
        • 1970-01-01
        • 2021-12-09
        • 2014-08-13
        • 2016-12-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多