EXECUTE_COMMAND_LINE— Execute a shell command
EXECUTE_COMMAND_LINEruns a shell command, synchronously or asynchronously.
COMMAND argument is passed to the shell and executed, using
the C library's
system call. (The shell is
sh on Unix
cmd.exe on Windows.) If
WAIT is present
and has the value false, the execution of the command is asynchronous
if the system supports it; otherwise, the command is executed
The three last arguments allow the user to get status information. After
EXITSTAT contains the integer exit code of
the command, as returned by
CMDSTAT is set to zero
if the command line was executed (whatever its exit status was).
CMDMSG is assigned an error message if an error has occurred.
Note that the
system function need not be thread-safe. It is
the responsibility of the user to ensure that
system is not
CALL EXECUTE_COMMAND_LINE(COMMAND [, WAIT, EXITSTAT, CMDSTAT, CMDMSG ])
|COMMAND||Shall be a default |
|WAIT||(Optional) Shall be a default |
|EXITSTAT||(Optional) Shall be an |
|CMDSTAT||(Optional) Shall be an |
|CMDMSG||(Optional) Shall be an |
program test_exec integer :: i call execute_command_line ("external_prog.exe", exitstat=i) print *, "Exit status of external_prog.exe was ", i call execute_command_line ("reindex_files.exe", wait=.false.) print *, "Now reindexing files in the background" end program test_exec
systemfunction call, its behavior with respect to signaling is processor dependent. In particular, on POSIX-compliant systems, the SIGINT and SIGQUIT signals will be ignored, and the SIGCHLD will be blocked. As such, if the parent process is terminated, the child process might not be terminated alongside.