cor stderr [RESOLVIDO]

1. cor stderr [RESOLVIDO]

berghetti
berghetti

(usa Debian)

Enviado em 13/05/2020 - 11:19h

Bom dia,
pegue o exemplo desse link https://www.vivaolinux.com.br/topico/C-C++/mudar-a-cor-em-programacao-c
e edite para enviar para saída de erro padrão.

porem não é enviado os caracteres de escape quando aponto para stderr (nada de cor),
pensei que talvez limitação fosse da stderr, mas inserido diretamente na string os caracteres de escape, funciona.

deixei passar alguma coisa?

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

int
main ( void )
{
int cor;
int err;
setupterm ( NULL, STDERR_FILENO, &err );

switch ( err )
{
case -1:
fprintf (stderr, "no terminfo database" );
return 1;
case 0:
fprintf (stderr, "unknown terminal" );
return 1;
}

putp ( exit_attribute_mode );
for ( cor = 0; cor < max_colors; cor++ )
{
putp ( tparm ( set_a_foreground, cor ) );
fprintf ( stderr, "Cor %d normal ", cor );
putp ( enter_bold_mode );
fprintf ( stderr, "e \"bold\".\n" );
putp ( exit_attribute_mode );
}
fprintf ( stderr, "Cor reset normal " );
putp ( enter_bold_mode );
fprintf ( stderr, "e \"bold\".\n" );
putp ( exit_attribute_mode );

return 0;
}



  


2. Re: cor stderr

berghetti
berghetti

(usa Debian)

Enviado em 13/05/2020 - 11:40h

logo depois que postei me veio a ideia.

exemplo imprimindo cor na saída de erro com a terminfo

// compile gcc cor.c -o cor -ltinfo
//#include <curses.h>
#include <stdio.h>
#include <term.h>
#include <unistd.h>

int
puterr ( const int c )
{
return fputc ( c, stderr );
}

int
main ( void )
{
int cor;
int err;
setupterm ( NULL, STDERR_FILENO, &err );

switch ( err )
{
case -1:
fprintf ( stderr, "no terminfo database" );
return 1;
case 0:
fprintf ( stderr, "unknown terminal" );
return 1;
}

tputs ( exit_attribute_mode, 1, puterr );
for ( cor = 0; cor < max_colors; cor++ )
{
tputs ( tparm ( set_a_foreground, cor ), 1, puterr );
fprintf ( stderr, "Cor %d normal ", cor );
tputs ( enter_bold_mode, 1, puterr );
fprintf ( stderr, "e \"bold\".\n" );
tputs ( exit_attribute_mode, 1, puterr );
}

fprintf ( stderr, "Cor reset normal " );
tputs ( enter_bold_mode, 1, puterr );
fprintf ( stderr, "e \"bold\".\n" );
tputs ( exit_attribute_mode, 1, puterr );

return 0;
}








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts