Département Informatique et réseaux  
  Base des connaissances indispensables  
      
Lien vers le site internet
Vous avez des questions à poser, des trucs à transmettre ? écrivez !

Licence : contexte pédagogique sans modifications

 

 


Développement en C

  1. Utiliser le debugger pour la mise au point de mon programme
    Pour pouvoir utiliser le debugger, la premiére chose à faire est de compiler son programme avec l'option -g :
    gcc -g -o prog prog.c
    
    Si la compilation se passe bien, il faut ensuite lancer l'exécution du programme par l'intermédiaire du debugger:
    xxgdb prog &
    
    On se trouve alors avec l'ouverture d'une fenêtre d'application qui se découpe en 3 parties :
    • le code source du fichier contenant la fonction main,
    • un ensemble de boutons qui permettront l'exécution pas à pas
    • un espace où on voit le déroulement du programme.
    Pour poser un point d'arrêt, on se place avec la souris sur la ligne du source qu'on veut marquer, puis on clique sur le bouton "break".
    Pour visualiser la valeur d'une variable, il faut sélectionner le nom de cette variable dans le source et cliquer sur le bouton "display". Un nouvel espace apparaît dans la partie inférieure de la fenêtre et affiche le nom de la variable. Sa valeur s'écrira à côté en cours de fonctionnement du programme.
    Si l'utilisateur doit entrer des valeurs, il le fera dans le troisième espace.

    Les boutons peuvent ensuite être utilisés de la manière suivante:
    run : pour lancer le programme
    cont : pour passer au point d'arrêt suivant
    next : pour passer à l'instruction suivante, sans entrer dans les fonctions rencontrées
    step : pour faire vraiment de l'exécution pas à pas (y compris dans les fonctions)
    quit : pour quitter l'exécution.
    
    Dans un premier temps, ces 7 boutons devraient vous permettre de régler vos problémes d'exécution.
    Pour plus d'informations sur xxgdb, reportez-vous au manuel:
    man xxgdb
    

  2. Utiliser les arguments de la fonction main pour taper des valeurs sur la ligne de commande
    Il est possible de définir des arguments pour la fonction main de la manière suivante :
    int main(int argc, char *argv[])
    
    Dans ce cas, il existera localement à la fonction deux variables :
    - argc : qui est un entier contenant le nombre de chaînes de caractères tapées sur la ligne de commande. Ce nombre vaut au moins 1 (le nom du programme lui-ême.
    - argv : qui est un tableau des chaînes de caractères tapées. A l'indice 0, c'est le nom du programme qui s'y trouve. Aux autres indices, ce sont les valeurs qu'on souhaite transmettre directement au programme. Si on veut récupérer des entiers, par exemple, il faudra convertir la chaîne à l'aide de la fonction de conversion appropriée.

    Exemple d'utilisation:
    Création d'un fichier d'un ensemble de points avec leurs coordonnées entières comprises entre -100 et 100
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    int main(int argc, char *argv[])
    {
      FILE * f;
      int n,i,x,y;
      if (argc<3) /* Il manque au moins un argument sur la ligne de commande*/
        printf("vous devez donner le nombre de points a creer et le nom du fichier genere\n");
      else
        {
          n=atoi(argv[1]);/* on convertit la premiere chaine de caracteres en un entier */
          f=fopen(argv[2],"w+"); /* ouverture en ecriture d'un fichier dont le nom est la 2e chaine*/
          srand(time(0));/* initialisation de la graine pour la generation aleatoire  */
          for (i=1;i<=n;i++)
            {
              x=rand()%200-100;/* generation aleatoire d'entiers compris entre -100 et 100*/
              y=rand()%200-100;
              fprintf(f,"%d %d\n",x,y);/* ecriture sur fichier */
            }
          fclose(f);
        }
    }
        
    
    Ensuite, si le programme s'appelle creation, il suffira de taper sur la ligne de commande :
    ~\> creation 100 donnees.dat 
    
    pour créer le fichier donnees.dat avec 100 points.

  3. Comment faire du graphique en C à Télécom ParisTech
    Il existe deux manières à l'école pour faire du graphique dans un programme C:
    • génération d'un fichier au format gif : pour créer une image qui sera sauvegardée dans un fichier qu'on pourra ensuite afficher avec xv par exemple.
      Consultez sa documentation complète à l'adresse : http://www.premiere.enst.fr/graphique/graphique_gd_doc.html
      Cette bibliothèque permet de faire des calculs rapides de tracés et de les sauvegarder dans des fichiers d'images. Son inconvénient est son manque d'interactivité.
    • affichage de tracés à l'écran :
      Pour cela, vous devrez installer une bibliothèque comme suit:
      • ouvrir une fenêtre de commande et vous déplacer là où vous voulez placer les fichiers source de cette bibliothè (en général à la racine de votre compte).
      • télécharger l'ensemble des fichiers qui sont dans un dépôt svn en tapant:
        svn co http://www.infres.enst.fr/svn/graphique
      • vous déplacer à la racine du dépôt:
        cd graphique/
      • installer la bibliothèque:
        make
      • lancer l'exemple essai pour vérifier que c'est bien installé, vous devez voir s'afficher une fenêtre avec des tracés graphiques:
        make run
      • pour faire vos propres programmes, par exemple demo.c, vous inspirer du fichier essai.c avec en particulier la ligne:
        #include <graphique.h>
        et l'utilisation des fonctions graphiques qui sont documentées à l'adresse web:
        http://www.premiere.enst.fr/graphique/graphique.html
      • pour le compiler et l'exécuter, utiliser les lignes qui sont dans le fichier Makefile ou simplement taper la commande suivante, en supposant que votre fichier c est dans un répertoire situé également à la racine de votre compte (par exemple tp_algo):
        gcc -g demo.c -L ../graphique -I ../graphique/graphique -lgraphique -lX11 -lm -o demo
        pour compiler demo.c et construire un exécutable de nom demo.
      • il ne reste alors plus qu'à l'exécuter en tapant:
        ./demo

  4. Installer la bibliothèque graphique sur votre ordinateur personnel en environnement unix/linux
    La marche à suivre pour l'installer sous linux (PC ou mac) est la suivante:
    • ouvrir une fenêtre de commande et vous déplacer là où vous voulez placer les fichiers source
    • télécharger l'ensemble des fichiers qui sont dans un dépôt svn en tapant:
      svn co http://www.infres.enst.fr/svn/graphique
    • vous déplacer à la racine du dépôt:
      cd graphique/
    • installer la bibliothèque:
      sudo make install
    • lancer l'exemple essai pour vérifier que c'est bien installé, vous devez voir s'afficher une fenêtre avec des tracés graphiques:
      make run
    • pour faire vos propres programmes, par exemple demo.c, vous inspirer du fichier essai.c avec en particulier la ligne:
      #include <graphique.h>
      et l'utilisation des fonctions graphiques qui sont documentées à l'adresse web:
      http://www.premiere.enst.fr/graphique/graphique.html
    • pour le compiler et l'exécuter, utiliser les lignes qui sont dans le fichier Makefile ou simplement taper la commande:
      gcc -g demo.c -L/usr/local/lib -lgraphique -L/usr/X11R6/lib -lX11 -lm -o demo
      pour compiler demo.c et construire un exécutable de nom demo.
    • il ne reste alors plus qu'à l'exécuter en tapant:
      ./demo

  5. Génération aléatoire de nombres en C
    La bibliothèque standard comprend un geénérateur de nombres pseudo-aléatoiree et une fonction qui,intialise l'amorce de cette série de nombres:
    - int rand(void) : retourne un nombre entier pseudo-aléatoire compris entre 0 et 32767
    - void srand(unsigned int amorce) : donne une valeur initiale à rand()

    exemple d'une fonction qui remplit aléatoirement un tableau de 10 entiers compris entre 1 et 100
    void remplit (int t[10])
    {
      int i;
      srand(time(0)); /* utilisation de l'horloge pour initialiser la suite */
      for (i=0;i<10;i++)
        t[i]=rand()%100 +1;
    
    }
    


Environnement Unix
  1. Travailler à distance sur votre compte
    • En environnement windows
      • Télécharger le logiciel Putty.exe
      • Lancer l'application en double-cliquant sur son icone
    • En environnement Mac-Os
      • Ouvrez l'application Terminal
    • En environnement Linux
      • Ouvrez une fenêtre de commandes
    • Pour établir une connexion, donner comme adresse : telnet.enst.fr
    • Cela crée une connexion sur la machine ares.enst.fr
    • Donnez ensuite votre login et votre mot de passe Unix. Vous serez alors dans une console qui vous permettra d'effectuer toutes les commandes unix habituelles sur votre compte, y compris des compilations.
      Attention ! Cela ne vous permettra pas d'effectuer des programmes graphiques!!

  2. Modifier à distance un fichier sur votre compte
    • En environnement windows ou linux
      • Téléchargez un logiciel de transfert de fichiers (FTP): FileZila fait très bien l'affaire.
      • Installez-le
      • Lancez-le
      • Etablissez une connexion sur la machine hôte ftp.enst.fr (en donnant vos login et mot de passe)
      • Vous pouvez maintenant rapatrier localement un fichier à partir de votre compte, le modifier localement avec un éditeur de texte (TextPad ou le Bloc-notes par exemple).
      • Vous pourrez ensuite le renvoyer (avec votre client ftp) modifié sur votre compte pour l'exécuter dans une fenêtre de commande comme expliqué à la question précédente.
    • En environnement mac-os
      • Installez le logiciel Xcode qui se trouve sur votre CD d'installation.
        Il vous servira pour éditer vos fichiers C.
      • Téléchargez le logiciel de transfert de fichiers (FTP): Fetch. Demandez sur le site à avoir une licence éducation, vous pourrez ainsi avoir une version gratuite.
      • Installez-le
      • Lancez-le
      • Etablissez une connexion sur la machine hôte ftp.enst.fr (en donnant vos login et mot de passe)
      • Sélectionnez le fichier que vous voulez modifier après avoir navigué dans votre compte.
      • En cliquant sur le bouton "infos", vous pouvesélectionner l'éditeur de texte à utiliser pour le modifier (Xcode se trouve dans: Macintosh-HD->Developer->Applications)
      • En cliquant sur le bouton "modifier", ce fichier sera automatiquement téléchargé localement et chargé sous Xcode.
      • Lorsque vous sauvegarderez votre fichier, cette modification sera tout de suite effective sur le fichier de votre compte unix.
      • Vous pourrez ensuite l'exécuter dans une fenêtre de commande comme expliqué à la question précédente.

  3. Compiler et exécuter localement un fichier C
    • En environnement windows
      • Téléchargez un logiciel de simulation d'environnement linux: Cygwin.
      • Installez-le
      • Lancez-le
      • Vous pouvez maintenant exécuter des commandes unix comme en salle de tp et compiler vos programmes avec la commande gcc.
        Attention, si vous avez créé un programme bonjour, il faudra taper ./bonjour pour l'exécuter.
    • En environnement mac-os
      • Editez votre fichier avec le logiciel Xcode (si ce n'est déjà fait, installez-le à partir du CD d'installation de votre mac).
        Attention ! pour vos TP's, il faut juste ouvrir un fichier, et non un projest (File->New File) puis sélectionner "Empty File in project".
      • Ouvrez une fenêtre de terminal.
      • Vous pouvez maintenant exécuter des commandes unix comme en salle de tp et compiler vos programmes avec la commande gcc.
        Attention, si vous avez créé un programme bonjour, il faudra taper ./bonjour pour l'exécuter.

  4. Relier FireFox à Thunderbird
    • Ouvrir les liens mailto dans Thunderbird à partir de FireFox
    • Pour ouvrir Thunderbird automatiquement lorsqu'on clique sur un lien mailto, il faut régler le "protocol handler" à FireFox. Pour cela il vous faut lancer FireFox et taper about:config dans la barre de navigation. Vous pouvez taper "mailto" dans le filtre pour voir les actions mailto. S'il existe une chaîne de nom "network.protocol-handler.app.mailto", sa valeur indique l'action à exécuter comme action à mailto. Si vous ne la trouvez pas,
    • J'utilise Thunderbird et aimerais que ce soit le navigateur FireFox qui s'ouvre lorsque je clique sur un lien dans un mail

  5. Comment agrandir les caractères de mon environnement de travail
    Placez votre souris sur le fond de l'environnement de travail.
    Appuyez ensuite simultanément sur Ctrl et la touche droite de la souris.
    Un menu apparaît. Il vous suffit ensuite de faire votre choix...

  6. Les pages que j'affiche utilisent des styles. Comment agrandir tout de même les caractères ? Dans la plupart des navigateurs, le fait de donner une dimension aux caractères dans les préférences ne suffit pas.
    Par contre, ils ont tous (ou presque) un menu déroulant proposant la fonctionnalité de zoomer:
    - internet explorer : menu Affichage, item Zoom sur le texte (ctrl + ou ctrl - sous windows, option + ou option - sur Macintosh)
    - mozilla ou netscape : menu View, item Text Zoom (ctrl + ou ctrl - sous windows, option + ou option - sur Macintosh)

  7. Comment capturer une partie de mon écran pour en faire une image que je puisse imprimer
    1. Lancer l'application xv en tâche de fond ( commande xv&)
    2. Ouvrir les contrôles d'xv (clic droit dans la fenêtre ouverte par xv)
    3. Appuyer sur le bouton Grab des contrôles, puis suivre les instructions:
      • appui sur le bouton Grab : après le delai spécifié, cliquer dans une fenêtre avec le bouton gauche de la souris capture celle-ci, délimiter une zone rectangulaire avec le bouton central capture cette zone , cliquer avec le bouton droit annule tout
      • appui sur le bouton Autograb : après le delai spécifié, capture la fenêtre dans laquelle se trouve le curseur (le délai doit être non nul).
    4. Sauvegarder l'image dans le format choisi.

  8. Comment personnaliser l'environnement de Xemacs
    Copier le fichier ~premiere/.emacs à la racine de votre home directory.
    Vous pouvez ensuite éditer ce fichier et modifier les options (Attention de ne pas érire n'importe quoi !)
    Par exemple, pour choisir la taille des caractères, modifier la ligne:
    (set-face-font 'default "-*-screen-bold-r-*-*-12-*-*-*-*-*-*-*")
    et remplacer le 12 par la taille voulue.

    rque: si vous voulez savoir à quelles polices vous avez accès tapez xfontsel dans la fenêtre de commande et vous pourrez faire votre choix.

  9. Exécuter une application graphique sur une autre machine
    Si la machine sur laquelle on se trouve s'appelle clementine et la machine distante tristan, exécuter les commandes :
    xhost +tristan
    ssh tristan
    export DISPLAY=clementine:0
    
    Vous pouvez ensuite exécuter l'application graphique à partir de tristan, l'affichage se fera normalement sur clementine

  10. Ma fenêtre X est inaccessible, comment la récupérer ?
    Il suffit d'appuyer sur la touche "magique" située immédiatement à gauche de la barre espace du clavier.
    Choisir ensuite la fenêtre à déplacer et la faire glisser.

Vous avez des questions à poser, des trucs à transmettre ? écrivez !