Next: io.environment, Previous: io, Up: Top [Contents]
%--------------------------------------------------% % vim: ft=mercury ts=4 sw=4 et %--------------------------------------------------% % Copyright (C) 1993-2012 The University of Melbourne. % Copyright (C) 2013-2024 The Mercury team. % This file is distributed under the terms specified in COPYING.LIB. %--------------------------------------------------% % % File: io.call_system.m. % % This module provides predicates to invoke commands via the shell % of the underlying operating system. % %--------------------------------------------------% %--------------------------------------------------% :- module io.call_system. :- interface. % Invokes the operating system shell with the specified Command. % Result is either `ok(ExitStatus)', if it was possible to invoke % the command, or `error(ErrorCode)' if not. The ExitStatus will be 0 % if the command completed successfully or the return value of the system % call. If a signal kills the system call, then Result will be an error % indicating which signal occurred. % :- pred call_system(string::in, io.res(int)::out, io::di, io::uo) is det. % call_system_return_signal(Command, Result, !IO): % % Invokes the operating system shell with the specified Command. % Result is either `ok(ExitStatus)' if it was possible to invoke % the command or `error(Error)' if the command could not be executed. % If the command could be executed then ExitStatus is either % `exited(ExitCode)' if the command ran to completion or % `signalled(SignalNum)' if the command was killed by a signal. % If the command ran to completion then ExitCode will be 0 if the command % ran successfully and the return value of the command otherwise. % :- pred call_system_return_signal(string::in, io.res(system_result)::out, io::di, io::uo) is det. % Interpret the child process exit status returned by system() or wait(). % :- func decode_system_command_exit_code(int) = io.res(io.system_result). %--------------------------------------------------%