Кто-либо знает значение yy?

С любым приложением Unix или командой, можно подавить весь вывод с

cmd >/dev/null 2>&1

Первый бит перенаправляет стандартный вывод (единица номер 1) к/dev/null. Но Вам нужна вторая часть, чтобы также перенаправить вывод ошибок (единица номер 2) к тому же месту как номер 1.

В UNIX, STDIN=0, STDOUT=1 и STDERR=2


10
16.03.2017, 17:45
2 ответа

Я думаю, что это имеет некоторое отношение к yacc, который имеет файлы, заканчивающиеся в .y, и требует вызванной функции yylex.

10
27.01.2020, 20:02
  • 1
    Это ТАК, вопрос, кажется, соглашается –  Michael Mrozek♦ 07.09.2010, 18:44
  • 2
    Заключение в кавычки ответа @peterb в ТАК сообщение, связанное Michael, "нет никакого очевидного значения, обсужденного вне простого желания пространства имен. "yy" в lex.yy.c указывает, что вывод закона предназначается для yacc синтаксического анализатора". Спасибо парни! –  Timothy 07.09.2010, 18:55

Как указывали другие здесь и на StackOverflow , это может быть просто удвоение y от имя утилиты yacc , используемой для создания уникального пространства имен.

Стандарт POSIX резервирует пространства имен, начинающиеся с yy и YY для yacc с следующим абзацем :

Имена имеют произвольную длину, состоят из букв, точек (. ), подчеркивания ( _ ) и неначальных цифр. Прописные и строчные буквы различны. Соответствующие приложения не должны использовать имена, начинающиеся с yy или YY , поскольку синтаксический анализатор yacc использует такие имена . Многие из имен появляются в окончательном выводе yacc , и поэтому они должны быть выбраны в соответствии с любыми дополнительными правилами, созданными компилятором C, которые будут использоваться. В частности, они появляются в операторах #define .

К сожалению, документы POSIX очень плохо отражают любую форму истории, объясняющую, почему все стало так, как есть в настоящее время.

2
27.01.2020, 20:02

Теги

Похожие вопросы