There's a sleep call defined in unistd.h - calling the sleep program with system() is not a good method. How do you think that program implements the sleeping anyhow?
There's also usleep and nanosleep for more precise sleep duration
requests. As tuxdev said, don't rely on it to be very accurate (e.g. timing the movement of the fuel rods into and out of the reactor).