#include #include #include #include #include #include #include namespace fs = std::filesystem; int main(int argc, char* argv[]) { if (argc != 2) { std::cerr << "Usage: " << argv[0] << " \n"; return -1; } for (const auto& e : fs::directory_iterator(argv[1])) { if (!e.is_regular_file()) continue; std::string path = e.path().string(); pid_t pid = fork(); if (pid < 0) { std::cerr << "fork failed\n"; return -1; } if (pid == 0) { std::string path = e.path().string(); std::array args{ path.data(), nullptr }; execvp(args[0], args.data()); std::cerr << "execvp failed: " << path << '\n'; return -1; } int status; if (waitpid(pid, &status, 0) < 0) { std::cerr << "waitpid failed\n"; return -1; } } return 0; }