[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ширина терминала в си



On Thu, 06 Jan 2005 02:17:30 +0300
 Artem Chuprina <ran@ran.pp.ru> wrote:
Gossen Alexey -> debian-russian  @ Wed, 5 Jan 2005 19:27:17 +0100:

GA> парадокс(для меня), если запускаю программу из-под gdb, всё получается.
GA> если программу запускаю непосредственно, getenv возвращает NULL

Что ж тут парадоксального?  gdb ее выставляет, а ты - нет.


Основное взято из rlogin.c BSD4.4
Работает с xterm и в обычной консоли

yuray@keeper:~$ ./a.out
cols=89 rows=24
yuray@keeper:~$

#include <stdio.h>
#include <sys/ioctl.h>
#include <errno.h>

#define	get_window_size(fd, wp)	ioctl(fd, TIOCGWINSZ, wp)

int main(int argc, char *argv[], char *env[])
{
	struct winsize ws;

	if(get_window_size(1, &ws) == -1)
	{
		perror("Oops");
		return(1);
	}
	printf("cols=%d rows=%d\n", ws.ws_col, ws.ws_row);
	return(0);
}

Regards,
Yuri Kozlov



Reply to: