Несмотря на то, что strcpy является обычной строковой функцией, она имеет историю появления множества ошибок и дыр в безопасности программного обеспечения (из-за простоты переполнения буфера).
Microsoft, стремясь содействовать более безопасному кодированию на C и C ++, предоставила набор функций замены для опасных строковых методов. Как правило, у них есть оригинальное имя, добавленное после _s. Следовательно, безопасной версией Microsoft strcpy является strcpy_s, как рекомендуется в предупреждении. Обратите внимание, что это особенность Microsoft, она не вездесущая.
У вас есть несколько вариантов.
- DEFINE _CRT_SECURE_NO_WARNINGS, если вы не хотите заботиться об этом, оставляя возможность проблем с безопасностью в вашем программном обеспечении.
- Замените ваши строковые функции на безопасные, в результате чего ваше программное обеспечение станет менее переносимым
- Оберните функции защищенной строки и везде используйте оболочки, обеспечивая повышенную безопасность на платформах Windows и возвращаясь к традиционным версиям на других платформах. Функции-обёртки могут быть через MACRO или скомпилированные функции.
Обычно я делаю # 3.