(root)/
gettext-0.22.4/
gettext-tools/
gnulib-lib/
execute.h
       1  /* Creation of autonomous subprocesses.
       2     Copyright (C) 2001-2003, 2008-2023 Free Software Foundation, Inc.
       3     Written by Bruno Haible <haible@clisp.cons.org>, 2001.
       4  
       5     This program is free software: you can redistribute it and/or modify
       6     it under the terms of the GNU General Public License as published by
       7     the Free Software Foundation, either version 3 of the License, or
       8     (at your option) any later version.
       9  
      10     This program is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13     GNU General Public License for more details.
      14  
      15     You should have received a copy of the GNU General Public License
      16     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      17  
      18  #ifndef _EXECUTE_H
      19  #define _EXECUTE_H
      20  
      21  /* Execute a command, optionally redirecting any of the three standard file
      22     descriptors to /dev/null.  Return its exit code.
      23     If it didn't terminate correctly, exit if exit_on_error is true, otherwise
      24     return 127.
      25     progname is the name of the program to be executed by the subprocess, used
      26     for error messages.
      27     prog_path is the file name of the program to be executed by the subprocess.
      28     If it contains no slashes, a search is conducted in $PATH.  An operating
      29     system dependent suffix is added, if necessary.
      30     prog_argv is the array of strings that the subprocess shall receive in
      31     argv[].  It is a NULL-terminated array.  prog_argv[0] should normally be
      32     identical to prog_path.
      33     If directory is not NULL, the command is executed in that directory.  If
      34     prog_path is a relative file name, it resolved before changing to that
      35     directory.  The current directory of the current process remains unchanged.
      36     If ignore_sigpipe is true, consider a subprocess termination due to SIGPIPE
      37     as equivalent to a success.  This is suitable for processes whose only
      38     purpose is to write to standard output.
      39     If slave_process is true, the child process will be terminated when its
      40     creator receives a catchable fatal signal.
      41     If termsigp is not NULL, *termsig will be set to the signal that terminated
      42     the subprocess (if supported by the platform: not on native Windows
      43     platforms), otherwise 0.
      44     It is recommended that no signal is blocked or ignored while execute()
      45     is called.  See spawn-pipe.h for the reason.  */
      46  extern int execute (const char *progname,
      47                      const char *prog_path, const char * const *prog_argv,
      48                      const char *directory,
      49                      bool ignore_sigpipe,
      50                      bool null_stdin, bool null_stdout, bool null_stderr,
      51                      bool slave_process, bool exit_on_error,
      52                      int *termsigp);
      53  
      54  #endif /* _EXECUTE_H */