Добрый день!
Есть:
windows 7
gcc 5.1
c++ 11
asio
websocketpp
grep.
Нужно:
Вызвать команду grep, которой передаются русские буквы по сети с помощью websocketpp (asio).
Подскажите как можно это реализовать.
Пробовал через функцию _wsystem, которой напрямую передавал "grep \"<русские символы>\" <имяфайла>". Так все работает. Но когда конвертирую строку, приходящую из websocketpp и записываю ее в другую, то получается абракадабра.
Конвертирую так:
std::ostringstream cmdStr;
//переменная from_websocketpp имеет тип std::string
cmdStr << "grep \"" << from_websocketpp << "\" filename.txt>grep.txt";
std::string cmdStr_res = cmdStr.str();
size_t newsize = strlen(cmdStr_res.c_str()) + 1;
wchar_t * wcstring = new wchar_t[newsize];
size_t convertedChars = 0;
mbstowcs_s(&convertedChars, wcstring, newsize, cmdStr_res.c_str(), _TRUNCATE);
_wsystem(wcstring);
UPD1
Вот что на выходе в консоли
UPD2
Решил проблему записью, чтением в промежуточный файл с помощью std::ofstream и std::ifstream.
Спасибо за подсказки.