[Unix] Nombre de colonnes d'un terminal

Nombre de colonnes d'un terminal [Unix] - C - Programmation

Marsh Posté le 29-03-2005 à 18:33:21    

Bonjour,
J'écris actuellement un programme en C (pas de C++, attention), et j'aurais besoin de connaitre le nombre de colonnes du terminal. Je sais le faire avec ncurses (getmaxyx), mais là c'est sans ncurses... J'ai jeté un oeil du coté de ioctl(), mais la page man fais peur :D
Je précise que je dois trouver un truc compatible Linux, NetBSD, et Solaris si possible.
Merci :)

Reply

Marsh Posté le 29-03-2005 à 18:33:21   

Reply

Marsh Posté le 29-03-2005 à 18:43:18    

man terminfo ?
 
edit: ça va pas t'aider je crois :/


Message édité par push le 29-03-2005 à 18:48:47
Reply

Marsh Posté le 29-03-2005 à 18:57:54    

y'a des trucs intéressant, mais ça parle pas mal de curses et il disent même d'include curses.h, ça me botte guère.
Y'a pas un autre moyen ?
On m'a parlé de man 4 tty, j'ai regardé dedans, mais bon sous Linux y'a que dalle dedans, sous NetBSD c'est presque aussi long que la man page de gcc :whistle:
 
Merci quand même :)

Reply

Marsh Posté le 29-03-2005 à 21:14:39    

Up :sweat:

Reply

Marsh Posté le 29-03-2005 à 22:23:57    

Voilà, je sais désormais comment faire:

Code :
  1. #include <sys/ioctl.h>
  2. #include <termios.h>
  3. struct winsize ws;
  4. ioctl(1, TIOCGWINSZ, &ws);
  5. printf("Cols: %i\n", ws.ws_col);


 
Merci à ix de #debian :)

Reply

Marsh Posté le 29-03-2005 à 22:29:32    

ct indiqué dans "man console_ioctl" ou "man tty_ioctl", je sais plus ;)


Message édité par Deadog le 29-03-2005 à 22:30:36
Reply

Marsh Posté le 29-03-2005 à 22:31:23    

ah voila :
 

Get and Set Window Size
       Window sizes are kept in the kernel, but not used by the kernel (except in the case of virtual consoles, where the kernel will  update
       the window size when the size of the virtual console changes, e.g. by loading a new font).
 
       TIOCGWINSZ     struct winsize *argp
              Get window size.
 
       TIOCSWINSZ     const struct winsize *argp
              Set window size.
 
       The struct used by these ioctls is defined as
 
       struct winsize {
               unsigned short ws_row;
               unsigned short ws_col;
               unsigned short ws_xpixel;   /* unused */
               unsigned short ws_ypixel;   /* unused */
       };
 
       When the window size changes, a SIGWINCH signal is sent to the foreground process group.


 
 
:)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed