Я пытаюсь написать некоторый переносимый код, и я думал, как же Microsoft реализовать старые процедуры C во время выполнения, как gmtime или FOPEN, и т.д., которые были возвращающей указатель , напротив сегодняшних gmtime_s или fopen_s который требует, чтобы объект прошел и возвращает errno код состояния (я думаю).Microsoft C Run Time - теперь и до
Одним из способов было бы создать статический (лучше, чем глобальный) объект внутри таких подпрограмм и вернуть указатель на него, но если один объект в настоящее время использует этот статический указатель, а другой объект вызывает эту процедуру, первый объект получит измененный буфер - что плохо.
Кроме того, я сомневаюсь, что в таких подпрограммах используется динамическая память, потому что это приведет к утечке памяти.
Как и в случае с другими материалами Microsoft, реализация не открывается, поэтому я могу принять пик. Какие-либо предложения?
Зачем вам нужны статические объекты? Почему динамическая память вызывает утечку памяти? –
Если я правильно помню, большинство частей исходного кода среды MS C * распространяются вместе с Visual Studio. –
Вы можете перестать гадать и [прочитать официальную ссылку] (https://msdn.microsoft.com/en-us/library/z5hh6ee9.aspx). Или [ссылка написана по спецификации] (http://en.cppreference.com/w/c/io/fopen). –