在Linux中,stdin,stdout,stderr意味着打开文件描述符?

错误制作者

我对linux系统的stdio有一些疑问。我知道fd 0,fd 1,fd 2分别引用stdin,stdout,stderr。stdin,stdout,stderr是否意味着打开文件描述符?

如果我像2>&1这样重定向它,文件描述符和打开的文件描述符之间的关系会怎样?

本征菲尔德

这是一个小型C程序fd.c,它使用stdout并将stderr消息打印到控制台。

#include <stdio.h>

int main(int argc, char*argv[])
{
    fprintf(stdout,"message for stdout\n");
    /* fflush(stdout); */
    fprintf(stderr,"message for stderr\n");
    /* fflush(stderr); */

    return 0;
}

编译: gcc -o fd fd.c

打开一个终端并测试运行:

./fd
./fd > /tmp/output.log
./fd > /tmp/stdout.log 2>/tmp/stderr.log
./fd > /tmp/all.log 2>&1

检查每个输出文件。如果它们顺序混乱,请取消注释该fflush语句。

他们之间的关系没有任何变化,它们保持了以前的状态。0,1,2默认情况下描述符始终处于打开状态。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AIX(unix)中stdin,stdout,stderr文件描述符的位置在哪里

来自分类Dev

linux文件描述符0 1 2是否不适用于stdin,stdout和stderr?

来自分类Dev

lseek()对目录文件描述符意味着什么?

来自分类Dev

使用dd的/ dev / stdin中的“错误文件描述符”

来自分类Dev

使用dd的/ dev / stdin中的“错误文件描述符”

来自分类Dev

Linux实现打开文件描述符C

来自分类Dev

如何获取除stdin stdout和stderr之外的文件描述符(执行$ program 1> file_1 3> file_2之类的操作)?

来自分类Dev

获取OS X中打开的文件(描述符)列表

来自分类Dev

获取OS X中打开的文件(描述符)列表

来自分类Dev

Bash脚本-stdout文件描述符?

来自分类Dev

打开变量指定的文件描述符

来自分类Dev

“文件描述符”中“描述符”的词源

来自分类Dev

在Linux上的C中从PID打印文件描述符

来自分类Dev

为什么bash在Sublime或TextEdit中打开文件时不打开文件描述符,而在BBEdit中打开文件时却不打开文件描述符?

来自分类Dev

如果您已经在使用stdout-stdin,可以以某种方式使用更高的文件描述符吗?

来自分类Dev

fread中的错误文件描述符

来自分类Dev

从文件中获取描述符

来自分类Dev

在O(1)打开文件描述符中的scala / java中迭代文件

来自分类Dev

使用/ dev / stdin的陈旧文件描述符

来自分类Dev

使用/ dev / stdin的陈旧文件描述符

来自分类Dev

如何在我当前的bash会话中列出打开的文件描述符(及其引用的文件)

来自分类Dev

递归函数后错误的文件描述符在C中打开文件

来自分类Dev

文件描述符(fd从C中打开)是否与其进程ID相同?

来自分类Dev

文件描述符(fd从C中打开)是否与其进程ID相同?

来自分类Dev

为什么会出现错误24:也可能在asm中打开文件描述符

来自分类Dev

使用Golang从Amazon-SQS队列中读取-打开文件描述符

来自分类Dev

增加Snow Leopard中打开文件描述符的最大数量?

来自分类Dev

C文件描述符在打开时返回-1

来自分类Dev

日志记录模块:打开文件描述符过多

Related 相关文章

  1. 1

    AIX(unix)中stdin,stdout,stderr文件描述符的位置在哪里

  2. 2

    linux文件描述符0 1 2是否不适用于stdin,stdout和stderr?

  3. 3

    lseek()对目录文件描述符意味着什么?

  4. 4

    使用dd的/ dev / stdin中的“错误文件描述符”

  5. 5

    使用dd的/ dev / stdin中的“错误文件描述符”

  6. 6

    Linux实现打开文件描述符C

  7. 7

    如何获取除stdin stdout和stderr之外的文件描述符(执行$ program 1> file_1 3> file_2之类的操作)?

  8. 8

    获取OS X中打开的文件(描述符)列表

  9. 9

    获取OS X中打开的文件(描述符)列表

  10. 10

    Bash脚本-stdout文件描述符?

  11. 11

    打开变量指定的文件描述符

  12. 12

    “文件描述符”中“描述符”的词源

  13. 13

    在Linux上的C中从PID打印文件描述符

  14. 14

    为什么bash在Sublime或TextEdit中打开文件时不打开文件描述符,而在BBEdit中打开文件时却不打开文件描述符?

  15. 15

    如果您已经在使用stdout-stdin,可以以某种方式使用更高的文件描述符吗?

  16. 16

    fread中的错误文件描述符

  17. 17

    从文件中获取描述符

  18. 18

    在O(1)打开文件描述符中的scala / java中迭代文件

  19. 19

    使用/ dev / stdin的陈旧文件描述符

  20. 20

    使用/ dev / stdin的陈旧文件描述符

  21. 21

    如何在我当前的bash会话中列出打开的文件描述符(及其引用的文件)

  22. 22

    递归函数后错误的文件描述符在C中打开文件

  23. 23

    文件描述符(fd从C中打开)是否与其进程ID相同?

  24. 24

    文件描述符(fd从C中打开)是否与其进程ID相同?

  25. 25

    为什么会出现错误24:也可能在asm中打开文件描述符

  26. 26

    使用Golang从Amazon-SQS队列中读取-打开文件描述符

  27. 27

    增加Snow Leopard中打开文件描述符的最大数量?

  28. 28

    C文件描述符在打开时返回-1

  29. 29

    日志记录模块:打开文件描述符过多

热门标签

归档