Я не совсем уверен, что вы спрашиваете.Если функция getdate
, о которой вы спрашиваете, является функцией X / Open, то она принимает char const*
в качестве аргумента;в C ++ это обычно получается путем вызова c_str()
на std::string
.Функция на самом деле принимает ряд других аргументов, однако, различными хитрыми способами;в частности, переменная окружения DATEMSK
должна быть установлена либо путем использования перед запуском приложения, либо путем вызова setenv
(или putenv
) из вашего приложения.
Обратите внимание, что эта переменная указываетимя файла, которое getdate
читает для получения шаблонов для анализа времени и даты.
Функция возвращает указатель на tm
, стандартную Unix-структуру с разбивкой по времени и дате.Возвращается нулевой указатель, указывающий на ошибку, с кодом ошибки в глобальной переменной getdate_err
.
Все это подразумевает много статических данных и полное отсутствие безопасности потока.Это похоже на одну из тех унаследованных функций Unix, определенных в те времена, когда потоки не существовали, и которые в корне нарушаются, если смотреть с современной точки зрения.В отличие от большинства других в этом случае, похоже, что нет безопасной замены потока.
В любом случае, точную спецификацию getdate
см. Posix-X / Openспецификации , а для спецификации tm
(или struct tm
, поскольку это является частью C API), см. спецификацию time.h
в стандарте Posix или стандарте C.