9.100 EXECUTE_COMMAND_LINE — Выполнить командную строку оболочки
- Описание:
-
EXECUTE_COMMAND_LINEвыполняет команду оболочки синхронно или асинхронно.Аргумент
COMMANDпередается оболочке и выполняется с помощью вызоваsystemбиблиотеки C. (Оболочка —shна системах Unix иcmd.exeна Windows.) ЕслиWAITприсутствует и имеет значение false, выполнение команды является асинхронным, если система его поддерживает; в противном случае команда выполняется синхронно.Три последних аргумента позволяют пользователю получить информацию о статусе. После синхронного выполнения
EXITSTATсодержит целочисленный код завершения команды, как возвращаемыйsystem.CMDSTATустанавливается в ноль, если командная строка была выполнена (каким бы ни был её код завершения).CMDMSGполучает сообщение об ошибке, если произошла ошибка.Обратите внимание, что функция
systemне обязательно должна быть потокобезопасной. Пользователь отвечает за обеспечение того, чтобыsystemне вызывалась одновременно. - Стандарт:
-
Fortran 2008 и более поздние версии
- Класс:
-
Подпрограмма
- Синтаксис:
-
CALL EXECUTE_COMMAND_LINE(COMMAND [, WAIT, EXITSTAT, CMDSTAT, CMDMSG ]) - Аргументы:
-
COMMAND Должен быть скаляр типа CHARACTERпо умолчанию.WAIT (Необязательно) Должен быть скаляр типа LOGICALпо умолчанию.EXITSTAT (Необязательно) Должен быть INTEGERстандартного типа.CMDSTAT (Необязательно) Должен быть INTEGERстандартного типа.CMDMSG (Необязательно) Должен быть скаляр типа CHARACTERстандартного типа. - Пример:
-
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 - Примечание:
-
Поскольку этот встроенный модуль реализован через вызов функции
system, его поведение относительно сигнализации зависит от процессора. В частности, на системах, совместимых с POSIX, сигналы SIGINT и SIGQUIT будут игнорироваться, а SIGCHLD — блокироваться. Вследствие этого, если родительский процесс завершается, дочерний процесс может не завершиться вместе с ним. - См. также:
Далее: EXIT, Предыдущее: EVENT_QUERY, Вверх: Встроенные процедуры [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gfortran/EXECUTE_005fCOMMAND_005fLINE.html