A CVS-like front end to P4
C4 was originally created to give p4 a CVS feel, by allowing perforce clients to have writable files and have c4 locate changed files in a way similar to CVS. This has been expanded to correctly find arbitrary changes between the current top of tree and the client so that whole trees can be imported. This is routinely used to import updates to external source, including updates that can remove/rename whole directories of files.
C4 provides a control file that is placed at the top of each client to set environment variables, such as P4PORT and P4CLIENT. For more information on what c4 does, read the c4 manual.