The portable method for determining if a command exists in C/C++ is to use the system function to execute the command with the "-v" or "--version" option and check if the return value is zero.
Here is an example code snippet:
#include <cstdlib>
int commandExists(const char* cmd) {
char buf[1024];
snprintf(buf, sizeof(buf), "command -v %s > /dev/null 2>&1", cmd);
return system(buf) == 0;
}
int main() {
const char* cmd = "ls";
if (commandExists(cmd)) {
// Command exists, do something...
} else {
// Command does not exist, handle error...
}
return 0;
}
In this example, the command "ls" is checked for existence by executing the "command -v ls" command and redirecting the output to /dev/null to suppress it. If the return value of system is zero, the command exists.
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2023-06-03 20:29:44 +0000
Seen: 13 times
Last updated: Jun 03 '23
What does an empty name signify in the inotify_event structure in the C++ language?
What is the method to get a printable output of a C++11 time_point?
What are the differences between TREEFROG, CROW, and the CPPCMS C++ framework?
How can the NTP flag be set for Linux time in C++?
What is the process of redefining a c++ macro with fewer parameters?
What are some other options instead of Scipy to compute CubicSpline?
How can a list be sorted alphabetically within a console application?