Как можно посмотреть в
мане, ioctl, который вы используете, не имеет единого стандарта, что по сути означает, что в вашей системе "может работать, а может и нет, а может будет работать, но не так как вы ожидаете". Для изменения размера терминала можно использовать escape последовательности, но для разных терминалов они могут отличаться, для XTerm примеры есть
тут. Но по умолчанию они игнорируются, чтобы xterm начал их распознавать нужно изменить значение allowWindowOps:
echo "XTerm*allowWindowOps: true" > .Xresources
xrdb -merge .Xresources
и только после этого вы сможете с помощью них менять размер окна. Но пользователь врятли захочет, чтобы вы ему что-то такое меняли.
Так что вам остается только смотреть в сторону работы с оконным менеджером, но это, как вы понимаете, уже выходит за рамки "консольной программы".
Но вообще изменение размера терминала - это не лучшая практика. Многих людей это будет очень раздражать, а поскольку консольные программы часто исполняют в "настоящей" консоли, без графического интерфейса, смысл изменения размера и вовсе пропадает.