In an information security lab I\'m working on, I\'ve been tasked with executing multiple commands with a single call to \"system()\" (written in C, running on Fedora). Wha
One possibility comes immediately to mind. You could write all the commands to a script then run it with:
system ("cmd.exe /c \"x.cmd\"");
or, now that I've noticed you're running on Fedora:
system ("x.sh");
Use && between your commands. It has the advantage that it only continues executing commands as long as they return successful error codes. Example:
"cd /proc && cat cpuinfo"
That depends on the shell being invoked to execute the commands, but in general most shells use ;
to separate commands so something like this should work:
command1; command2; command3
[EDIT]
As @dicroce mentioned, you can use &&
instead of ;
which will stop execution at the first command that returns a non-zero value. This may or may not be desired (and some commands may return non-zero on success) but if you are trying to handle commands that can fail you should probably not string multiple commands together in a system() call as you don't have any way of determining where the failure occured. In this case your best bet would either be to execute one command at a time or create a shell script that performs the appropriate error handling and call that instead.