The fork() function creates a process whose program is a copy of the parent's.
The exec functions are system calls that cause a process to replace its program with a different one.
But in Linux/Unix, this change in the program doesn't change the process's identity. It keeps the same pid.