There's a serious problem here:
Suppose the system time is approximately HH:MM:00.999 when curTime is assigned, but a few microseconds later at HH:MM:01.000 when rawtime is assigned. This means that we'll print HH:MM:01.999, which is quite far from either value.
Swapping the two calls won't help - ...
You can remove the necessity to use two buffers, and also they are too large (80? why?). The actual string will be something like 23 characters long.
If you want to be cool and expect your program to last until end of 64bit unix timestamp, which is the year 292277026596, then we need 8 additional characters to fit. So 31 bytes for the actual characters in ...