Вы можете использовать fopen()
. Серьезно, не обращайте внимания на Microsoft здесь, они наносят вред программистам, отступая от стандартов ISO. Кажется, они думают, что люди, пишущие код, как-то безумны и не знают, как проверить параметры перед вызовом библиотечных функций.
Если кто-то не хочет изучать тонкости программирования на С, у него действительно нет никакого дела. Они должны перейти на более безопасный язык.
Похоже, что это просто очередная попытка Microsoft заблокировать вендора разработчиками (хотя они не единственные, кто пытается это сделать, поэтому я специально не ругаю их). Я обычно добавляю:
#define _CRT_SECURE_NO_WARNINGS
(или вариант "-D"
в командной строке) для большинства моих проектов, чтобы компилятор не беспокоил меня при написании совершенно корректного, допустимого кода на языке C.
Microsoft предоставила дополнительные функции в функции fopen_s()
(например, кодировки файлов), а также изменила способ возврата. Это может сделать его лучше для программистов Windows, но делает код по своей природе непереносимым.
Если вы когда-нибудь собираетесь писать код только для Windows, обязательно используйте его. Я сам предпочитаю возможность компилировать и запускать мой код где угодно (с минимальными изменениями).
Начиная с C11, эти безопасные функции теперь являются частью стандарта, хотя и являются необязательными. Для получения более подробной информации см. Приложение K.