在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返回值代表执行命令正确,非零代表出错,可以用$?查看命令执行的结果.