> > Are gmtime() + strftime() unsuitable for some reason? > > They are not async-signal safe, so they are not usable in between a > fork() and exec*(). Libvirt avoids them because it DOES log information > including timestamps in between fork/exec (and prior to > writing libvirt's virtime.c, we DID hit cases where libvirt would deadlock a > child process due to the non-safe use of a more naive > timestamp generator), but I don't know if qemu suffers from the same > restriction of when it has anything worth logging.
In my understanding, gmtime() + strftime() is usable in error_report() because it seems to be called For just a option check. >[TODO] >Other functions below are used to output error messages in qemu. >- qerror_report() is called in many source codes. >- fprintf() is called in vl.c. On the other hand, qerror_report() and fprintf () seems to be called in signal handers. So, in those cases, some signal-safe functions should be used. Seiji