读书人

不明白stdin、stdout和stderr是什么!

发布时间: 2012-02-29 16:44:11 作者: rapoo

不明白stdin、stdout和stderr是什么!谁给详细的说说!
不明白stdin、stdout和stderr是什么!谁给详细的说说!
一般情况下,是不是用不到它们?

[解决办法]
stdin是标准输入文件,stdout是标准输出文件,stderr标准出错文件,应用在输出的重新定位上。

http://docs.hp.com/zh_cn/5187-2211/ch03s03.html
[解决办法]
stdout -- 标准输出设备 (printf("..")) 同 stdout。
stderr -- 标准错误输出设备
两者默认向屏幕输出。
但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。
用法:
fprintf(stderr, "Can't open it!\n");
fprintf(stdout, "Can't open it!\n");

stdin -- 标准输入设备.
用法:
char s[80];
fputs(fgets(s,80,stdin);



[解决办法]
楼上两位说的没错
确实,你一般情况下,是用不到的
因为都会有默认设置,,printf,scanf,都是默认在控制台下,也可以转到文件

[解决办法]
要读写, 得知道从哪里读, 往哪里写吧?

这个叫输入输出设备.

stdin, stdout, stderr 是系统预先提供给你的设备.
[解决办法]
每个进程开始。内核为进程打开3个流分别是 0 1 2,
0就是stdin 1就是stdout 2就是strerr
[解决办法]
stdin stdout stderr 就像 FILE *fp一样
0 1 2 UNIX/Linux下的文件描述符 和上面相对应
[解决办法]
C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\STDIO.H

C/C++ code
...struct _iobuf {        char *_ptr;        int   _cnt;        char *_base;        int   _flag;        int   _file;        int   _charbuf;        int   _bufsiz;        char *_tmpfname;        };typedef struct _iobuf FILE;...#define stdin  (&_iob[0])#define stdout (&_iob[1])#define stderr (&_iob[2])...
[解决办法]
没有缓冲 你要打开内存监视 或者看下编译器里关于 stderr的定义 c的好处就是源码你很容易解读 不想c# 封装的面目全非了
[解决办法]
stdin,stdout,stderr都是FILE*类型的变量,定义于stdio.h里面,代表标准输入,标准输出,标准出错。一般和文件描述符0,1,2相关联。
[解决办法]
探讨
翻了半天,没找到stderr的定义,真悲剧

就是找不到stderr定义在哪个头文件里....

[解决办法]
FILE _iob[OPEN_MAX] = { /* stdin, stdout, stderr */
{ 0, (char *) 0, (char *) 0, _READ, 0 },
{ 0, (char *) 0, (char *) 0, _WRITE, 1 },
{ 0, (char *) 0, (char *) 0, _WRITE | _UNBUF, 2 }
};
enum _flags {
_READ = 01, /* file open for reading */
_WRITE = 02, /* file open for writing */
_UNBUF = 04, /* file is unbuffered */
_EOF = 010, /* EOF has occurred on this file */
_ERR = 020 /* error occurred on this file */
};
[解决办法]
stdin是标准输入文件,stdout是标准输出文件,stderr标准出错文件,应用在输出的重新定位上。

http://docs.hp.com/zh_cn/5187-2211/ch03s03.html
[解决办法]
标准输入、标准输出、标准错误输出。
都是一种抽象的说法,默认情况下,它们分别是键盘、命令行窗口、命令行窗口。
之所以需要这种抽象的说法,是因为严格来讲它们不一定是健盘和命令行窗口,只不过默认情况下是。有多种方法可以把它们重定向到别的地方去,比如输出重定向到文本文件、并口、串口等等。

读书人网 >C语言

热点推荐