Spec-Zone.ru › Haskell 7

System.Process.Internals

Авторские права (c) Университет Глазго 2004
Лицензия BSD-стиль (см. файл libraries/base/LICENSE)
Поддерживающий libraries@haskell.org
Устойчивость экспериментальная
Переносимость переносимый
Безопасный Haskell Достоверный
Язык Haskell2010

Описание

Примечание: Этот модуль экспортирует внутренние детали реализации, которые могут измениться в любое время. Если вам нужна более стабильная API, используйте System.Process вместо этого.

тип ProcessHandle Источник

Конструкторы

ProcessHandle !(MVar ProcessHandle__) !Bool

тип ProcessHandle__ Источник

Дескриптор процесса, который может быть использован для ожидания завершения процесса с использованием waitForProcess.

Ни одна из функций создания процессов в этой библиотеке не ожидает завершения: они все возвращают ProcessHandle, которое может быть использовано для ожидания процесса позже.

Конструкторы

OpenHandle PHANDLE
ClosedHandle ExitCode

тип PHANDLE = CPid Источник

closePHANDLE :: PHANDLE -> IO () Источник

mkProcessHandle :: PHANDLE -> Bool -> IO ProcessHandle Источник

modifyProcessHandle :: ProcessHandle -> (ProcessHandle__ -> IO (ProcessHandle__, a)) -> IO a Источник

withProcessHandle :: ProcessHandle -> (ProcessHandle__ -> IO a) -> IO a Источник

тип CreateProcess Источник

Конструкторы

CreateProcess

Поля

cmdspec :: CmdSpec

Исполняемый файл и аргументы или команда оболочки

cwd :: Maybe FilePath

Необязательный путь к рабочей директории для нового процесса

env :: Maybe [(String, String)]

Необязательная среда (иначе наследуется от текущего процесса)

std_in :: StdStream

Как определить stdin

std_out :: StdStream

Как определить stdout

std_err :: StdStream

Как определить stderr

close_fds :: Bool

Закрыть все дескрипторы файлов, кроме stdin, stdout и stderr в новом процессе (в Windows работает только если std_in, std_out и std_err все Inherit)

create_group :: Bool

Создать новую группу процессов

delegate_ctlc :: Bool

Делегировать обработку Ctrl+C. Используйте это для интерактивных процессов консоли, чтобы они сами обрабатывали Ctrl+C (подробнее см. ниже).

В Windows это не оказывает никакого влияния.

С версии: 1.2.0.0

тип CmdSpec Источник

Конструкторы

ShellCommand String

Команда для выполнения с использованием оболочки

RawCommand FilePath [String]

Имя исполняемого файла со списком аргументов

Аргумент FilePath задаёт имя исполняемого файла и интерпретируется в соответствии со стандартной политикой платформы поиска исполняемых файлов. В частности:

  • в системах Unix используется семантика execvp(3), где если имя файла исполняемого файла не содержит слеша (/), то проверяется переменная среды PATH для поиска исполняемого файла.
  • в системах Windows используется семантика Win32 CreateProcess. Вкратце: если имя файла не содержит пути, то сначала проверяется каталог, содержащий родительский исполняемый файл, затем текущий каталог, затем стандартные расположения, и, наконец, текущий PATH. Если имя файла не имеет расширения, добавляется расширение .exe. Полные подробности см. в документации на API Windows SearchPath.

Примеры

IsString CmdSpec

построить ShellCommand из строковой константы

С версии: 1.2.1.0

тип StdStream Источник

Конструкторы

Inherit

Наследовать дескриптор от родительского процесса

UseHandle Handle

Использовать предоставленный дескриптор

CreatePipe

Создать новую трубу. Возвращённый Handle будет использовать кодировку по умолчанию и режим перевода новой строки (точно так же, как Handle, созданные openFile).

createProcess_ Источник

Аргументы

:: String

Имя функции (для сообщений об ошибках)

-> CreateProcess
-> IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)

Эта функция почти идентична createProcess. Единственные отличия:

  • Handles предоставленные через UseHandle не закрываются автоматически.
  • Эта функция принимает дополнительный String аргумент, который используется для создания сообщений об ошибках.

Эта функция доступна в модуле System.Process.Internals некоторое время и является частью модуля System.Process с версии 1.2.1.0.

С версии: 1.2.1.0

runGenProcess_ Исходный код

Аргументы

:: String

имя функции (для сообщений об ошибках)

-> CreateProcess
-> Maybe CLong

обработчик SIGINT

-> Maybe CLong

обработчик SIGQUIT

-> IO (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle)

Устаревшее: Пожалуйста, больше не используйте это, используйте обычный createProcess. Если вам нужна обработка SIGINT, используйте delegate_ctlc = True (runGenProcess_ теперь просто несовершенно эмулируемый заглушка, которая, вероятно, дублирует или переопределяет вашу собственную обработку сигналов).

startDelegateControlC :: IO () Исходный код

endDelegateControlC :: ExitCode -> IO () Исходный код

stopDelegateControlC :: IO () Исходный код

pPrPr_disableITimers :: IO () Исходный код

c_execvpe :: CString -> Ptr CString -> Ptr CString -> IO CInt Исходный код

ignoreSignal :: CLong Исходный код

defaultSignal :: CLong Исходный код

withFilePathException :: FilePath -> IO a -> IO a Исходный код

withCEnvironment :: [(String, String)] -> (Ptr CString -> IO a) -> IO a Исходный код

translate :: String -> String Исходный код

fdToHandle :: FD -> IO Handle Исходный код

Преобразование существующего дескриптора файла в Handle. Это используется различными внешними библиотеками для создания Handle.

Создает двоичный Handle. Это по историческим причинам; возможно, это должен быть текстовый Handle с кодировкой по умолчанию и переводом новой строки.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/process-1.2.3.0/System-Process-Internals.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API