How can I invoke another program (a standalone executable, or an operating system command) from within a C program?

Q

How can I invoke another program (a standalone executable, or an operating system command) from within a C program?

✍: Guest

A

Use the library function system, which does exactly that.
Some systems also provide a family of spawn routines which accomplish approximately the same thing. system is more ``portable'' in that it is required under the ANSI C Standard, although the interpretation of the command string--its syntax and the set of commands accepted--will obviously vary tremendously.
The system function ``calls'' a command in the manner of a subroutine, and control eventually returns to the calling program. If you want to overlay the calling program with another program (that is, a ``chain'' operation) you'll need a system-specific routine, such as the exec family on Unix.
Note that system's return value is at best the command's exit status (although even that is not guaranteed), and usually has nothing to do with the output of the command. .

2015-03-18, 1184👍, 0💬