Vous êtes sur la page 1sur 2

Atelier 3 : programmation C sous Linux

On réalise un programme demandant deux nombres et affichant la somme et la différence de ces nombres.

Le programme source est découpé en trois fichiers


Fichier main.c

#include <stdio.h>
#include "calcul.h"
int main(void)
{
int a,b,s,d;
printf("entrer le premier nombre : ");
scanf("%d",&a);
printf("entrer le deuxième nombre : ");
scanf("%d",&b);
s=somme(a,b);
d=diff(a,b);
printf("\n%d + %d = %d\n",a,b,s);
printf("\n%d - %d = %d\n",a,b,d);
return(0);
}

Fichier somme.c
int somme(int x, int y)
{
return (x+y);
}
Fichier diff.c

int diff(int x, int y)


{
return(x-y);
}
1. Créer le fichier calcul.h contenant les prototypes des fonctions « somme » et « diff ».

2. Compiler les fichiers main.c somme.c diff.c de manière à obtenir l’exécutable « calc » (tester)

3. Compiler somme.c et diff.c de manière à créer les fichier objets somme.o et diff.o

4. Re-créer calc en compilant et liant main.c somme.o et diff.o


On souhaite modifier le programme de manière à retourner toujours un nombre positif pour la différence en
ajoutant à diff.c
if (x>y) return(x-y);
else return(y-x) ;

5. Réaliser un Makefile

6. Modifier uniquement diff.c , créer uniquement un nouvel objet diff.o et recompiler l’ensemble comme
Précédemment. Tester

7. Créer dans votre répertoire de travail une bibliothèque libcalcul.a contenant les fichiers objets
somme.o et diff.o (seul main.c et calcul.h resteront dans le dossier de travail)

8. Donner la ligne de commande permettant de compiler main.c avec cette bibliothèque. Tester

Rappels sur les variables d’environnement


Les variables d’environnement sont des affectations de la forme

NOM=VALEUR

qui sont disponibles pour tous les processus du système, y compris les shells. Dans un shell, on peut avoir la
liste des varialbles d’environnement par la commande env. Par exemple, pour la variable d’environnement
PATH qui contient la liste des répertoires où le shell va chercher les commandes exécutables :

$ echo PATH
/ usr / l o c a l / bin :/ usr / bin :/ bin :/ usr / bin /X11
$ PATH=PATH :.
$ export PATH
$ env | grep PATH
PATH=/usr / l o c a l / bin :/ usr / bin :/ bin :/ usr / bin /X11 :.

la commande export permet de transmettre la valeur d’une variable d’environnement aux descendants d’un shell
(programmes lancés à partir du shell).

Vous aimerez peut-être aussi