# Process Management And Interprocess Communication This chapter describes the NSPR routines that deal with processes. A process is an instance of a program. NSPR provides routines to create a new process and to wait for the termination of another process. NSPR does not provide an equivalent of the Unix `fork()`. The newly-created process executes its program from the beginning. A new process can inherit specified file descriptors from its parent, and the parent can redirect the standard I/O streams of the child process to specified file descriptors. Note that the functions described in this chapter are not available for MacOS or Win16 operating systems. (process-management-types-and-constants)= ## Process Management Types and Constants The types defined for process management are: > - {ref}`PRProcess` > - {ref}`PRProcessAttr` (process-management-functions)= ## Process Management Functions The process manipulation function fall into these categories: - [Setting the Attributes of a New Process](#Setting_the_Attributes_of_a_New_Process) - [Creating and Managing Processes](#Creating_and_Managing_Processes) (setting-the-attributes-of-a-new-process)= ### Setting the Attributes of a New Process The functions that create and manipulate attribute sets of new processes are: > - {ref}`PR_NewProcessAttr` > - `PR_ResetProcessAttr` > - `PR_DestroyProcessAttr` > - `PR_ProcessAttrSetStdioRedirect` > - `PR_ProcessAttrSetCurrentDirectory` > - `PR_ProcessAttrSetInheritableFD` (creating-and-managing-processes)= ### Creating and Managing Processes The functions that create and manage processes are: > - `PR_CreateProcess` > - `PR_DetachProcess` > - `PR_WaitProcess` > - `PR_KillProcess`