在linux下的c++编程中,有三种打印流,stdin,stdout,stderr

void print_usage(FILE* stream,int exit_code)
{
    fprintf(stream,"Usage: %s options",program_name);
    fprintf(stream," -h   --help     show help information\n"
           " -v --version show version information\n"
           " -o --output show output filename\n
"); exit(exit_code); }

经常在linux命令中能看到类似于program > output_file.txt 2>&1,

2代表stderr文件流,1代表stdout文件流,0代表stdin文件流,意思是标准错误流要合并到标准输出流中输出.

stdout文件流有缓冲,只有在缓冲区满或者程序结束的时候才会输出到标准输出,因此可以通过fflush(stdout)来打印标准输出.相反stderr没有缓冲,信息会直接输出到终端.

 

 

在shell中,一般0返回值代表执行命令正确,非零代表出错,可以用$?查看命令执行的结果.

posted on 2014-02-11 16:29  lss1990  阅读(1971)  评论(0编辑  收藏  举报