Umm, a ver, ahora que tengo tiempo.
fork() devuelve un entero, que será 0 para el hijo y el pid del hijo para el padre.
if ( fork() == 0){
/* hijo */
}else{
/* padre */
}
Es equivalente a:
pid = fork()
if ( pid == 0){
/* hijo */
}else{
/* padre */
}
Solo que en el primer caso ahorro una variable que no voy a usar más.
Me imagino que con eso entenderás el if.
Ahora, para terminar (que no matar) un proceso antes de que llegue al final, lo que se hace es exit.
El wait se usa por el proceso padre para esperar a que finalice el hijo y, además, se evita que el hijo se quede como un proceso zombie (esto es, programa terminado pero a la espera de que el padre recoja la terminación del hijo). No sé si entenderás esto, si no lo has dado.
Y sí, un librillo te vendría bien, o los apuntes de sistemas operativos de alguna universidad.