PDA

View Full Version : cout, cerr and clog in HL


koraX
01-09-2004, 14:57
Does anybody know if Half-life is using these standard streams ? (cout, cerr and clog)

I'm asking because I want to redirect them to files and use them for logging and debuging purposes in my bot.
If HL used them, I could cause mess by redirecting them.

Also If someone is interested in redirecting, heres how it works :

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
clog << "Output to screen" << endl;

ofstream mFile;
streambuf *oldbuf=clog.rdbuf();

mFile.open("filename.log");
if(mFile) {
if(mFile.rdbuf()->pubsetbuf(NULL,4096)==false)
cerr << "error : cannot resize file buffer for clog" << endl;
clog.rdbuf(mFile.rdbuf());
}

clog << "Output to file" << endl;

// ...

clog.flush();
clog.rdbuf(oldbuf);
mFile.close();
clog << "Output back to screen" << endl;
return 0;
}

botman
01-09-2004, 15:25
stdout (and hence cout in C++) is used by the old retail Half-Life dedicated server, but you should still be able to redirect stdout (or cout) to a file.

Steam may or may not use stdout for the server console. I would guess that all of the engine output stuff is now routed to Steam I/O code which would get sent to the Steam GUI instead of the applications standard I/O stream.

botman