Theoretically speacking, the who implementation using the C standard io 
library is faster then that using the C system calls. The reason is 
buffering. The C standard io library uses additional buffering 
(the kernel also does buffering by default, we learned later on that 
this buffering can be turned off). 

Regarding the use of ctime to convert the time value to a string, the
function uses a globally allocated char *. Therefore, a second call to
ctime will override the result obtained previously. The best way is to 
print the result as soon as it is obtained.