/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef prproces_h___ #define prproces_h___ #include "prtypes.h" #include "prio.h" PR_BEGIN_EXTERN_C /************************************************************************/ /*****************************PROCESS OPERATIONS*************************/ /************************************************************************/ typedef struct PRProcess PRProcess; typedef struct PRProcessAttr PRProcessAttr; NSPR_API(PRProcessAttr*) PR_NewProcessAttr(void); NSPR_API(void) PR_ResetProcessAttr(PRProcessAttr* attr); NSPR_API(void) PR_DestroyProcessAttr(PRProcessAttr* attr); NSPR_API(void) PR_ProcessAttrSetStdioRedirect(PRProcessAttr* attr, PRSpecialFD stdioFd, PRFileDesc* redirectFd); /* * OBSOLETE -- use PR_ProcessAttrSetStdioRedirect instead. */ NSPR_API(void) PR_SetStdioRedirect(PRProcessAttr* attr, PRSpecialFD stdioFd, PRFileDesc* redirectFd); NSPR_API(PRStatus) PR_ProcessAttrSetCurrentDirectory(PRProcessAttr* attr, const char* dir); NSPR_API(PRStatus) PR_ProcessAttrSetInheritableFD(PRProcessAttr* attr, PRFileDesc* fd, const char* name); /* ** Create a new process ** ** Create a new process executing the file specified as 'path' and with ** the supplied arguments and environment. ** ** This function may fail because of illegal access (permissions), ** invalid arguments or insufficient resources. ** ** A process may be created such that the creator can later synchronize its ** termination using PR_WaitProcess(). */ NSPR_API(PRProcess*) PR_CreateProcess(const char* path, char* const* argv, char* const* envp, const PRProcessAttr* attr); NSPR_API(PRStatus) PR_CreateProcessDetached(const char* path, char* const* argv, char* const* envp, const PRProcessAttr* attr); NSPR_API(PRStatus) PR_DetachProcess(PRProcess* process); NSPR_API(PRStatus) PR_WaitProcess(PRProcess* process, PRInt32* exitCode); NSPR_API(PRStatus) PR_KillProcess(PRProcess* process); PR_END_EXTERN_C #endif /* prproces_h___ */