Что такое эквивалент strtok_s в VC7? - PullRequest
0 голосов
/ 21 ноября 2008

Функция strtok_s существует в vc8, но отсутствует в vc7. Так что же такое функция (или код), которая делает эквивалент strtok_s в vc7?

1 Ответ

3 голосов
/ 21 ноября 2008

Взгляните на эту страницу MSDN .

Насколько я могу судить, улучшения безопасности: а) сделать strtok () реентерабельным (и поточно-ориентированным), приняв параметр "context" и б) сделать его безопасным для использования с Нулевые указатели. (Фактическое поведение в случае параметров NULL указано в таблице на странице, на которую я ссылался.)

Что касается альтернативы VC7, вам придется написать (или импортировать) ее самостоятельно. NULL-безопасность легко сделать внешне, вам просто нужно быть осторожным, чтобы не пропустить NULL-строки там, где их не ожидается; но что касается повторного входа, strtok () не может справиться с этим.

Взгляните на этот и этот вопрос. Я считаю, что POSIX также предоставляет реентерабельную версию strtok (), которая называется strtok_r (); Вы можете искать это. Также было бы хорошим (и коротким) упражнением написать реализацию самостоятельно. Не должно занимать более ~ 10 строк кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...