creates a complete copy of the parent process. The child process sets up privileges, priorities, and I/O for the program that is about the be started by closing some files, opening others, reducing its priority if it is to run in the background, etc. Because the child runs the same code as the parent, it can be trusted to set up the context for the new program correctly. Takes no arguments and returns an integer