Список устаревших функций C? - PullRequest
9 голосов
/ 23 мая 2010

Я C noob, и я только что узнал, что atoi устарела в пользу strtol и т.д.

Где я могу найти список устаревших функций C?

1 Ответ

2 голосов
/ 23 мая 2010

Существует разница между небезопасным и устаревшим . atoi() небезопасно, однако gcc не скажет вам прекратить его использование, потому что это опасно. Использование gets () дает другой результат :) YCMV (ваш компилятор может отличаться).

В общем, если функция может выйти из строя и проверка ошибок невозможна, не используйте ее. Если функция позволяет записывать в область памяти без возможности превышать ограничение по размеру, не используйте ее.

Последнее легче определить только по прототипу функции. Однако, если вы в некоторой степени осознаете, что делаете, вы быстро поймете, что у вас нет возможности узнать, действительно ли то, что вы получили из atoi(), было строковым представлением результата, который пользователь только что ввел в командную строку .

Это обоснование вовсе не исключает стандартную библиотеку C. Вы столкнетесь с большим и большим количеством библиотечного кода, и некоторые из них хороши. Никакой список не может заменить усвоенные навыки защитного кодирования.

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