 <p>you're not implementing background processes, you're trying to start a background process using the syntax of the already-implemented-shell on your computer (but honestly, it's pretty hard to tell what's going on with that indentation. That's really bad. Can you make it readable, please?). That '&amp;' character is recognised by your shell, not by execvp. Have a look at <a href="http://stackoverflow.com/questions/20790765/run-a-program-in-background-with-execvp-system-call-in-c">this similar looking question</a> which was the first hit in a google search for your problem.</p>