C++でexecvするとき、argvの型がchar* ()[]なので、
std::string::c_strが渡せなかったりします。
ここはconst_castの出番として妥当でしょうか?

妥当でないとしたら、文字列リテラルもそのままではなくて、
char配列を確保して渡すべしですか?