linux c++的输出

在 c++ 的标准库中,默认定义了4个IO对象,其中 cin 为 istream 类型,cout/ cerr/ clog 为 ostream。而在linux中存在3种文件描述符,分别为 0对应cin,1对应cout,2对应cerr和clog。这两个系统的关系。

实现,我们编写一个c++代码:

// main.cpp
#include 
using namespace std;
int main(){
    cout << "This is cout" << endl;
    cerr << "This is cerr" << endl;
    clog << "This is clog" << endl;
    return 0;
}

编译后生成 a.out 文件。

  • 将cout重定向到test.txt文件中

执行如下命令:

$ ./a.out > test.txt
This is cerr
This is clog
$ cat test.txt
This is cout

可以看出使用 > 只是将 cout 的输出重定向到指定文件,其效果类似于 1>

$ ./a.out 1> test.txt
This is cerr
This is clog
$ cat test.txt
This is cout
  • 将cerr和clog重定向到test.txt文件中
$ ./a.out 2> test.txt
This is cout
$ Mon06 cat test.txt
This is cerr
This is clog
  • 将cout输出到test.txt文件中,并将cerr/clog重定向到cout
$ ./a.out 1> test.txt 2>&1
$ cat test.txt 
This is cout
This is cerr
This is clog

你可能感兴趣的:(linux c++的输出)