2016-11-30 1 views
0

На странице человека для версии GNU из find, в конце САМОВЫРАЖЕНИЯ: ДЕЙСТВИЯ: -printf раздел, следующий озадачивает линия:Что подразумевается под поиском справочной страницы для ключа -printf?

'%' A в конец формата аргумент вызывает неопределенное поведение, поскольку не существует следующего символа . В некоторых локациях он может скрывать ваши ключи от двери, в то время как в других он может удалить последнюю страницу из романа, который вы читаете .

Мне нравятся изображения, но что это на самом деле означает? Полезность находки на самом деле не позволяет такой Printf аргумент должны быть обработан:

> find -printf "%" 
find: error: % at end of format string 
+1

Это означает, что он говорит. если в конце%% не имеет определенного поведения. вы ** пытаетесь ** потерять ключи от двери? –

ответ

0

Проверка исходного кода достаточно последних версии GNU находки показывает, что он проверяет наличие этого условия (задний %) и прекращает с вы указываете ошибку, поэтому выдержка из справочной страницы выглядит абсурдной.

Я честно не могу себе представить, что это когда-либо вел себя иначе, поэтому я сомневаюсь, что этот отрывок всегда был правдой.

Мое лучшее предположение заключается в том, что лицо, написавшее документацию, каким-то образом уловило его в голове, что форматы поиска printf каким-то образом передавались непосредственно в функцию printf библиотеки C (что смешно) и что код библиотеки C может иметь некоторые странные, зависящее от локали действие (что также кажется смешным).

Смежные вопросы