有沒有人知道如何將stderr重定向到一個沒有緩衝的文件?如果可能的話,你可以向我展示一個簡單的Linux代碼(Centos 6)的C++語言代碼..?!如何將stderr重定向到沒有任何緩衝區的文件?
0
A
回答
4
在C
#include <stdio.h>
int
main(int argc, char* argv[]) {
freopen("file.txt", "w", stderr);
fprintf(stderr, "output to file\n");
return 0;
}
在C++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int
main(int argc, char* argv[]) {
ofstream ofs("file.txt");
streambuf* oldrdbuf = cerr.rdbuf(ofs.rdbuf());
cerr << "output to file" << endl;
cout.rdbuf(oldrdbuf);
return 0;
}
0
另一種方式做,這是一個具有以下dup2()
呼叫
#include <iostream>
#include <stdexcept>
#include <stdio.h>
#include <unistd.h>
using std::cerr;
using std::endl;
int main() {
auto file_ptr = fopen("out.txt", "w");
if (!file_ptr) {
throw std::runtime_error{"Unable to open file"};
}
dup2(fileno(file_ptr), fileno(stderr));
cerr << "Write to stderr" << endl;
fclose(file_ptr);
}
+0
最後它會將你的信息寫入文件,對吧? –
+0
FirdavsbekNarzullaev是的 – Curious
相關問題
- 1. 如何將彈性緩衝區重定向到我的緩衝區
- 2. 有沒有辦法將stderr重定向到Jupyter中的文件?
- 3. stderr文件;但沒有緩衝
- 4. 如何將Java FloatBuffer(或任何緩衝區)保存到文件
- 5. 如何將ostream對象重定向到臨時緩衝區?
- 6. 將stdout C文件流重定向到緩衝區
- 7. 如何將RUNTIME ERRORS重定向到STDERR?
- 8. 無法將stderr重定向到文件
- 9. 如何將stderr重定向到整個管道的文件?
- 10. Python - 如何將stderr重定向到文件?
- 11. 如何將stderr重定向到Ant中的stderr或stdout?
- 12. 如何將stdout和stderr重定向到文件AND仍只輸出stderr?
- 13. stderr沒有被重定向到Solaris shellcript中的文件
- 14. 將恐慌重定向到指定的緩衝區
- 15. 將STDERR重定向到文件鎖定文件
- 16. 如何到stderr重定向到一個文件中cron作業
- 17. 如何「重置」緩衝區?
- 18. 將cout重定向到使用winapi創建的新緩衝區
- 19. 將文件加載/流式傳輸到緩衝區/緩衝區
- 20. EMACS緩衝區等於文件時如何重置緩衝區修改標誌
- 21. Perl:將STDERR重定向到文件而不創建空文件?
- 22. 如何將串行控制檯(例如/ dev/ttyS0)的輸出重定向到緩衝區或文件
- 23. stderr重定向到一個任意文件
- 24. 如何將行緩衝數據從文件重定向到程序而不是塊緩衝數據
- 25. 如何將程序的stdout和stderr重定向到一個文件,並將同一個stderr重定向到另一個文件?
- 26. 如何將STDOUT和STDERR重定向到Perl中的日誌文件?
- 27. WriteFileGather - 將緩衝區追加到文件
- 28. 將nohup的stderr重定向到nohup.out
- 29. 如何將stderr/stdout重定向到我在C++中的日誌?
- 30. 如何將stdout和stderr重定向到Python中的記錄器
'stderr'默認情況下不進行緩衝。 – Barmar
SO不是免費的編碼服務。你必須嘗試自己解決問題。如果無法正常工作,請發佈您嘗試的內容,我們會幫助您解決問題。 – Barmar
我不確定,你想要的和命令行中的'2> stderr_file.txt'是一樣的嗎? 也許你需要在構建它之後通過linux腳本調用你的C++程序,或者甚至在你的調用之後創建和運行你的程序並添加'2>'的腳本。 –