LINUX.ORG.RU

История изменений

Исправление Dron, (текущая версия) :

Ну тут без разницы, так как перед strcpy всё равно стоит проверка, и она там должна быть, а strncpy просто включает проверку в себя. Получается двойная проверка. Плюс проверять до strcpy в том что копироваться ничего не будет, в данном случае мне это и не надо (нафига мне обрезанный путь до файла?).

strncpy удобно если там скопировать первые n символов и тому подобное.

Обрезанные данные с strncpy могут нанести ещё пущий вред чем вылет по ошибке сегментирования.

strncpy тоже не идеальна, что-бы она должным образом работала и буфер надо на 1 убавить передавая ей размер, да и по стандарту она не гарантирует что вставит '\0' это подразумевается будет делаться руками.

gcc '\0' ставит даже для strcpy не спрашивая.

Исходная версия Dron, :

Ну тут без разницы, так как перед strcpy всё равно стоит проверка, и она там должна быть, а strncpy просто включает проверку в себя. Получается двойная проверка. Плюс проверять до strcpy в том что копироваться ничего не будет, в данном случае мне это и не надо (нафига мне обрезанный путь до файла?).

strncpy удобно если там скопировать первые n символов и ому подобное.

Обрезанные данные с strncpy могут нанести ещё пущий вред чем вылет по ошибке сегментирования.

strncpy тоже не идеальна, что-бы она должным образом работала и буфер надо на 1 убавить передавая ей размер, да и по стандарту она не гарантирует что вставит '\0' это подразумевается будет делаться руками.

gcc '\0' ставит даже для strcpy не спрашивая.