python_icon

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:

# 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:

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$