У меня есть эта программа, которая используеттерминал ширина IOCTL, когда по трубопроводу до менее
ioctl(file_descriptor_of_stdout, TIOCGWINSZ, &w);
, чтобы получить концевую ширину (используется в печатных массивов). Это отлично работает, если я запускаю свою программу непосредственно на терминале; Тем не менее, я часто выхожу на выходе через меньше, для подкачки и поиска. Для обсуждения предположим, что stderr также передается по каналам, поэтому я не могу «обмануть», ожидая, что на самом деле перейдем к терминалу.
Теперь, сам по себе делает с учетом ширины терминала - для разрыва линий или измельчения их. Разве она не передает эту информацию так или иначе, как она проходит через нее?
Вы можете вносить изменения в программу, чтобы использовать '' fd' из/Dev/tty', а чем 'stdout' –
@MarkSetchell:. Мда И/DEV/tty отличается для каждого процесса в зависимости от того, на каком терминале он включен? – einpoklum
Да, это правильно. Оно специфично для каждого процесса. –