Я хочу создать двоичный файл в /dev/shm/uploaded
, открыть файл в двоичном режиме и записать в него данные.
std::string string_path = "/dev/shm/uploaded/";
std::string filename = "download_file.out";
std::string tmpStr = "The quick brown fox jumps over the lazy dog";
createFile(string_path, filename);
bool createFile(std::string &string_path, std::string &filename) {
std::string command_string = "mkdir -p ";
command_string.append(string_path);
std::cout << command_string << std::endl;
int check = system(command_string.c_str());
if(-1 == check) {
return false;
}
std::ofstream outfile(string_path + filename, std::ios::binary | std::ios::out);
if(outfile.is_open()) {
for (int i = 0; i < 100000; i++) {
outfile << tmpStr;
}
}
outfile.close();
return true;
}
Я подозреваю, что с помощью оператора <<
я записываю данные втекстовый режим, а не в двоичном режиме. Я хочу записать данные в двоичном режиме.
Я смотрел на двоичное чтение и запись
Он имеет следующую функцию
template<>
std::ostream& binary_write_string(std::ofstream& stream, const std::string& value){
return stream->write(value.c_str(), value.length());
}
В этой функции что означает шаблонная функция без typename
или class
? Это правильный подход.