Using a hashmap like
std::unordered_map<std::string, std::function<int(char** argv, int argc, std::string fileName)> fn>
is a lot more performant than comparing strings with strcmp in a giant if-else-block.
Or a more simple solution
enum Functions { Open, Close, Write \* ... *\ };
std::unordered_map<std::string, Function> function_map;