
Programme 1: nombre premier
Ci-dessous un petit programme en C qui permet de déterminer si un nombre est premier ou non: is_prime.c
L'image ci-dessous montre:
- la version du compilateur gcc utilisé (gcc version 8.3.0)
- la commande qui permet de compiler notre (unique) fichier (gcc is_prime.c -o is_prime.o)
- quelques exécutions du programme sous kubuntu 19.04
# Version de gcc prabou@prabou-VPCZ23C5E:~/Téléchargements$ gcc --version gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # Version de gcov prabou@prabou-VPCZ23C5E:~/Téléchargements$ gcov --version gcov (Ubuntu 8.3.0-6ubuntu1) 8.3.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. prabou@prabou-VPCZ23C5E:~/Téléchargements$ gcc -fprofile-arcs -ftest-coverage is_prime.c -o is_prime.o prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.o Please enter the number: 37 The number is prime prabou@prabou-VPCZ23C5E:~/Téléchargements$ gcov is_prime.c File 'is_prime.c' Lines executed:75.00% of 12 Creating 'is_prime.c.gcov' # Installation de gcovr prabou@prabou-VPCZ23C5E:~/Téléchargements$ pip3 install gcovr Collecting gcovr Downloading https://files.pythonhosted.org/packages/65/3a/0b049c91cadaafa93cc7511aa2885b513e1ce71945a87d57858a06c9af47/gcovr-4.1-py2.py3-none-any.whl Collecting jinja2 (from gcovr) Downloading https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl (124kB) 100% |████████████████████████████████| 133kB 2.2MB/s Collecting MarkupSafe>=0.23 (from jinja2->gcovr) Downloading https://files.pythonhosted.org/packages/98/7b/ff284bd8c80654e471b769062a9b43cc5d03e7a615048d96f4619df8d420/MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl Installing collected packages: MarkupSafe, jinja2, gcovr Successfully installed MarkupSafe-1.1.1 gcovr-4.1 jinja2-2.10.1 # Compilation prabou@prabou-VPCZ23C5E:~/Téléchargements$ gcc -fprofile-arcs -ftest-coverage -g -O0 is_prime.c -o is_prime.o prabou@prabou-VPCZ23C5E:~/Téléchargements$ ./is_prime.o Please enter the number: 2047 The number is not prime # Instrumentation prabou@prabou-VPCZ23C5E:~/Téléchargements$ gcovr -r . --html --html-details -o coverage.html prabou@prabou-VPCZ23C5E:~/Téléchargements$ ls -lrt -rw-rw-r-- 1 prabou prabou 532 mai 23 19:01 is_prime.c -rw-rw-r-- 1 prabou prabou 904 mai 23 21:00 is_prime.gcno -rwxrwxr-x 1 prabou prabou 30272 mai 23 21:00 is_prime.o -rw-rw-r-- 1 prabou prabou 244 mai 23 21:00 is_prime.gcda -rw-rw-r-- 1 prabou prabou 7804 mai 23 21:01 coverage.html -rw-rw-r-- 1 prabou prabou 13989 mai 23 21:01 coverage.is_prime.c.html prabou@prabou-VPCZ23C5E:~/Téléchargements$Le fichier coverage.html ressemble à ceci:

Et si on clique sur is_prime.c on obtient ceci:

Programme 2: écrire dans un fichier
Ci-dessous un petit programme en C qui permet d'écrire dans un fichier: file_operations.c
L'image ci-dessous montre:
- la création puis l'ouverture du fichier test.txt en écriture ainsi que sa fermeture
- l'utilisation des fonctions fputc, fputs et fprintf
prabou@prabou-VPCZ23C5E:/tmp/mozilla_prabou0$ which gcc /usr/bin/gcc prabou@prabou-VPCZ23C5E:/tmp/mozilla_prabou0$ gcc --version gcc (Ubuntu 8.3.0-6ubuntu1) 8.3.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. prabou@prabou-VPCZ23C5E:/tmp/mozilla_prabou0$ gcc file_operations.c -o file_operations.o prabou@prabou-VPCZ23C5E:/tmp/mozilla_prabou0$ ls -ltr total 32 -r-------- 1 prabou prabou 945 oct. 27 11:38 file_operations.c -rwxrwxr-x 1 prabou prabou 16800 oct. 27 11:46 file_operations.o prabou@prabou-VPCZ23C5E:/tmp/mozilla_prabou0$ ./file_operations.o Quel age avez-vous ? 39 prabou@prabou-VPCZ23C5E:/tmp/mozilla_prabou0$ ls -ltr total 36 -r-------- 1 prabou prabou 945 oct. 27 11:38 file_operations.c -rwxrwxr-x 1 prabou prabou 16800 oct. 27 11:46 file_operations.o -rw-rw-r-- 1 prabou prabou 86 oct. 27 11:46 test.txt prabou@prabou-VPCZ23C5E:/tmp/mozilla_prabou0$ cat test.txt ASalut les Zer0s Comment allez-vous? Le Monsieur qui utilise le programme, il a 39 ans prabou@prabou-VPCZ23C5E:/tmp/mozilla_prabou0$