UNIX & GNU/Linux - System calls - Using tgetnum()

The tgetnum() function is a Linux system call function. It is designed to be used with the getenv() and tgetent() functions.
If the description of the terminal is not found, most probably because there is no result in the tgetent() function, the tgetnum() one will return -1.

With the tgetnum() function, we have to put an only one string parameter. You have to use the two letters of the appropriate termcaps. You can find all of them in the Numeric capabilities of the termcap manual.

Let's see an example of the tgetnum() function with the "TERM" variable and its height and width:

/*                                                                         
** Made by BadproG.com                                                     
*/

#include        <stdio.h>
#include        <curses.h>
#include        <term.h>
#include        <stdlib.h>

int     main()
{
  const char *name;
  char  *bp;
  char  *term;
  int   height;
  int   width;

  bp = malloc(sizeof(*bp));
  name = "TERM";
  if ((term = getenv(name)) == NULL)
    return (1);
  printf("My terminal is %s.\n", term);
  tgetent(bp, term);
  height = tgetnum("li");
  width = tgetnum("co");
  printf("H : %d\nL : %d\n", height, width);
  free(bp);
  return (0);
}

Do not forget to use the -lncurses library when you compile. Note that you can use the -ltermcap library as well:

cc main.c -lncurses

and

./a.out

 

Add new comment

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Refresh Type the characters you see in this picture. Type the characters you see in the picture; if you can't read them, submit the form and a new image will be generated. Not case sensitive.  Switch to audio verification.