The two earlier answers are OK, as far as they go.
Yes, if you just want to run the command and don't care about the output, just use system().
You can execute a command directly using one of the exec functions (execl(), execv(), etc.), but you need to deal with a lot of stuff yourself (like forking a child process), so that's probably not what you want.
You mentioned popen(). You can use popen() if you want to be able to read the stdout of the program you run. So, for example, if you do:
f = popen("ls -l", "r");
while (!eof(f)) {
count = fread (buffer, sizeof buffer, 1, f);
// process output of ls
}
pclose(f);
you'll be able to read the data written by the command.
Similarly, if you want to run a command and write data to its stdin, you can use popen("...command...", "w"). popen(...,"r+") will let you read *and* write to the command.
And remember, always use pclose() to close a stream created by popen(). Don't use fclose(). fclose() won't clean up everything.
Hope this helps.