+ -
当前位置:首页 → 问答吧 → stderr stdin stdout 值

stderr stdin stdout 值

时间:2010-09-16

来源:互联网

本帖最后由 shihyu 于 2010-09-16 07:24 编辑
  1. #include <stdio.h>

  2. int main(int argc, char *argv[])
  3. {
  4.         printf("%d\n",stderr);
  5.         printf("%d\n",stdin);
  6.         printf("%d\n",stdout);
  7.        
  8.         return 0;
  9. }
复制代码
-1216576160
-1216576480
-1216576320

打印出來 stderr  stdin  stdout 值是怎麼出來嗎?  不是 0  1  2 ?


謝謝

作者: shihyu   发布时间: 2010-09-16

回复 shihyu


    打印出来的应该是指针的值吧, stderr stdin stdout 都是文件指针类型吧,0 1 2 好像是系统分配的号,具体叫什么号记不太清了。

作者: sdupoplar   发布时间: 2010-09-16

这些是文件指针,在LINUX下,是对文件描述符(你说的0,1,2那些)的包装.

作者: liwangli1983   发布时间: 2010-09-16

0 1 2 常在shell里面用  那叫文件描述符

作者: 论坛ID   发布时间: 2010-09-16

  1. #include <stdio.h>

  2. int main(int argc, char *argv[])
  3. {
  4.         printf("%d\n",fileno(stderr));
  5.         printf("%d\n",fileno(stdin));
  6.         printf("%d\n",fileno(stdout));

  7.         return 0;
  8. }
复制代码
输出
2
0
1

作者: hellioncu   发布时间: 2010-09-16

printf("%d", stdin->_fileno);

嘿嘿。

作者: linyunxian   发布时间: 2010-09-16