Currently `fctprintf` can only be used directly. How about adding a `vfctprintf` that accepts `va_list`?