<prompt> Tengeneza programu ya C inayosoma faili kubwa ya maandishi na kuhesabu matukio ya kila neno. Programu inapaswa kutumia usomaji mwingi ili kusawazisha mchakato wa kusoma na kuhesabu, na kuhifadhi hesabu za maneno katika hifadhidata ya MySQL. Programu inapaswa kukubali hoja za mstari wa amri kwa njia ya faili ya maandishi na maelezo ya muunganisho wa MySQL.PLINFORMAT  <response>: pamoja na pamoja na pamoja na pamoja na jumuisha pamoja na pamoja na pamoja na jumuisha std::mutex mtx;void process_lineconst std::string line, std::unordered_map word_count std::istringstream issline; std::neno la mfuatano; wakati ni neno mtx.lock; hesabu_ya_nenoneno; mtx.unlock; store_word_counts_to_db batiliconst std::unordered_map word_count, const std::string host, const std::string user, const std::string password, const std::string database MYSQL conn mysql_initnullptr; ikiwa !mysql_real_connectconn, host.c_str, user.c_str, password.c_str, database.c_str, 0, nullptr, 0 std::cerr Hitilafu: Haiwezi kuunganisha kwa MySQL: mysql_errorconn std::endl; kurudi; kwa const auto entry : word_count std::string query INGIZA KATIKA hesabu_ya_maneno neno, hesabu THAMANI entry.first , std::to_stringentry.second KWENYE DUPLICATE KEY UPDATE count count std::to_stringentry.second ;; ikiwa mysql_queryconn, query.c_str std::cerr Hitilafu: Imeshindwa kuingizakusasisha rekodi: mysql_errorconn std::endl; mysql_closeconn;int mainint argc, char argv ikiwa argc ! 6 std::cerr Matumizi: argv0 std::endl; kurudi 1; std::string text_file argv1; std::string db_host argv2; std::string db_user argv3; std::string db_password argv4; std::string db_name argv5; std:: ifstream faili text_file; ikiwa !faili.is_open std::cerr Hitilafu: Haiwezi kufungua faili ya maandishi. std::endl; kurudi 1; std::unordered_map word_count; unsigned int num_threads std::thread::hardware_concurrency; std::vector nyuzinum_threads; kwa otomatiki t : nyuzi t std:: thread std:: mstari wa kamba; wakati kweli mtx.lock; ikiwa !std::getlinefaili, mstari mtx.unlock; mapumziko; mtx.unlock; process_lineline, neno_count; ; kwa otomatiki t : nyuzi t.jiunge; store_word_counts_to_dbword_count, db_host, db_user, db_password, db_name; kurudi 0; 