LINUX.ORG.RU

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

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

printf(), пока ты не обосрался с количеством и типом аргумента, абсолютно корректен.

Вот только va* и vprintf() появились не сразу, и все делали какой-нибудь my_error() именно вот так как у вас в стартовом коде.

UB

UB плох, когда результат непредсказуем. Тут же всё понятно. Ну можно залезть чуть глубже в стек. Но там гарантированно как минимум main(ac,av,env)+текущий вызов этого syscall, то есть в конец стека точно не упрёмся, а значения не задействованные в текущем syscall и не юзаются.

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

printf(), пока ты не обосрался с количеством и типом аргумента, абсолютно корректен.

Вот только ни va*, ни vprintf() появились не сразу, и все делали какой-нибудь my_error() именно вот так как у вас в стартовом коде.

UB

UB плох, когда результат непредсказуем. Тут же всё понятно. Ну можно залезть чуть глубже в стек. Но там гарантированно как минимум main(ac,av,env)+текущий вызов этого syscall, то есть в конец стека точно не упрёмся, а значения не задеёствыованные в текущем syscall и не юзаются.