mini2440串口测试程序中stdout和stderr不懂,求大侠讲解下。。。

2019-07-16 09:12发布

主要是这两段程序不懂,那个stdout和stderr不懂。。
void OutputStdChar(FILE *File) {//向设备写数据,打开一个串口,声明并且定义该函数
            char Buffer[10];
            int Len = sprintf(Buffer, OutputHex ? "%.2X  " : "%c", Char);//将char中数据写到buff中
            fwrite(Buffer, 1, Len, File);//将 buffer 中的数据写入到file中去,写入的 len个字符数
                                                                        }


if (FD_ISSET(CommFd, &ReadSetFD)) {//判断串口是否可读
            while (read(CommFd, &Char, 1) == 1) {//从串口中读取一个值

                WaitFdWriteable(TtyFd);//等待终端可写
                if (write(TtyFd, &Char, 1) < 0) {
                      Error(strerror(errno));
                                                                                }
                if (OutputToStdout) {
                    if (UseColor)
                        fwrite("x1b[01;34m", 1, 8, stdout);
                    OutputStdChar(stdout);//向设备写数据,stdout标准输出,默认是终端
                    if (UseColor)
                        fwrite("x1b[00m", 1, 8, stdout);
                    fflush(stdout);
                }
            }
        }

        if (FD_ISSET(TtyFd, &ReadSetFD)) {//判断终端是否可读
            while (read(TtyFd, &Char, 1) == 1) {
                       static int EscKeyCount = 0;
                WaitFdWriteable(CommFd);
                       if (write(CommFd, &Char, 1) < 0) {
                      Error(strerror(errno));
                }
                if (OutputToStdout) {
                    if (UseColor)
                        fwrite("x1b[01;31m", 1, 8, stderr);//标准输出(设备)文件,对应终端的屏幕
                    OutputStdChar(stderr);//???
                    if (UseColor)
                        fwrite("x1b[00m", 1, 8, stderr);
                    fflush(stderr);
                }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。