This may be more understandable as explaining system() as a secure use of a fork() and an exec() and exec() as a function that will load a program directly over your current program (actually replaces your current executable with a new one). Not a criticism, just a note. FYI.
Please note that I never stated that system() is just a call to fork() and exec(), it is much more complicated than that. Implementing it yourself with fork() and exec() requires between 50-80 lines of C to be properly POSIX.2-compliant (involves proper shell env handling and signal handling).