Это создает файл, но ничего не пишет.
std::ofstream outstream;
FILE * outfile;
outfile = fopen("/usr7/cs/test_file.txt", "w");
__gnu_cxx::stdio_filebuf<char> filebuf(outfile, std::ios::out);
outstream.std::ios::rdbuf(&filebuf);
outstream << "some data";
outstream.close();
fclose(outfile);
Я знаю, что есть другие простые решения для получения вывода, но мне нужно использовать этот нестандартный файловый буфер, чтобы заблокировать файл во время редактирования, чтобы другой процесс не мог открыть файл. Я не знаю, почему это не работает.
outstream
? - person 0x499602D2   schedule 06.03.2014std::ostream
и построить его из буфера, как вstd::ostream outstream(&filebuf)
, чтобы вам не пришлось вызыватьopen()
/close()
без всякой причины. Если вы сделаете это, вы также захотите сделатьoutstream.std::ios::rdbuf(&filebuf);
. - person 0x499602D2   schedule 06.03.2014std::ostream
здесь? Еслиstd::ofstream
не открыт, то попытка записи ничего не сработает. - person 0x499602D2   schedule 08.03.2014