Copyright (C) 2000-2012 |
GNU Info (libc.info)Running a CommandRunning a Command ================= The easy way to run another program is to use the `system' function. This function does all the work of running a subprogram, but it doesn't give you much control over the details: you have to wait until the subprogram terminates before you can do anything else. - Function: int system (const char *COMMAND) This function executes COMMAND as a shell command. In the GNU C library, it always uses the default shell `sh' to run the command. In particular, it searches the directories in `PATH' to find programs to execute. The return value is `-1' if it wasn't possible to create the shell process, and otherwise is the status of the shell process. Note: Process Completion, for details on how this status code can be interpreted. If the COMMAND argument is a null pointer, a return value of zero indicates that no command processor is available. This function is a cancellation point in multi-threaded programs. This is a problem if the thread allocates some resources (like memory, file descriptors, semaphores or whatever) at the time `system' is called. If the thread gets canceled these resources stay allocated until the program ends. To avoid this calls to `system' should be protected using cancellation handlers. The `system' function is declared in the header file `stdlib.h'. *Portability Note:* Some C implementations may not have any notion of a command processor that can execute other programs. You can determine whether a command processor exists by executing `system (NULL)'; if the return value is nonzero, a command processor is available. The `popen' and `pclose' functions (Note: Pipe to a Subprocess) are closely related to the `system' function. They allow the parent process to communicate with the standard input and output channels of the command being executed. automatically generated by info2www version 1.2.2.9 |