Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
789 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Utilisation des ncurses sous Solaris 9/10.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utilisation des ncurses sous Solaris 9/10.

n°1263623
Master_Jul
Posté le 10-12-2005 à 15:11:06  profilanswer
 

Hello,
 
J'ai un projet à faire en C avec utilisation de sémaphores, files de messages, mémoire partagée etc.
 
Le projet est un ordinateur de bord de voiture et je souhaite faire une interface un minimum correcte. Notre projet doit fonctionner sous Solaris (pour nous "obliger" à rester au plus près de la norme Unix). J'ai pensé aux (n)curses. D'après plusieurs docs, ça semble dans la norme d'Unix System V.
 
En pratique, est-ce que c'est utilisable ? J'ai essayé en installant une Solaris 10 chez moi, malgré la présence des .o libcurses dans le système, je n'ai pas été foutu de compiler mon misérable programme de test. Et impossible de trouver les fonctions sur les ordinateurs du bahut en compilant avec -lncurses. Mon ami n'a pas eu le temps d'essayer avec -lcurses. Mais bon, j'ai pas mal de doutes.
 
J'ai donc deux questions :
 
Est-ce que l'utilisation des ncurses pour une "interface" est correcte dans le cadre d'un projet portable ?
Est-ce que quelqu'un s'est déjà servi des curses sous Solaris ?
 
Merci,
 
Julien
 
Je joins le code en question si quelqu'un est en mesure d'essayer.
 

Code :
  1. #include <stdio.h>
  2. #include <curses.h>
  3. int main()
  4. {
  5.         int h, w;       // Pour les dimensions de la fenêtre
  6.         int ch;
  7.         int vitesse=0;
  8.         initscr();      // Initialisation des curses, le terminal est considéré
  9.                         // comme le stdscr par défaut
  10.         getmaxyx(stdscr, h, w); // Récupère les dimensions de la fenêtre
  11.         cbreak();       // Pas de buffer TTY
  12.         noecho();       // Pas d'echo de la frappe
  13.         keypad(stdscr, TRUE);   // Gestion des touches spéciales (flèches, backspace...)
  14.         nodelay(stdscr, TRUE);  // getch non bloquant
  15.         // On peut faire le con avec des couleurs
  16.         start_color();
  17.         attrset(A_BOLD);        // Pour un blanc éclatant (:D)
  18.         init_pair(1, 1, 0);     // Rouge, fond noir
  19.         border(0, 0, 0, 0, 0, 0, 0, 0); // Une belle bordure
  20.         move(1, 1);
  21.         printw("Regulateur de vitesse : %d km/h",vitesse);
  22.         move(2, 1);
  23.         printw("Utiliser les fleches haut et bas." );
  24.         move(3,1);
  25.         printw("Touche x pour quitter." );
  26. //      move(4,1);
  27. //      hline(ACS_HLINE, w-2); // Ligne de séparation horizontale
  28.         while(1) {
  29.                 if ((ch = getch()) == ERR) {}
  30.                 else {
  31.                         switch (ch) {
  32.                                 case KEY_UP: if(vitesse<150) vitesse=vitesse+5; else beep(); break;
  33.                                case KEY_DOWN: if(vitesse>0) vitesse=vitesse-5; else beep(); break;
  34.                                 case 'x': endwin(); return(0);
  35.                         }
  36.                         clear();
  37.                         border(0, 0, 0, 0, 0, 0, 0, 0);
  38.                         move(1, 1);
  39.                         printw("Regulateur de vitesse : %d km/h",vitesse);
  40.                         if(vitesse>130) {
  41.                                 attron(COLOR_PAIR(1));
  42.                                 printw(" /!\\ Vitesse elevee." );
  43.                                 attroff(COLOR_PAIR(1));
  44.                         }
  45.                         move(2, 1);
  46.                         printw("Utiliser les fleches haut et bas." );
  47.                         move(3,1);
  48.                         printw("Touche x pour quitter." );
  49.                 }
  50.         }
  51. }


Message édité par Master_Jul le 10-12-2005 à 15:14:20
mood
Publicité
Posté le 10-12-2005 à 15:11:06  profilanswer
 

n°1366591
buster973
Posté le 15-05-2006 à 15:54:25  profilanswer
 

Pour ton interface tu peux effectivement utiliser ncurses sous solaris la librairie se lie via -lcurses. Concernant les couleurs méfie toi les terminaux sous cde sont compatibles avec la couleur mais pas les terminaux gnome du java desktop ... pour etre sur tu peux faire un test du style :
 
if(has_colors()==FALSE){
 printw("pas de couleur" );
}

n°1366630
Master_Jul
Posté le 15-05-2006 à 16:25:31  profilanswer
 

Je te remercie pour ta réponse. J'ai pu compiler cet exemple et mon projet le semestre dernier en utilisant effectivement -lcurses.


---------------
En français, on écrit "connexion", pas "connection".

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Utilisation des ncurses sous Solaris 9/10.

 

Sujets relatifs
Utilisation de plusieurs servlets[VB6] Utilisation de fichiers batch...
Utilisation et licence[PHP] Apache se plante lors de l'utilisation d'une classe
[MS-DOS] Utilisation du pipeUtilisation des masques
Utilisation JProgressBar & temps de traitement incconuPblm utilisation Dev C++ pour du C
[VBScript] Utilisation de transactionsutilisation du port parallele sous windows XP
Plus de sujets relatifs à : Utilisation des ncurses sous Solaris 9/10.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR