From 1bb0bc279e25bf8df5961afb5f76418cf3ef80ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Strebelle?= <sebastien.strebelle@uclouvain.be> Date: Fri, 13 Dec 2019 15:25:01 +0100 Subject: [PATCH] Really removed unneeded files --- Exercices/.gitkeep => .gitkeep | 0 Blog/.gitignore | 7 - Blog/2014/01/22/bienvenue.rst | 21 - Blog/conf.py | 93 - Blog/index.html | 8 - Blog/master.rst | 7 - Blog/pages/auteurs.rst | 18 - Blog/pages/exercices.rst | 16 - Blog/pages/outils.rst | 19 - Blog/pages/source.rst | 15 - Blog/pages/theorie.rst | 15 - Exercices/Programmes/prog-1.rst | 298 - Exercices/Programmes/prog-10.rst | 80 - Exercices/Programmes/prog-11.rst | 83 - Exercices/Programmes/prog-12.rst | 24 - Exercices/Programmes/prog-2.rst | 105 - Exercices/Programmes/prog-3.rst | 241 - Exercices/Programmes/prog-4-asm.rst | 93 - Exercices/Programmes/prog-4.rst | 173 - Exercices/Programmes/prog-5.rst | 167 - Exercices/Programmes/prog-6.rst | 196 - Exercices/Programmes/prog-7.rst | 120 - Exercices/Programmes/prog-8.rst | 79 - Exercices/Programmes/prog-9.rst.old | 105 - Exercices/Programmes/s2_perf.c | 53 - Exercices/Programmes/s2_qbf.c | 25 - Exercices/Programmes/src/alarm.c | 45 - Exercices/Programmes/src/alarm3.c | 57 - Exercices/Programmes/src/fork-perf.c | 47 - Exercices/Programmes/src/fork-pthread.c | 78 - Exercices/Programmes/src/fork-zombie.c | 45 - Exercices/Programmes/src/miniprojet.c | 134 - Exercices/Programmes/src/process-sem-after.c | 58 - Exercices/Programmes/src/process-sem-before.c | 56 - .../Programmes/src/prog-5-measure/Makefile | 18 - .../Programmes/src/prog-5-measure/compute.c | 84 - .../Programmes/src/prog-5-measure/compute.h | 17 - .../Programmes/src/prog-5-measure/main.c | 57 - .../src/prog-5-measure/prog-5-measure.tar.gz | Bin 1886 -> 0 bytes Exercices/Programmes/src/prog2.c | 156 - Exercices/Programmes/src/pthread-array.c | 50 - Exercices/Programmes/src/pthread-perf.c | 41 - Exercices/Programmes/src/pthread-philo-sem.c | 69 - Exercices/Programmes/src/pthread-philo.c | 68 - Exercices/Programmes/src/pthread-test.c | 56 - Exercices/Programmes/src/s4_qbf.c | 18 - Exercices/Programmes/src/stack.c | 96 - Exercices/Programmes/src/string.c | 60 - Exercices/Programmes/src/sumarray.c | 56 - Exercices/Programmes/src/vector.c | 59 - Exercices/Programmes/src/writeperf.c | 92 - Exercices/Projets/P1/Makefile | 12 - Exercices/Projets/P1/projet-1.rst.old | 43 - Exercices/Projets/P1/projet-1.tar.gz | Bin 3421 -> 0 bytes Exercices/Projets/P1/src/Makefile | 18 - Exercices/Projets/P1/src/bitstring.c | 1 - Exercices/Projets/P1/src/bitstring.h | 85 - Exercices/Projets/P1/src/test.c | 171 - Exercices/Projets/P2/Makefile | 13 - Exercices/Projets/P2/enonce.rst.old | 101 - Exercices/Projets/P2/projet-2.tar.gz | Bin 3076 -> 0 bytes Exercices/Projets/P2/src/bitmap.h | 40 - Exercices/Projets/P2/src/bitmapio.c | 184 - Exercices/Projets/P2/src/filter.h | 54 - Exercices/Projets/P2/src/filters.c | 15 - Exercices/Projets/P2/src/main.c | 28 - Exercices/Projets/P3/enonce.rst.old | 86 - Exercices/QCM/S1/Makefile | 29 - Exercices/QCM/S1/qcm-1.rst | 309 - Exercices/QCM/S11/Makefile | 28 - Exercices/QCM/S11/qcm-11.rst | 259 - Exercices/QCM/S2/Makefile | 29 - Exercices/QCM/S2/qcm-2.rst | 819 --- Exercices/QCM/S2/src/charcount.c | 43 - Exercices/QCM/S2/src/conversion.c | 27 - Exercices/QCM/S3/Makefile | 29 - Exercices/QCM/S3/qcm-3.rst | 590 -- Exercices/QCM/S4/Makefile | 30 - Exercices/QCM/S4/qcm-4.rst | 1536 ----- Exercices/QCM/S4/src/Makefile | 14 - Exercices/QCM/S4/src/asm1.c | 18 - Exercices/QCM/S4/src/asm2.c | 52 - Exercices/QCM/S4/src/asm3.c | 54 - Exercices/QCM/S4/src/asm_comp.c | 58 - Exercices/QCM/S4/src/asm_fct1.c | 51 - Exercices/QCM/S4/src/asm_fct2.c | 51 - Exercices/QCM/S4/src/asm_for.c | 68 - Exercices/QCM/S4/src/asm_ifelse.c | 68 - Exercices/QCM/S4/src/asm_max.c | 52 - Exercices/QCM/S4/src/asm_sumpair.c | 25 - Exercices/QCM/S4/src/asm_while.c | 68 - Exercices/QCM/S5/Makefile | 30 - Exercices/QCM/S5/qcm-5.rst | 613 -- Exercices/QCM/S5/src/Makefile | 16 - Exercices/QCM/S5/src/pthread_create.c | 63 - Exercices/QCM/S5/src/ptr1.c | 46 - Exercices/QCM/S5/src/ptr2.c | 36 - Exercices/QCM/S5/src/ptr3.c | 74 - Exercices/QCM/S5/src/ptr4.c | 78 - Exercices/QCM/S5/src/ptr5.c | 61 - Exercices/QCM/S5/src/thread1.c | 68 - Exercices/QCM/S5/src/thread_create.c | 54 - Exercices/QCM/S5/src/thread_create2.c | 54 - Exercices/QCM/S5/src/thread_create3.c | 54 - Exercices/QCM/S5/src/thread_create4.c | 55 - Exercices/QCM/S5/src/thread_create5.c | 53 - Exercices/QCM/S5/src/thread_createok.c | 54 - Exercices/QCM/S6/Makefile | 30 - Exercices/QCM/S6/qcm-6.rst | 501 -- Exercices/QCM/S6/src/pthread-mutex.c | 135 - Exercices/QCM/S7/Makefile | 30 - Exercices/QCM/S7/qcm-7.rst | 424 -- Exercices/QCM/S7/src/pthread-mutex-perf.c | 131 - Exercices/QCM/S7/src/pthread-sem.c | 61 - Exercices/QCM/S8/Makefile | 30 - Exercices/QCM/S8/qcm-8.rst | 455 -- Exercices/QCM/S8/src/execbomb.c | 29 - Exercices/QCM/S8/src/execswap.c | 0 Exercices/QCM/S8/src/execve.c | 50 - Exercices/QCM/S8/src/fork-wait.c | 1 - Exercices/QCM/S8/src/fork-wait2.c | 41 - Exercices/QCM/S8/src/nfork.c | 33 - Exercices/QCM/S8/src/waitpid.c | 21 - Exercices/QCM/S9/Makefile | 28 - Exercices/QCM/S9/qcm-9.rst | 505 -- Exercices/QCM/S9/src/readdir.c | 89 - Exercices/QCM/S9/src/readdir2.c | 76 - Exercices/QCM/qcm.rst.old | 45 - Exercices/QCM/rst-form/css/html4css1.css | 303 - Exercices/QCM/rst-form/css/prettify.css | 1 - Exercices/QCM/rst-form/css/pygments.css | 62 - Exercices/QCM/rst-form/css/rst-form.css | 62 - Exercices/QCM/rst-form/images/correct.png | Bin 1870 -> 0 bytes Exercices/QCM/rst-form/images/false.png | Bin 1099 -> 0 bytes Exercices/QCM/rst-form/js/jquery-1.7.2.min.js | 4 - .../QCM/rst-form/js/jquery-shuffle-another.js | 15 - Exercices/QCM/rst-form/js/jquery-shuffle.js | 28 - Exercices/QCM/rst-form/js/prettify.js | 28 - Exercices/QCM/rst-form/js/random_selector.js | 25 - Exercices/QCM/rst-form/js/rst-form.js | 43 - Exercices/QCM/rst-form/readme.txt | 5 - Exercices/QCM/rst-form/test.rst | 112 - Exercices/_static | 1 - Exercices/_templates/layout.html | 4 - Exercices/benchmark.rst.old | 39 - Exercices/bib.rst | 15 - Exercices/conf.py | 320 - Exercices/index.rst | 27 - Exercices/intro.rst | 220 - Exercices/mcq-ex/qcm-1.rst | 301 - Exercices/mcq-ex/qcm-10.rst | 228 - Exercices/mcq-ex/qcm-2.rst | 820 --- Exercices/mcq-ex/qcm-3.rst | 598 -- Exercices/mcq-ex/qcm-4-asm.rst | 1666 ----- Exercices/mcq-ex/qcm-4.rst | 315 - Exercices/mcq-ex/qcm-5.rst.old | 330 - Exercices/mcq-ex/qcm-6.rst | 722 --- Exercices/mcq-ex/qcm-7.rst | 445 -- Exercices/mcq-ex/qcm-8.rst | 488 -- Exercices/mcq-ex/qcm-9.rst | 534 -- Exercices/mcq-ex/revision.rst.old | 118 - Exercices/mcq/mcq.py | 414 -- Exercices/mcq/static/ext.css | 72 - Exercices/mcq/static/false.png | Bin 1099 -> 0 bytes Exercices/mcq/static/jquery-shuffle.js | 28 - Exercices/mcq/static/rst-form.js | 182 - Exercices/mcq/static/true.png | Bin 1870 -> 0 bytes Outils/.gitkeep | 0 Outils/Makefile | 161 - Outils/README.md | 1 - Outils/_static | 1 - Outils/_templates | 1 - Outils/bib.rst | 18 - Outils/conf.py | 312 - Outils/cunit.rst | 276 - Outils/figures/graph.dot | 35 - Outils/figures/graph.png | Bin 51948 -> 0 bytes Outils/figures/hello_2ff.dot | 17 - Outils/figures/hello_2ff.png | Bin 26426 -> 0 bytes Outils/figures/hello_branches.dot | 15 - Outils/figures/hello_branches.png | Bin 22908 -> 0 bytes Outils/figures/hello_dpid.dot | 24 - Outils/figures/hello_dpid.png | Bin 46080 -> 0 bytes Outils/figures/hello_fix.dot | 26 - Outils/figures/hello_fix.png | Bin 53857 -> 0 bytes Outils/figures/hello_intro.dot | 17 - Outils/figures/hello_intro.png | Bin 28273 -> 0 bytes Outils/figures/hello_make_universal.dot | 19 - Outils/figures/hello_make_universal.png | Bin 33221 -> 0 bytes Outils/figures/hello_makefile.dot | 21 - Outils/figures/hello_makefile.png | Bin 35866 -> 0 bytes Outils/figures/hello_merge_universal.dot | 29 - Outils/figures/hello_merge_universal.png | Bin 62349 -> 0 bytes Outils/figures/hello_pid_makefile.dot | 24 - Outils/figures/hello_pid_makefile.png | Bin 45865 -> 0 bytes Outils/figures/hello_ppid.dot | 26 - Outils/figures/hello_ppid.png | Bin 49504 -> 0 bytes Outils/figures/hello_universal_makefile.dot | 24 - Outils/figures/hello_universal_makefile.png | Bin 46353 -> 0 bytes Outils/figures/hello_with_gitignore.dot | 13 - Outils/figures/hello_with_gitignore.png | Bin 21564 -> 0 bytes Outils/figures/hello_with_return.dot | 11 - Outils/figures/hello_with_return.png | Bin 16732 -> 0 bytes Outils/figures/hello_without_return.dot | 9 - Outils/figures/hello_without_return.png | Bin 11159 -> 0 bytes Outils/gcc.rst | 38 - Outils/gdb.rst | 214 - Outils/git.rst | 2369 ------- Outils/gprof.rst | 11 - Outils/index.rst | 36 - Outils/intro-outils.rst | 47 - Outils/make.rst | 228 - Outils/processus.rst | 107 - Outils/shell.rst | 997 --- Outils/src/calc.c | 21 - Outils/src/cunit.c | 65 - Outils/src/getopt.c | 64 - Outils/src/getpid.c | 28 - Outils/src/malloc.c | Bin 10240 -> 0 bytes Outils/src/nofree.c | 9 - Outils/src/outofbounds.c | 11 - Outils/src/recursive.c | 29 - Outils/src/tab.c | 31 - Outils/src/thread_crash.c | 34 - Outils/src/twofree.c | 11 - Outils/ssh.rst | 92 - Outils/valgrind.rst | 238 - Theorie/.gitkeep | 0 .../Assembleur/fig/figures-memoire-001-c.png | Bin 21089 -> 0 bytes .../Assembleur/fig/figures-memoire-002-c.png | Bin 42312 -> 0 bytes .../Assembleur/fig/figures-memoire-003-c.png | Bin 39070 -> 0 bytes .../Assembleur/fig/figures-memoire-004-c.png | Bin 16349 -> 0 bytes .../Assembleur/fig/figures-memoire-005-c.png | Bin 18378 -> 0 bytes .../Assembleur/fig/figures-memoire-006-c.png | Bin 50581 -> 0 bytes .../Assembleur/fig/figures-memoire-007-c.png | Bin 35828 -> 0 bytes Theorie/Assembleur/memory.rst | 753 --- Theorie/Assembleur/src/argserror.c | 24 - Theorie/Assembleur/src/asm-exemples.c | 118 - Theorie/Assembleur/src/asm-intro.c | 54 - Theorie/Assembleur/src/backtrace.c | 56 - Theorie/Assembleur/src/fct.c | 22 - Theorie/Assembleur/src/fct2.c | 27 - Theorie/Assembleur/src/gdb.c | 31 - Theorie/Assembleur/src/gdbex.c | 21 - Theorie/Assembleur/src/goto.c | 40 - Theorie/Assembleur/src/memory.c | 34 - Theorie/Assembleur/src/nofree.c | 9 - Theorie/Assembleur/src/outofbounds.c | 11 - Theorie/Assembleur/src/proc.c | 27 - Theorie/Assembleur/src/proc2.c | 29 - Theorie/Assembleur/src/sumarray.c | 56 - Theorie/Assembleur/src/sumn.c | 34 - Theorie/Assembleur/src/twofree.c | 11 - Theorie/Assembleur/src/var.c | 17 - Theorie/C/S2-src/array.c | 97 - Theorie/C/S2-src/arrayvar.c | 46 - Theorie/C/S2-src/char-addr.c | 27 - Theorie/C/S2-src/char.c | 36 - Theorie/C/S2-src/exprbin.c | 104 - Theorie/C/S2-src/exprbin.out | 4 - Theorie/C/S2-src/fct.c | 79 - Theorie/C/S2-src/fct.h | 11 - Theorie/C/S2-src/fct.out | 5 - Theorie/C/S2-src/fctargs.c | 65 - Theorie/C/S2-src/foobar.c | 25 - Theorie/C/S2-src/int2bin.c | 36 - Theorie/C/S2-src/num.c | 24 - Theorie/C/S2-src/octal.c | 27 - Theorie/C/S2-src/perf.c | 53 - Theorie/C/S2-src/ptr.c | 28 - Theorie/C/S2-src/ptr.out | 3 - Theorie/C/S2-src/ptrchar.c | 34 - Theorie/C/S2-src/ptrex.c | 33 - Theorie/C/S2-src/ptrex.out | 6 - Theorie/C/S2-src/random.c | 29 - Theorie/C/S2-src/short.c | 34 - Theorie/C/S2-src/short.out | 22 - Theorie/C/S2-src/sizeof.c | 33 - Theorie/C/S2-src/sizeofptr.c | 32 - Theorie/C/S2-src/strlen.c | 39 - Theorie/C/S2-src/strlenptr.c | 36 - Theorie/C/S2-src/struct.c | 103 - Theorie/C/S2-src/structptr.c | 37 - Theorie/C/S2-src/time.c | 69 - Theorie/C/S2-src/toupper.c | 31 - Theorie/C/S2-src/typedef.c | 37 - Theorie/C/S2-src/xor.c | 34 - Theorie/C/S3-src/argv-env.c | 42 - Theorie/C/S3-src/callocperf.c | 39 - Theorie/C/S3-src/const.c | 29 - Theorie/C/S3-src/dataseg.c | 32 - Theorie/C/S3-src/dataseg.out | 3 - Theorie/C/S3-src/empty.c | 17 - Theorie/C/S3-src/enum.c | 44 - Theorie/C/S3-src/exhaust-stack.c | 47 - Theorie/C/S3-src/fact.c | 82 - Theorie/C/S3-src/fact.out | 22 - Theorie/C/S3-src/getpid.c | 28 - Theorie/C/S3-src/initvar.c | 50 - Theorie/C/S3-src/initvar.out | 2 - Theorie/C/S3-src/malloc.c | 55 - Theorie/C/S3-src/malloc.out | 3 - Theorie/C/S3-src/mallocinit.c | 34 - Theorie/C/S3-src/mallocinit.out | 2 - Theorie/C/S3-src/mallocperf.c | 57 - Theorie/C/S3-src/nofree.c | 21 - Theorie/C/S3-src/portee.c | 62 - Theorie/C/S3-src/portee.out | 13 - Theorie/C/S3-src/stack.c | 96 - Theorie/C/S3-src/stack.out | 9 - Theorie/C/S3-src/static.c | 24 - Theorie/C/S3-src/strcat.c | 56 - Theorie/C/S3-src/strcpy.c | 46 - Theorie/C/S3-src/structargs.c | 72 - Theorie/C/S3-src/typecast.c | 26 - Theorie/C/S3-src/union.c | 61 - Theorie/C/S3-src/var.c | 17 - Theorie/C/S3-src/vector.c | 59 - Theorie/C/S5-src/Makefile2 | 21 - Theorie/C/S5-src/errno.c | 24 - Theorie/C/S5-src/fctptr.c | 45 - Theorie/C/S5-src/main.c | 18 - Theorie/C/S5-src/min.c | 17 - Theorie/C/S5-src/min.h | 13 - Theorie/C/S5-src/module.c | 31 - Theorie/C/S5-src/module.h | 12 - Theorie/C/S5-src/mystrtol.c | 46 - Theorie/C/S5-src/prog.c | 39 - Theorie/C/S5-src/prog.out | 5 - Theorie/C/S5-src/ptrptr.c | 24 - Theorie/C/S5-src/qsort.c | 41 - Theorie/C/S5-src/strtol.c | 34 - Theorie/C/S5-src/strtol.out | 3 - Theorie/C/datatypes.rst | 1022 --- Theorie/C/figures/figures-001-c.png | Bin 23631 -> 0 bytes Theorie/C/figures/figures-007-c.png | Bin 70203 -> 0 bytes Theorie/C/intro-C.rst | 229 - Theorie/C/linker.rst | 247 - Theorie/C/malloc.rst | 408 -- Theorie/C/src/cmdline.c | 19 - Theorie/C/src/cmdline.out | 6 - Theorie/C/src/failure.c | 13 - Theorie/C/src/filterdigit.c | 41 - Theorie/C/src/hello.c | 18 - Theorie/C/src/printf.c | 37 - Theorie/C/src/printf.out | 10 - Theorie/C/src/ptr_arith.c | 46 - Theorie/C/src/string.c | 26 - Theorie/C/svg/Float_example.png | Bin 5560 -> 0 bytes Theorie/C/svg/Float_example.svg | 715 --- Theorie/Fichiers/fichiers-signaux.rst | 566 -- Theorie/Fichiers/fichiers.rst | 445 -- Theorie/Fichiers/fig/500px-Big-Endian.png | Bin 19971 -> 0 bytes Theorie/Fichiers/fig/500px-Little-Endian.png | Bin 18610 -> 0 bytes Theorie/Fichiers/fig/Big-Endian.svg | 363 -- Theorie/Fichiers/fig/Little-Endian.svg | 358 -- Theorie/Fichiers/fig/figures-10-001-c.png | Bin 62694 -> 0 bytes Theorie/Fichiers/fig/figures-10-002-c.png | Bin 58663 -> 0 bytes Theorie/Fichiers/fig/figures-10-003-c.png | Bin 59621 -> 0 bytes Theorie/Fichiers/fig/figures-10-004-c.png | Bin 66011 -> 0 bytes Theorie/Fichiers/fig/figures-10.001.png | Bin 75704 -> 0 bytes Theorie/Fichiers/fig/figures-10.002.png | Bin 68490 -> 0 bytes Theorie/Fichiers/fig/figures-10.003.png | Bin 68545 -> 0 bytes Theorie/Fichiers/fig/figures-10.004.png | Bin 76810 -> 0 bytes Theorie/Fichiers/src/a.out | Bin 9064 -> 0 bytes Theorie/Fichiers/src/alarm.c | 45 - Theorie/Fichiers/src/alarm.out | 2 - Theorie/Fichiers/src/alarm2.c | 58 - Theorie/Fichiers/src/fork-pipe.c | 80 - Theorie/Fichiers/src/longjmp.c | 36 - Theorie/Fichiers/src/longjmp.out | 4 - Theorie/Fichiers/src/nkill.sh | 12 - Theorie/Fichiers/src/process-sem-after.c | 58 - Theorie/Fichiers/src/process-sem-before.c | 56 - Theorie/Fichiers/src/read.c | 90 - Theorie/Fichiers/src/read.out | 6 - Theorie/Fichiers/src/readdir.c | 38 - Theorie/Fichiers/src/sigfpe.c | 21 - Theorie/Fichiers/src/sigfpe2.c | 50 - Theorie/Fichiers/src/sigfpe3.c | 53 - Theorie/Fichiers/src/sigusr.c | 59 - Theorie/Fichiers/src/sigusrcount.c | 41 - Theorie/Makefile | 161 - .../MemoireVirtuelle/fig/addrvirtuelle.png | Bin 37804 -> 0 bytes .../MemoireVirtuelle/fig/entreeComplete.png | Bin 44478 -> 0 bytes Theorie/MemoireVirtuelle/fig/entreeTable.png | Bin 32853 -> 0 bytes Theorie/MemoireVirtuelle/fig/fichierMappe.png | Bin 83392 -> 0 bytes .../MemoireVirtuelle/fig/memoireVirtuelle.png | Bin 50707 -> 0 bytes Theorie/MemoireVirtuelle/fig/mmu.png | Bin 33329 -> 0 bytes Theorie/MemoireVirtuelle/fig/orgMemoire.png | Bin 29361 -> 0 bytes Theorie/MemoireVirtuelle/fig/proc-mem.png | Bin 17275 -> 0 bytes Theorie/MemoireVirtuelle/fig/tablePages.png | Bin 115537 -> 0 bytes Theorie/MemoireVirtuelle/fig/traduction.png | Bin 52802 -> 0 bytes Theorie/MemoireVirtuelle/fig/vmem.png | Bin 48105 -> 0 bytes Theorie/MemoireVirtuelle/src/Makefile | 36 - Theorie/MemoireVirtuelle/src/cp2.c | 91 - Theorie/MemoireVirtuelle/src/cp2.out | 0 Theorie/MemoireVirtuelle/src/mincore.c | 65 - Theorie/MemoireVirtuelle/src/mincore.out | 10 - Theorie/MemoireVirtuelle/src/mmap.c | 72 - Theorie/MemoireVirtuelle/src/mmap.out | 0 Theorie/MemoireVirtuelle/src/simple.c | 19 - Theorie/MemoireVirtuelle/src/svshm_xfr.h | 43 - .../MemoireVirtuelle/src/svshm_xfr_writer.c | 98 - Theorie/MemoireVirtuelle/vmem.rst | 666 -- Theorie/Threads/S5-src/errno.c | 24 - Theorie/Threads/S5-src/fctptr.c | 45 - Theorie/Threads/S5-src/main.c | 18 - Theorie/Threads/S5-src/math.c | 16 - Theorie/Threads/S5-src/min-ex.c | 24 - Theorie/Threads/S5-src/min.c | 17 - Theorie/Threads/S5-src/module.c | 31 - Theorie/Threads/S5-src/mystrtol.c | 46 - Theorie/Threads/S5-src/prog.c | 39 - Theorie/Threads/S5-src/pthread-args.c | 88 - Theorie/Threads/S5-src/pthread-array.c | 51 - Theorie/Threads/S5-src/pthread-neg.c | 51 - Theorie/Threads/S5-src/pthread-neg2.c | 54 - Theorie/Threads/S5-src/pthread-test-if.c | 77 - Theorie/Threads/S5-src/pthread-test.c | 56 - Theorie/Threads/S5-src/pthread.c | 57 - Theorie/Threads/S5-src/ptr-char.c | 21 - Theorie/Threads/S5-src/ptr.c | 38 - Theorie/Threads/S5-src/ptrptr.c | 24 - Theorie/Threads/S5-src/qsort.c | 41 - Theorie/Threads/S5-src/strip.c | 53 - Theorie/Threads/S5-src/strsep.c | 46 - Theorie/Threads/S5-src/strtol.c | 34 - Theorie/Threads/S5-src/sudoku.c | 99 - Theorie/Threads/S6-fig/figures-001-c.png | Bin 86905 -> 0 bytes Theorie/Threads/S6-fig/figures-002-c.png | Bin 15045 -> 0 bytes Theorie/Threads/S6-fig/figures-003-c.png | Bin 55456 -> 0 bytes Theorie/Threads/S6-fig/figures.001.png | Bin 99300 -> 0 bytes Theorie/Threads/S6-fig/figures.002.png | Bin 33985 -> 0 bytes Theorie/Threads/S6-fig/figures.003.png | Bin 72913 -> 0 bytes Theorie/Threads/S6-src/Makefile | 36 - Theorie/Threads/S6-src/arraylist.c | 53 - Theorie/Threads/S6-src/arraylist2.c | 50 - Theorie/Threads/S6-src/pthread-mutex-perf.c | 116 - Theorie/Threads/S6-src/pthread-mutex.c | 75 - Theorie/Threads/S6-src/pthread-mutex.out | 1 - Theorie/Threads/S6-src/pthread-neg2.c | 51 - Theorie/Threads/S6-src/pthread-neg2.out | 4 - Theorie/Threads/S6-src/pthread-philo.c | 68 - Theorie/Threads/S6-src/pthread-philo2.c | 95 - Theorie/Threads/S6-src/pthread-spin.c | 66 - Theorie/Threads/S6-src/pthread-test-if.c | 77 - Theorie/Threads/S6-src/pthread.c | 71 - Theorie/Threads/S6-src/thread_crash.c | 34 - Theorie/Threads/S7-src/Makefile | 36 - Theorie/Threads/S7-src/pthread-barrier.c | 70 - Theorie/Threads/S7-src/pthread-id.c | 95 - Theorie/Threads/S7-src/pthread-philo-sem.c | 69 - Theorie/Threads/S7-src/pthread-rw.c | 76 - Theorie/Threads/S7-src/pthread-sem-before.c | 70 - Theorie/Threads/S7-src/pthread-sem-before.out | 0 Theorie/Threads/S7-src/pthread-sem.c | 64 - Theorie/Threads/S7-src/pthread-sem.out | 1 - Theorie/Threads/S7-src/pthread-specific.c | 56 - Theorie/Threads/S7-src/pthread-specific.out | 4 - Theorie/Threads/S7-src/pthread-specific2.c | 77 - Theorie/Threads/S7-src/pthread-specific2.out | 4 - Theorie/Threads/S7-src/reentrant.c | 63 - Theorie/Threads/S7-src/strerror.c | 21 - Theorie/Threads/S8-src/Makefile | 36 - Theorie/Threads/S8-src/Makefile-lib | 30 - Theorie/Threads/S8-src/atexit.c | 27 - Theorie/Threads/S8-src/execve-long.c | 32 - Theorie/Threads/S8-src/execve.c | 30 - Theorie/Threads/S8-src/execve.out | 1 - Theorie/Threads/S8-src/fork-buf.c | 58 - Theorie/Threads/S8-src/fork-execve.c | 57 - Theorie/Threads/S8-src/fork-manyexec.c | 64 - Theorie/Threads/S8-src/fork-manyexec.out | 7 - Theorie/Threads/S8-src/fork-nice.c | 67 - Theorie/Threads/S8-src/fork-orphan.c | 41 - Theorie/Threads/S8-src/fork-orphan.out | 3 - Theorie/Threads/S8-src/fork-perf.c | 47 - Theorie/Threads/S8-src/fork-pthread.c | 78 - Theorie/Threads/S8-src/fork-wait.c | 51 - Theorie/Threads/S8-src/fork-zombie.c | 45 - Theorie/Threads/S8-src/fork.c | 49 - Theorie/Threads/S8-src/fork.out | 2 - Theorie/Threads/S8-src/getpid.c | 21 - Theorie/Threads/S8-src/imath.c | 20 - Theorie/Threads/S8-src/imax.c | 14 - Theorie/Threads/S8-src/imax.h | 12 - Theorie/Threads/S8-src/math.c | 21 - Theorie/Threads/S8-src/max.c | 20 - Theorie/Threads/S8-src/mini8.c | 117 - Theorie/Threads/S8-src/pthread-perf.c | 41 - Theorie/Threads/S8-src/script.sh | 22 - Theorie/Threads/S8-src/syscall.c | 20 - Theorie/Threads/S8-src/test.tail | 3 - Theorie/Threads/coordination.rst | 419 -- .../188px-Matrix_multiplication_diagram.png | Bin 6131 -> 0 bytes Theorie/Threads/figures/500px-AmdahlsLaw.png | Bin 31597 -> 0 bytes ...ransistor_Count_and_Moore's_Law_-_2011.png | Bin 35537 -> 0 bytes Theorie/Threads/figures/figures-001-c.png | Bin 45399 -> 0 bytes Theorie/Threads/figures/figures-002-c.png | Bin 41333 -> 0 bytes Theorie/Threads/figures/figures-S7-001-c.png | Bin 16404 -> 0 bytes Theorie/Threads/figures/figures-S7.001.png | Bin 32436 -> 0 bytes Theorie/Threads/figures/figures.001.png | Bin 58759 -> 0 bytes Theorie/Threads/figures/figures.002.png | Bin 55346 -> 0 bytes Theorie/Threads/figures/figures.003.png | Bin 38500 -> 0 bytes Theorie/Threads/figures/figures.004.png | Bin 39800 -> 0 bytes Theorie/Threads/figures/figures.005.png | Bin 41523 -> 0 bytes Theorie/Threads/figures/figures.006.png | Bin 50146 -> 0 bytes Theorie/Threads/figures/figures.007.png | Bin 71209 -> 0 bytes Theorie/Threads/processus.rst | 646 -- Theorie/Threads/threads.rst | 226 - Theorie/Threads/threads2.rst | 321 - Theorie/_static | 1 - Theorie/_templates/layout.html | 4 - Theorie/bib.rst | 175 - Theorie/conf.py | 323 - Theorie/glossaire.rst | 408 -- Theorie/incl_links.rst | 918 --- Theorie/index.rst | 73 - Theorie/intro.rst | 248 - Theorie/links.rst | 18 - Theorie/man_links.rst | 5459 ----------------- Theorie/src/args.out | 3 - Theorie/src/args.sh | 6 - Theorie/src/args.sh.out | 3 - Theorie/src/cmdline.c | 19 - Theorie/src/cmdline.out | 6 - Theorie/src/eq.sh | 12 - Theorie/src/exemple.out | 10 - Theorie/src/exemple2.out | 6 - Theorie/src/exemple3.out | 12 - Theorie/src/failure.c | 10 - Theorie/src/filterdigit.c | 36 - Theorie/src/hello.c | 17 - Theorie/src/hello.sh | 2 - Theorie/src/hello.sh.out | 1 - Theorie/src/hellovar.sh | 4 - Theorie/src/printf.c | 29 - Theorie/src/printf.out | 10 - Theorie/src/wordin.sh | 17 - empty.rst | 4 - qcmMalloc.rst | 344 -- 542 files changed, 51289 deletions(-) rename Exercices/.gitkeep => .gitkeep (100%) delete mode 100644 Blog/.gitignore delete mode 100644 Blog/2014/01/22/bienvenue.rst delete mode 100644 Blog/conf.py delete mode 100644 Blog/index.html delete mode 100644 Blog/master.rst delete mode 100644 Blog/pages/auteurs.rst delete mode 100644 Blog/pages/exercices.rst delete mode 100644 Blog/pages/outils.rst delete mode 100644 Blog/pages/source.rst delete mode 100644 Blog/pages/theorie.rst delete mode 100644 Exercices/Programmes/prog-1.rst delete mode 100644 Exercices/Programmes/prog-10.rst delete mode 100644 Exercices/Programmes/prog-11.rst delete mode 100644 Exercices/Programmes/prog-12.rst delete mode 100644 Exercices/Programmes/prog-2.rst delete mode 100644 Exercices/Programmes/prog-3.rst delete mode 100644 Exercices/Programmes/prog-4-asm.rst delete mode 100644 Exercices/Programmes/prog-4.rst delete mode 100644 Exercices/Programmes/prog-5.rst delete mode 100644 Exercices/Programmes/prog-6.rst delete mode 100644 Exercices/Programmes/prog-7.rst delete mode 100644 Exercices/Programmes/prog-8.rst delete mode 100644 Exercices/Programmes/prog-9.rst.old delete mode 100644 Exercices/Programmes/s2_perf.c delete mode 100644 Exercices/Programmes/s2_qbf.c delete mode 100644 Exercices/Programmes/src/alarm.c delete mode 100644 Exercices/Programmes/src/alarm3.c delete mode 100644 Exercices/Programmes/src/fork-perf.c delete mode 100644 Exercices/Programmes/src/fork-pthread.c delete mode 100644 Exercices/Programmes/src/fork-zombie.c delete mode 100644 Exercices/Programmes/src/miniprojet.c delete mode 100644 Exercices/Programmes/src/process-sem-after.c delete mode 100644 Exercices/Programmes/src/process-sem-before.c delete mode 100644 Exercices/Programmes/src/prog-5-measure/Makefile delete mode 100644 Exercices/Programmes/src/prog-5-measure/compute.c delete mode 100644 Exercices/Programmes/src/prog-5-measure/compute.h delete mode 100644 Exercices/Programmes/src/prog-5-measure/main.c delete mode 100644 Exercices/Programmes/src/prog-5-measure/prog-5-measure.tar.gz delete mode 100644 Exercices/Programmes/src/prog2.c delete mode 100644 Exercices/Programmes/src/pthread-array.c delete mode 100644 Exercices/Programmes/src/pthread-perf.c delete mode 100644 Exercices/Programmes/src/pthread-philo-sem.c delete mode 100644 Exercices/Programmes/src/pthread-philo.c delete mode 100644 Exercices/Programmes/src/pthread-test.c delete mode 100644 Exercices/Programmes/src/s4_qbf.c delete mode 100644 Exercices/Programmes/src/stack.c delete mode 100644 Exercices/Programmes/src/string.c delete mode 100644 Exercices/Programmes/src/sumarray.c delete mode 100644 Exercices/Programmes/src/vector.c delete mode 100644 Exercices/Programmes/src/writeperf.c delete mode 100644 Exercices/Projets/P1/Makefile delete mode 100644 Exercices/Projets/P1/projet-1.rst.old delete mode 100644 Exercices/Projets/P1/projet-1.tar.gz delete mode 100644 Exercices/Projets/P1/src/Makefile delete mode 100644 Exercices/Projets/P1/src/bitstring.c delete mode 100644 Exercices/Projets/P1/src/bitstring.h delete mode 100644 Exercices/Projets/P1/src/test.c delete mode 100644 Exercices/Projets/P2/Makefile delete mode 100644 Exercices/Projets/P2/enonce.rst.old delete mode 100644 Exercices/Projets/P2/projet-2.tar.gz delete mode 100644 Exercices/Projets/P2/src/bitmap.h delete mode 100644 Exercices/Projets/P2/src/bitmapio.c delete mode 100644 Exercices/Projets/P2/src/filter.h delete mode 100644 Exercices/Projets/P2/src/filters.c delete mode 100644 Exercices/Projets/P2/src/main.c delete mode 100644 Exercices/Projets/P3/enonce.rst.old delete mode 100755 Exercices/QCM/S1/Makefile delete mode 100644 Exercices/QCM/S1/qcm-1.rst delete mode 100755 Exercices/QCM/S11/Makefile delete mode 100644 Exercices/QCM/S11/qcm-11.rst delete mode 100755 Exercices/QCM/S2/Makefile delete mode 100644 Exercices/QCM/S2/qcm-2.rst delete mode 100644 Exercices/QCM/S2/src/charcount.c delete mode 100644 Exercices/QCM/S2/src/conversion.c delete mode 100755 Exercices/QCM/S3/Makefile delete mode 100644 Exercices/QCM/S3/qcm-3.rst delete mode 100755 Exercices/QCM/S4/Makefile delete mode 100644 Exercices/QCM/S4/qcm-4.rst delete mode 100644 Exercices/QCM/S4/src/Makefile delete mode 100644 Exercices/QCM/S4/src/asm1.c delete mode 100644 Exercices/QCM/S4/src/asm2.c delete mode 100644 Exercices/QCM/S4/src/asm3.c delete mode 100644 Exercices/QCM/S4/src/asm_comp.c delete mode 100644 Exercices/QCM/S4/src/asm_fct1.c delete mode 100644 Exercices/QCM/S4/src/asm_fct2.c delete mode 100644 Exercices/QCM/S4/src/asm_for.c delete mode 100644 Exercices/QCM/S4/src/asm_ifelse.c delete mode 100644 Exercices/QCM/S4/src/asm_max.c delete mode 100644 Exercices/QCM/S4/src/asm_sumpair.c delete mode 100644 Exercices/QCM/S4/src/asm_while.c delete mode 100755 Exercices/QCM/S5/Makefile delete mode 100644 Exercices/QCM/S5/qcm-5.rst delete mode 100644 Exercices/QCM/S5/src/Makefile delete mode 100644 Exercices/QCM/S5/src/pthread_create.c delete mode 100644 Exercices/QCM/S5/src/ptr1.c delete mode 100644 Exercices/QCM/S5/src/ptr2.c delete mode 100644 Exercices/QCM/S5/src/ptr3.c delete mode 100644 Exercices/QCM/S5/src/ptr4.c delete mode 100644 Exercices/QCM/S5/src/ptr5.c delete mode 100644 Exercices/QCM/S5/src/thread1.c delete mode 100644 Exercices/QCM/S5/src/thread_create.c delete mode 100644 Exercices/QCM/S5/src/thread_create2.c delete mode 100644 Exercices/QCM/S5/src/thread_create3.c delete mode 100644 Exercices/QCM/S5/src/thread_create4.c delete mode 100644 Exercices/QCM/S5/src/thread_create5.c delete mode 100644 Exercices/QCM/S5/src/thread_createok.c delete mode 100755 Exercices/QCM/S6/Makefile delete mode 100644 Exercices/QCM/S6/qcm-6.rst delete mode 100644 Exercices/QCM/S6/src/pthread-mutex.c delete mode 100755 Exercices/QCM/S7/Makefile delete mode 100644 Exercices/QCM/S7/qcm-7.rst delete mode 100644 Exercices/QCM/S7/src/pthread-mutex-perf.c delete mode 100644 Exercices/QCM/S7/src/pthread-sem.c delete mode 100755 Exercices/QCM/S8/Makefile delete mode 100644 Exercices/QCM/S8/qcm-8.rst delete mode 100644 Exercices/QCM/S8/src/execbomb.c delete mode 100644 Exercices/QCM/S8/src/execswap.c delete mode 100644 Exercices/QCM/S8/src/execve.c delete mode 100644 Exercices/QCM/S8/src/fork-wait.c delete mode 100644 Exercices/QCM/S8/src/fork-wait2.c delete mode 100644 Exercices/QCM/S8/src/nfork.c delete mode 100644 Exercices/QCM/S8/src/waitpid.c delete mode 100755 Exercices/QCM/S9/Makefile delete mode 100644 Exercices/QCM/S9/qcm-9.rst delete mode 100644 Exercices/QCM/S9/src/readdir.c delete mode 100644 Exercices/QCM/S9/src/readdir2.c delete mode 100644 Exercices/QCM/qcm.rst.old delete mode 100644 Exercices/QCM/rst-form/css/html4css1.css delete mode 100644 Exercices/QCM/rst-form/css/prettify.css delete mode 100644 Exercices/QCM/rst-form/css/pygments.css delete mode 100644 Exercices/QCM/rst-form/css/rst-form.css delete mode 100644 Exercices/QCM/rst-form/images/correct.png delete mode 100644 Exercices/QCM/rst-form/images/false.png delete mode 100644 Exercices/QCM/rst-form/js/jquery-1.7.2.min.js delete mode 100644 Exercices/QCM/rst-form/js/jquery-shuffle-another.js delete mode 100644 Exercices/QCM/rst-form/js/jquery-shuffle.js delete mode 100644 Exercices/QCM/rst-form/js/prettify.js delete mode 100644 Exercices/QCM/rst-form/js/random_selector.js delete mode 100644 Exercices/QCM/rst-form/js/rst-form.js delete mode 100644 Exercices/QCM/rst-form/readme.txt delete mode 100644 Exercices/QCM/rst-form/test.rst delete mode 120000 Exercices/_static delete mode 100644 Exercices/_templates/layout.html delete mode 100644 Exercices/benchmark.rst.old delete mode 100644 Exercices/bib.rst delete mode 100644 Exercices/conf.py delete mode 100644 Exercices/index.rst delete mode 100644 Exercices/intro.rst delete mode 100644 Exercices/mcq-ex/qcm-1.rst delete mode 100644 Exercices/mcq-ex/qcm-10.rst delete mode 100644 Exercices/mcq-ex/qcm-2.rst delete mode 100644 Exercices/mcq-ex/qcm-3.rst delete mode 100644 Exercices/mcq-ex/qcm-4-asm.rst delete mode 100644 Exercices/mcq-ex/qcm-4.rst delete mode 100644 Exercices/mcq-ex/qcm-5.rst.old delete mode 100644 Exercices/mcq-ex/qcm-6.rst delete mode 100644 Exercices/mcq-ex/qcm-7.rst delete mode 100644 Exercices/mcq-ex/qcm-8.rst delete mode 100644 Exercices/mcq-ex/qcm-9.rst delete mode 100644 Exercices/mcq-ex/revision.rst.old delete mode 100644 Exercices/mcq/mcq.py delete mode 100644 Exercices/mcq/static/ext.css delete mode 100644 Exercices/mcq/static/false.png delete mode 100644 Exercices/mcq/static/jquery-shuffle.js delete mode 100644 Exercices/mcq/static/rst-form.js delete mode 100644 Exercices/mcq/static/true.png delete mode 100644 Outils/.gitkeep delete mode 100644 Outils/Makefile delete mode 100644 Outils/README.md delete mode 120000 Outils/_static delete mode 120000 Outils/_templates delete mode 100644 Outils/bib.rst delete mode 100644 Outils/conf.py delete mode 100644 Outils/cunit.rst delete mode 100644 Outils/figures/graph.dot delete mode 100644 Outils/figures/graph.png delete mode 100644 Outils/figures/hello_2ff.dot delete mode 100644 Outils/figures/hello_2ff.png delete mode 100644 Outils/figures/hello_branches.dot delete mode 100644 Outils/figures/hello_branches.png delete mode 100644 Outils/figures/hello_dpid.dot delete mode 100644 Outils/figures/hello_dpid.png delete mode 100644 Outils/figures/hello_fix.dot delete mode 100644 Outils/figures/hello_fix.png delete mode 100644 Outils/figures/hello_intro.dot delete mode 100644 Outils/figures/hello_intro.png delete mode 100644 Outils/figures/hello_make_universal.dot delete mode 100644 Outils/figures/hello_make_universal.png delete mode 100644 Outils/figures/hello_makefile.dot delete mode 100644 Outils/figures/hello_makefile.png delete mode 100644 Outils/figures/hello_merge_universal.dot delete mode 100644 Outils/figures/hello_merge_universal.png delete mode 100644 Outils/figures/hello_pid_makefile.dot delete mode 100644 Outils/figures/hello_pid_makefile.png delete mode 100644 Outils/figures/hello_ppid.dot delete mode 100644 Outils/figures/hello_ppid.png delete mode 100644 Outils/figures/hello_universal_makefile.dot delete mode 100644 Outils/figures/hello_universal_makefile.png delete mode 100644 Outils/figures/hello_with_gitignore.dot delete mode 100644 Outils/figures/hello_with_gitignore.png delete mode 100644 Outils/figures/hello_with_return.dot delete mode 100644 Outils/figures/hello_with_return.png delete mode 100644 Outils/figures/hello_without_return.dot delete mode 100644 Outils/figures/hello_without_return.png delete mode 100644 Outils/gcc.rst delete mode 100644 Outils/gdb.rst delete mode 100644 Outils/git.rst delete mode 100644 Outils/gprof.rst delete mode 100644 Outils/index.rst delete mode 100644 Outils/intro-outils.rst delete mode 100644 Outils/make.rst delete mode 100644 Outils/processus.rst delete mode 100644 Outils/shell.rst delete mode 100644 Outils/src/calc.c delete mode 100644 Outils/src/cunit.c delete mode 100644 Outils/src/getopt.c delete mode 100644 Outils/src/getpid.c delete mode 100644 Outils/src/malloc.c delete mode 100644 Outils/src/nofree.c delete mode 100644 Outils/src/outofbounds.c delete mode 100644 Outils/src/recursive.c delete mode 100644 Outils/src/tab.c delete mode 100644 Outils/src/thread_crash.c delete mode 100644 Outils/src/twofree.c delete mode 100644 Outils/ssh.rst delete mode 100644 Outils/valgrind.rst delete mode 100644 Theorie/.gitkeep delete mode 100644 Theorie/Assembleur/fig/figures-memoire-001-c.png delete mode 100644 Theorie/Assembleur/fig/figures-memoire-002-c.png delete mode 100644 Theorie/Assembleur/fig/figures-memoire-003-c.png delete mode 100644 Theorie/Assembleur/fig/figures-memoire-004-c.png delete mode 100644 Theorie/Assembleur/fig/figures-memoire-005-c.png delete mode 100644 Theorie/Assembleur/fig/figures-memoire-006-c.png delete mode 100644 Theorie/Assembleur/fig/figures-memoire-007-c.png delete mode 100644 Theorie/Assembleur/memory.rst delete mode 100644 Theorie/Assembleur/src/argserror.c delete mode 100644 Theorie/Assembleur/src/asm-exemples.c delete mode 100644 Theorie/Assembleur/src/asm-intro.c delete mode 100644 Theorie/Assembleur/src/backtrace.c delete mode 100644 Theorie/Assembleur/src/fct.c delete mode 100644 Theorie/Assembleur/src/fct2.c delete mode 100644 Theorie/Assembleur/src/gdb.c delete mode 100644 Theorie/Assembleur/src/gdbex.c delete mode 100644 Theorie/Assembleur/src/goto.c delete mode 100644 Theorie/Assembleur/src/memory.c delete mode 100644 Theorie/Assembleur/src/nofree.c delete mode 100644 Theorie/Assembleur/src/outofbounds.c delete mode 100644 Theorie/Assembleur/src/proc.c delete mode 100644 Theorie/Assembleur/src/proc2.c delete mode 100644 Theorie/Assembleur/src/sumarray.c delete mode 100644 Theorie/Assembleur/src/sumn.c delete mode 100644 Theorie/Assembleur/src/twofree.c delete mode 100644 Theorie/Assembleur/src/var.c delete mode 100644 Theorie/C/S2-src/array.c delete mode 100644 Theorie/C/S2-src/arrayvar.c delete mode 100644 Theorie/C/S2-src/char-addr.c delete mode 100644 Theorie/C/S2-src/char.c delete mode 100644 Theorie/C/S2-src/exprbin.c delete mode 100644 Theorie/C/S2-src/exprbin.out delete mode 100644 Theorie/C/S2-src/fct.c delete mode 100644 Theorie/C/S2-src/fct.h delete mode 100644 Theorie/C/S2-src/fct.out delete mode 100644 Theorie/C/S2-src/fctargs.c delete mode 100644 Theorie/C/S2-src/foobar.c delete mode 100644 Theorie/C/S2-src/int2bin.c delete mode 100644 Theorie/C/S2-src/num.c delete mode 100644 Theorie/C/S2-src/octal.c delete mode 100644 Theorie/C/S2-src/perf.c delete mode 100644 Theorie/C/S2-src/ptr.c delete mode 100644 Theorie/C/S2-src/ptr.out delete mode 100644 Theorie/C/S2-src/ptrchar.c delete mode 100644 Theorie/C/S2-src/ptrex.c delete mode 100644 Theorie/C/S2-src/ptrex.out delete mode 100644 Theorie/C/S2-src/random.c delete mode 100644 Theorie/C/S2-src/short.c delete mode 100644 Theorie/C/S2-src/short.out delete mode 100644 Theorie/C/S2-src/sizeof.c delete mode 100644 Theorie/C/S2-src/sizeofptr.c delete mode 100644 Theorie/C/S2-src/strlen.c delete mode 100644 Theorie/C/S2-src/strlenptr.c delete mode 100644 Theorie/C/S2-src/struct.c delete mode 100644 Theorie/C/S2-src/structptr.c delete mode 100644 Theorie/C/S2-src/time.c delete mode 100644 Theorie/C/S2-src/toupper.c delete mode 100644 Theorie/C/S2-src/typedef.c delete mode 100644 Theorie/C/S2-src/xor.c delete mode 100644 Theorie/C/S3-src/argv-env.c delete mode 100644 Theorie/C/S3-src/callocperf.c delete mode 100644 Theorie/C/S3-src/const.c delete mode 100644 Theorie/C/S3-src/dataseg.c delete mode 100644 Theorie/C/S3-src/dataseg.out delete mode 100644 Theorie/C/S3-src/empty.c delete mode 100644 Theorie/C/S3-src/enum.c delete mode 100644 Theorie/C/S3-src/exhaust-stack.c delete mode 100644 Theorie/C/S3-src/fact.c delete mode 100644 Theorie/C/S3-src/fact.out delete mode 100644 Theorie/C/S3-src/getpid.c delete mode 100644 Theorie/C/S3-src/initvar.c delete mode 100644 Theorie/C/S3-src/initvar.out delete mode 100644 Theorie/C/S3-src/malloc.c delete mode 100644 Theorie/C/S3-src/malloc.out delete mode 100644 Theorie/C/S3-src/mallocinit.c delete mode 100644 Theorie/C/S3-src/mallocinit.out delete mode 100644 Theorie/C/S3-src/mallocperf.c delete mode 100644 Theorie/C/S3-src/nofree.c delete mode 100644 Theorie/C/S3-src/portee.c delete mode 100644 Theorie/C/S3-src/portee.out delete mode 100644 Theorie/C/S3-src/stack.c delete mode 100644 Theorie/C/S3-src/stack.out delete mode 100644 Theorie/C/S3-src/static.c delete mode 100644 Theorie/C/S3-src/strcat.c delete mode 100644 Theorie/C/S3-src/strcpy.c delete mode 100644 Theorie/C/S3-src/structargs.c delete mode 100644 Theorie/C/S3-src/typecast.c delete mode 100644 Theorie/C/S3-src/union.c delete mode 100644 Theorie/C/S3-src/var.c delete mode 100644 Theorie/C/S3-src/vector.c delete mode 100644 Theorie/C/S5-src/Makefile2 delete mode 100644 Theorie/C/S5-src/errno.c delete mode 100644 Theorie/C/S5-src/fctptr.c delete mode 100644 Theorie/C/S5-src/main.c delete mode 100644 Theorie/C/S5-src/min.c delete mode 100644 Theorie/C/S5-src/min.h delete mode 100644 Theorie/C/S5-src/module.c delete mode 100644 Theorie/C/S5-src/module.h delete mode 100644 Theorie/C/S5-src/mystrtol.c delete mode 100644 Theorie/C/S5-src/prog.c delete mode 100644 Theorie/C/S5-src/prog.out delete mode 100644 Theorie/C/S5-src/ptrptr.c delete mode 100644 Theorie/C/S5-src/qsort.c delete mode 100644 Theorie/C/S5-src/strtol.c delete mode 100644 Theorie/C/S5-src/strtol.out delete mode 100644 Theorie/C/datatypes.rst delete mode 100644 Theorie/C/figures/figures-001-c.png delete mode 100644 Theorie/C/figures/figures-007-c.png delete mode 100644 Theorie/C/intro-C.rst delete mode 100644 Theorie/C/linker.rst delete mode 100644 Theorie/C/malloc.rst delete mode 100644 Theorie/C/src/cmdline.c delete mode 100644 Theorie/C/src/cmdline.out delete mode 100644 Theorie/C/src/failure.c delete mode 100644 Theorie/C/src/filterdigit.c delete mode 100644 Theorie/C/src/hello.c delete mode 100644 Theorie/C/src/printf.c delete mode 100644 Theorie/C/src/printf.out delete mode 100644 Theorie/C/src/ptr_arith.c delete mode 100644 Theorie/C/src/string.c delete mode 100644 Theorie/C/svg/Float_example.png delete mode 100644 Theorie/C/svg/Float_example.svg delete mode 100644 Theorie/Fichiers/fichiers-signaux.rst delete mode 100644 Theorie/Fichiers/fichiers.rst delete mode 100644 Theorie/Fichiers/fig/500px-Big-Endian.png delete mode 100644 Theorie/Fichiers/fig/500px-Little-Endian.png delete mode 100644 Theorie/Fichiers/fig/Big-Endian.svg delete mode 100644 Theorie/Fichiers/fig/Little-Endian.svg delete mode 100644 Theorie/Fichiers/fig/figures-10-001-c.png delete mode 100644 Theorie/Fichiers/fig/figures-10-002-c.png delete mode 100644 Theorie/Fichiers/fig/figures-10-003-c.png delete mode 100644 Theorie/Fichiers/fig/figures-10-004-c.png delete mode 100644 Theorie/Fichiers/fig/figures-10.001.png delete mode 100644 Theorie/Fichiers/fig/figures-10.002.png delete mode 100644 Theorie/Fichiers/fig/figures-10.003.png delete mode 100644 Theorie/Fichiers/fig/figures-10.004.png delete mode 100755 Theorie/Fichiers/src/a.out delete mode 100644 Theorie/Fichiers/src/alarm.c delete mode 100644 Theorie/Fichiers/src/alarm.out delete mode 100644 Theorie/Fichiers/src/alarm2.c delete mode 100644 Theorie/Fichiers/src/fork-pipe.c delete mode 100644 Theorie/Fichiers/src/longjmp.c delete mode 100644 Theorie/Fichiers/src/longjmp.out delete mode 100755 Theorie/Fichiers/src/nkill.sh delete mode 100644 Theorie/Fichiers/src/process-sem-after.c delete mode 100644 Theorie/Fichiers/src/process-sem-before.c delete mode 100644 Theorie/Fichiers/src/read.c delete mode 100644 Theorie/Fichiers/src/read.out delete mode 100644 Theorie/Fichiers/src/readdir.c delete mode 100644 Theorie/Fichiers/src/sigfpe.c delete mode 100644 Theorie/Fichiers/src/sigfpe2.c delete mode 100644 Theorie/Fichiers/src/sigfpe3.c delete mode 100644 Theorie/Fichiers/src/sigusr.c delete mode 100644 Theorie/Fichiers/src/sigusrcount.c delete mode 100644 Theorie/Makefile delete mode 100644 Theorie/MemoireVirtuelle/fig/addrvirtuelle.png delete mode 100644 Theorie/MemoireVirtuelle/fig/entreeComplete.png delete mode 100644 Theorie/MemoireVirtuelle/fig/entreeTable.png delete mode 100644 Theorie/MemoireVirtuelle/fig/fichierMappe.png delete mode 100644 Theorie/MemoireVirtuelle/fig/memoireVirtuelle.png delete mode 100644 Theorie/MemoireVirtuelle/fig/mmu.png delete mode 100644 Theorie/MemoireVirtuelle/fig/orgMemoire.png delete mode 100644 Theorie/MemoireVirtuelle/fig/proc-mem.png delete mode 100644 Theorie/MemoireVirtuelle/fig/tablePages.png delete mode 100644 Theorie/MemoireVirtuelle/fig/traduction.png delete mode 100644 Theorie/MemoireVirtuelle/fig/vmem.png delete mode 100644 Theorie/MemoireVirtuelle/src/Makefile delete mode 100644 Theorie/MemoireVirtuelle/src/cp2.c delete mode 100644 Theorie/MemoireVirtuelle/src/cp2.out delete mode 100644 Theorie/MemoireVirtuelle/src/mincore.c delete mode 100644 Theorie/MemoireVirtuelle/src/mincore.out delete mode 100644 Theorie/MemoireVirtuelle/src/mmap.c delete mode 100644 Theorie/MemoireVirtuelle/src/mmap.out delete mode 100644 Theorie/MemoireVirtuelle/src/simple.c delete mode 100644 Theorie/MemoireVirtuelle/src/svshm_xfr.h delete mode 100644 Theorie/MemoireVirtuelle/src/svshm_xfr_writer.c delete mode 100644 Theorie/MemoireVirtuelle/vmem.rst delete mode 100644 Theorie/Threads/S5-src/errno.c delete mode 100644 Theorie/Threads/S5-src/fctptr.c delete mode 100644 Theorie/Threads/S5-src/main.c delete mode 100644 Theorie/Threads/S5-src/math.c delete mode 100644 Theorie/Threads/S5-src/min-ex.c delete mode 100644 Theorie/Threads/S5-src/min.c delete mode 100644 Theorie/Threads/S5-src/module.c delete mode 100644 Theorie/Threads/S5-src/mystrtol.c delete mode 100644 Theorie/Threads/S5-src/prog.c delete mode 100644 Theorie/Threads/S5-src/pthread-args.c delete mode 100644 Theorie/Threads/S5-src/pthread-array.c delete mode 100644 Theorie/Threads/S5-src/pthread-neg.c delete mode 100644 Theorie/Threads/S5-src/pthread-neg2.c delete mode 100644 Theorie/Threads/S5-src/pthread-test-if.c delete mode 100644 Theorie/Threads/S5-src/pthread-test.c delete mode 100644 Theorie/Threads/S5-src/pthread.c delete mode 100644 Theorie/Threads/S5-src/ptr-char.c delete mode 100644 Theorie/Threads/S5-src/ptr.c delete mode 100644 Theorie/Threads/S5-src/ptrptr.c delete mode 100644 Theorie/Threads/S5-src/qsort.c delete mode 100644 Theorie/Threads/S5-src/strip.c delete mode 100644 Theorie/Threads/S5-src/strsep.c delete mode 100644 Theorie/Threads/S5-src/strtol.c delete mode 100644 Theorie/Threads/S5-src/sudoku.c delete mode 100644 Theorie/Threads/S6-fig/figures-001-c.png delete mode 100644 Theorie/Threads/S6-fig/figures-002-c.png delete mode 100644 Theorie/Threads/S6-fig/figures-003-c.png delete mode 100644 Theorie/Threads/S6-fig/figures.001.png delete mode 100644 Theorie/Threads/S6-fig/figures.002.png delete mode 100644 Theorie/Threads/S6-fig/figures.003.png delete mode 100644 Theorie/Threads/S6-src/Makefile delete mode 100644 Theorie/Threads/S6-src/arraylist.c delete mode 100644 Theorie/Threads/S6-src/arraylist2.c delete mode 100644 Theorie/Threads/S6-src/pthread-mutex-perf.c delete mode 100644 Theorie/Threads/S6-src/pthread-mutex.c delete mode 100644 Theorie/Threads/S6-src/pthread-mutex.out delete mode 100644 Theorie/Threads/S6-src/pthread-neg2.c delete mode 100644 Theorie/Threads/S6-src/pthread-neg2.out delete mode 100644 Theorie/Threads/S6-src/pthread-philo.c delete mode 100644 Theorie/Threads/S6-src/pthread-philo2.c delete mode 100644 Theorie/Threads/S6-src/pthread-spin.c delete mode 100644 Theorie/Threads/S6-src/pthread-test-if.c delete mode 100644 Theorie/Threads/S6-src/pthread.c delete mode 100644 Theorie/Threads/S6-src/thread_crash.c delete mode 100644 Theorie/Threads/S7-src/Makefile delete mode 100644 Theorie/Threads/S7-src/pthread-barrier.c delete mode 100644 Theorie/Threads/S7-src/pthread-id.c delete mode 100644 Theorie/Threads/S7-src/pthread-philo-sem.c delete mode 100644 Theorie/Threads/S7-src/pthread-rw.c delete mode 100644 Theorie/Threads/S7-src/pthread-sem-before.c delete mode 100644 Theorie/Threads/S7-src/pthread-sem-before.out delete mode 100644 Theorie/Threads/S7-src/pthread-sem.c delete mode 100644 Theorie/Threads/S7-src/pthread-sem.out delete mode 100644 Theorie/Threads/S7-src/pthread-specific.c delete mode 100644 Theorie/Threads/S7-src/pthread-specific.out delete mode 100644 Theorie/Threads/S7-src/pthread-specific2.c delete mode 100644 Theorie/Threads/S7-src/pthread-specific2.out delete mode 100644 Theorie/Threads/S7-src/reentrant.c delete mode 100644 Theorie/Threads/S7-src/strerror.c delete mode 100644 Theorie/Threads/S8-src/Makefile delete mode 100644 Theorie/Threads/S8-src/Makefile-lib delete mode 100644 Theorie/Threads/S8-src/atexit.c delete mode 100644 Theorie/Threads/S8-src/execve-long.c delete mode 100644 Theorie/Threads/S8-src/execve.c delete mode 100644 Theorie/Threads/S8-src/execve.out delete mode 100644 Theorie/Threads/S8-src/fork-buf.c delete mode 100644 Theorie/Threads/S8-src/fork-execve.c delete mode 100644 Theorie/Threads/S8-src/fork-manyexec.c delete mode 100644 Theorie/Threads/S8-src/fork-manyexec.out delete mode 100644 Theorie/Threads/S8-src/fork-nice.c delete mode 100644 Theorie/Threads/S8-src/fork-orphan.c delete mode 100644 Theorie/Threads/S8-src/fork-orphan.out delete mode 100644 Theorie/Threads/S8-src/fork-perf.c delete mode 100644 Theorie/Threads/S8-src/fork-pthread.c delete mode 100644 Theorie/Threads/S8-src/fork-wait.c delete mode 100644 Theorie/Threads/S8-src/fork-zombie.c delete mode 100644 Theorie/Threads/S8-src/fork.c delete mode 100644 Theorie/Threads/S8-src/fork.out delete mode 100644 Theorie/Threads/S8-src/getpid.c delete mode 100644 Theorie/Threads/S8-src/imath.c delete mode 100644 Theorie/Threads/S8-src/imax.c delete mode 100644 Theorie/Threads/S8-src/imax.h delete mode 100644 Theorie/Threads/S8-src/math.c delete mode 100644 Theorie/Threads/S8-src/max.c delete mode 100644 Theorie/Threads/S8-src/mini8.c delete mode 100644 Theorie/Threads/S8-src/pthread-perf.c delete mode 100755 Theorie/Threads/S8-src/script.sh delete mode 100644 Theorie/Threads/S8-src/syscall.c delete mode 100755 Theorie/Threads/S8-src/test.tail delete mode 100644 Theorie/Threads/coordination.rst delete mode 100644 Theorie/Threads/figures/188px-Matrix_multiplication_diagram.png delete mode 100644 Theorie/Threads/figures/500px-AmdahlsLaw.png delete mode 100644 Theorie/Threads/figures/534px-Transistor_Count_and_Moore's_Law_-_2011.png delete mode 100644 Theorie/Threads/figures/figures-001-c.png delete mode 100644 Theorie/Threads/figures/figures-002-c.png delete mode 100644 Theorie/Threads/figures/figures-S7-001-c.png delete mode 100644 Theorie/Threads/figures/figures-S7.001.png delete mode 100644 Theorie/Threads/figures/figures.001.png delete mode 100644 Theorie/Threads/figures/figures.002.png delete mode 100644 Theorie/Threads/figures/figures.003.png delete mode 100644 Theorie/Threads/figures/figures.004.png delete mode 100644 Theorie/Threads/figures/figures.005.png delete mode 100644 Theorie/Threads/figures/figures.006.png delete mode 100644 Theorie/Threads/figures/figures.007.png delete mode 100644 Theorie/Threads/processus.rst delete mode 100644 Theorie/Threads/threads.rst delete mode 100644 Theorie/Threads/threads2.rst delete mode 120000 Theorie/_static delete mode 100644 Theorie/_templates/layout.html delete mode 100644 Theorie/bib.rst delete mode 100644 Theorie/conf.py delete mode 100644 Theorie/glossaire.rst delete mode 100644 Theorie/incl_links.rst delete mode 100644 Theorie/index.rst delete mode 100644 Theorie/intro.rst delete mode 100644 Theorie/links.rst delete mode 100644 Theorie/man_links.rst delete mode 100644 Theorie/src/args.out delete mode 100644 Theorie/src/args.sh delete mode 100644 Theorie/src/args.sh.out delete mode 100644 Theorie/src/cmdline.c delete mode 100644 Theorie/src/cmdline.out delete mode 100644 Theorie/src/eq.sh delete mode 100644 Theorie/src/exemple.out delete mode 100644 Theorie/src/exemple2.out delete mode 100644 Theorie/src/exemple3.out delete mode 100644 Theorie/src/failure.c delete mode 100644 Theorie/src/filterdigit.c delete mode 100644 Theorie/src/hello.c delete mode 100644 Theorie/src/hello.sh delete mode 100644 Theorie/src/hello.sh.out delete mode 100644 Theorie/src/hellovar.sh delete mode 100644 Theorie/src/printf.c delete mode 100644 Theorie/src/printf.out delete mode 100644 Theorie/src/wordin.sh delete mode 100644 empty.rst delete mode 100644 qcmMalloc.rst diff --git a/Exercices/.gitkeep b/.gitkeep similarity index 100% rename from Exercices/.gitkeep rename to .gitkeep diff --git a/Blog/.gitignore b/Blog/.gitignore deleted file mode 100644 index 56cebfe..0000000 --- a/Blog/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Ignore all _build directories -_build -# Ignore all files ending with ~ -*~ -*.o -\#* -blog/* \ No newline at end of file diff --git a/Blog/2014/01/22/bienvenue.rst b/Blog/2014/01/22/bienvenue.rst deleted file mode 100644 index 6cd3069..0000000 --- a/Blog/2014/01/22/bienvenue.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Bienvenue -========= - -.. author:: default -.. categories:: none -.. tags:: none -.. comments:: - - -Ce site comprend l'ensemble des informations relatives au cours `SINF1252 <http://www.uclouvain.be/cours-2015-LSINF1252.html>`_ donné aux `étudiants en informatique <http://www.uclouvain.be/info.html>`_ à l'`Université catholique de Louvain <http://www.uclouvain.be>`_ (UCL). - - - `Théorie </pages/Theorie.html>`_ - - `Outils informatiques </pages/Outils.html>`_ - - `Exercices et Projets </pages/Exercices.html>`_ - -Ce site web et l'ensemble des documents écrits pour le cours sont distribués sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - diff --git a/Blog/conf.py b/Blog/conf.py deleted file mode 100644 index c0f6c1e..0000000 --- a/Blog/conf.py +++ /dev/null @@ -1,93 +0,0 @@ -# -*- coding: utf-8 -*- - -import tinkerer -import tinkerer.paths - -# ************************************************************** -# TODO: Edit the lines below -# ************************************************************** - -# Change this to the name of your blog -project = 'My blog' - -# Change this to the tagline of your blog -tagline = 'Add intelligent tagline here' - -# Change this to the description of your blog -description = 'This is an awesome blog' - -# Change this to your name -author = 'Winston Smith' - -# Change this to your copyright string -copyright = '1984, ' + author - -# Change this to your blog root URL (required for RSS feed) -website = 'http://127.0.0.1/blog/html/' - -# ************************************************************** -# More tweaks you can do -# ************************************************************** - -# Add your Disqus shortname to enable comments powered by Disqus -disqus_shortname = None - -# Change your favicon (new favicon goes in _static directory) -html_favicon = 'tinkerer.ico' - -# Pick another Tinkerer theme or use your own -html_theme = "flat" - -# Theme-specific options, see docs -html_theme_options = { } - -# Link to RSS service like FeedBurner if any, otherwise feed is -# linked directly -rss_service = None - -# Generate full posts for RSS feed even when using "read more" -rss_generate_full_posts = False - -# Number of blog posts per page -posts_per_page = 10 - -# Character use to replace non-alphanumeric characters in slug -slug_word_separator = '_' - -# ************************************************************** -# Edit lines below to further customize Sphinx build -# ************************************************************** - -# Add other Sphinx extensions here -extensions = ['tinkerer.ext.blog', 'tinkerer.ext.disqus'] - -# Add other template paths here -templates_path = ['_templates'] - -# Add other static paths here -html_static_path = ['_static', tinkerer.paths.static] - -# Add other theme paths here -html_theme_path = ['_themes', tinkerer.paths.themes] - -# Add file patterns to exclude from build -exclude_patterns = ["drafts/*", "_templates/*"] - -# Add templates to be rendered in sidebar here -html_sidebars = { - "**": ["recent.html", "searchbox.html"] -} - -# ************************************************************** -# Do not modify below lines as the values are required by -# Tinkerer to play nice with Sphinx -# ************************************************************** - -source_suffix = tinkerer.source_suffix -master_doc = tinkerer.master_doc -version = tinkerer.__version__ -release = tinkerer.__version__ -html_title = project -html_use_index = False -html_show_sourcelink = False -html_add_permalinks = None \ No newline at end of file diff --git a/Blog/index.html b/Blog/index.html deleted file mode 100644 index 1b57539..0000000 --- a/Blog/index.html +++ /dev/null @@ -1,8 +0,0 @@ -<!doctype html> -<html> - <head> - <meta http-equiv="REFRESH" content="0; url=./blog/html/index.html" /> - <title></title> - </head> - <body></body> -</html> \ No newline at end of file diff --git a/Blog/master.rst b/Blog/master.rst deleted file mode 100644 index 86a1d97..0000000 --- a/Blog/master.rst +++ /dev/null @@ -1,7 +0,0 @@ -Sitemap -======= - -.. toctree:: - :maxdepth: 1 - - diff --git a/Blog/pages/auteurs.rst b/Blog/pages/auteurs.rst deleted file mode 100644 index 5dd1916..0000000 --- a/Blog/pages/auteurs.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Auteurs -======= - -Les documents relatifs au cours ont été écrits par différents auteurs. - -La partie théorique a été principalement écrite par Olivier Bonaventure avec l'aide de Grégory Detal, Christoph Paasch et de nombreuses suggestions d'étudiants et d'assistants. - -La partie relative aux outils informatiques a été initié par Olivier Bonaventure, Grégory Detal et Christoph Paasch, mais la majorité du texte a été écrit par des étudiants après avoir suivi le cours avec fruit. Benoît Legat a écrit toute la section sur git. Nicolas Houtain et Maxime Demol ont écrit notamment les sections relatives au shell. Antoine Cailliau a écrit la section sur Cunit. - -Les exercices ont été écrits par Olivier Bonaventure, Grégory Detal et Christoph Paasch. Floriant Chalet et Kilian Verhetsel ont fortement contribué aux exercices avec correction automatique sur la plateforme pythia/inginious. - - - - diff --git a/Blog/pages/exercices.rst b/Blog/pages/exercices.rst deleted file mode 100644 index 5326dc6..0000000 --- a/Blog/pages/exercices.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices -========= - - - -Les exercices du cours `SINF1252 <http://www.uclouvain.be/cours-2015-LSINF1252.html>`_ donné aux `étudiants en informatique <http://www.uclouvain.be/info.html>`_ à l'`Université catholique de Louvain <http://www.uclouvain.be>`_ (UCL) sont disponibles sous trois formats : - - - `HTML <http://sites.uclouvain.be/SystInfo/notes/Exercices/html/index.html>`_ accessible directement depuis un navigateur web - - `pdf <http://sites.uclouvain.be/SystInfo/distrib/SINF1252-Exercices.pdf>`_ utilisable avec Adobe Acrobat ou pour impression - - `epub <http://sites.uclouvain.be/SystInfo/distrib/SINF1252-Exercices.epub>`_ utilisable avec une tablette - -Les exercices sont mis à jour régulièrement au fur et à mesure de l'avancement du cours. Il est inutile de les imprimer. diff --git a/Blog/pages/outils.rst b/Blog/pages/outils.rst deleted file mode 100644 index 38d959a..0000000 --- a/Blog/pages/outils.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Outils informatiques -==================== - -Cette annexe reprend les outils informatiques utiles pour le cours `SINF1252 <http://www.uclouvain.be/cours-2015-LSINF1252.html>`_ suivi par les `étudiants en informatique <http://www.uclouvain.be/info.html>`_ à l'`Université catholique de Louvain <http://www.uclouvain.be>`_ (UCL). Elle est disponible sous trois formats : - - - `HTML <http://sites.uclouvain.be/SystInfo/notes/Outils/html/index.html>`_ accessible directement depuis un navigateur web - - `pdf <http://sites.uclouvain.be/SystInfo/distrib/SINF1252-Outils.pdf>`_ utilisable avec Adobe Acrobat ou pour impression - - `epub <http://sites.uclouvain.be/SystInfo/distrib/SINF1252-Outils.epub>`_ utilisable avec une tablette - - -La version HTML est préférable car elle contient de nombreux liens vers les pages de manuels des différents logiciels utilisés. - - - -Les étudiants sont invités à améliorer cette section en soumettant des patches via https://github.com/obonaventure/SystemesInformatiques diff --git a/Blog/pages/source.rst b/Blog/pages/source.rst deleted file mode 100644 index 1a57e8b..0000000 --- a/Blog/pages/source.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Source -====== - - -L'ensemble des sources de ce site web et des notes du cours de systèmes informatiques sont disponibles depuis https://github.com/obonaventure/SystemesInformatiques - -Le site web a été écrit en restructured text en utilisant l'outil tinkerer. - -Les notes sont écrites en restructured text et converties en HTML, pdf et epub en utilisant `sphinx <http://sphinx.pocoo.org>`_ - -Toutes les suggestions pour l'amélioration des notes, exercices ou de la section relative aux outils sont les bienvenues. diff --git a/Blog/pages/theorie.rst b/Blog/pages/theorie.rst deleted file mode 100644 index d32b558..0000000 --- a/Blog/pages/theorie.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Theorie -======= - -Les notes du cours `SINF1252 <http://www.uclouvain.be/cours-2015-LSINF1252.html>`_ donné aux `étudiants en informatique <http://www.uclouvain.be/info.html>`_ à l'`Université catholique de Louvain <http://www.uclouvain.be>`_ (UCL) sont disponibles sous trois formats : - - - `HTML <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/index.html>`_ accessible directement depuis un navigateur web - - `pdf <http://sites.uclouvain.be/SystInfo/distrib/SINF1252-Theorie.pdf>`_ utilisable avec Adobe Acrobat ou pour impression - - `epub <http://sites.uclouvain.be/SystInfo/distrib/SINF1252-Theorie.epub>`_ utilisable avec une tablette - - -Ce site web et l'ensemble des documents écrits pour le cours sont distribués sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ diff --git a/Exercices/Programmes/prog-1.rst b/Exercices/Programmes/prog-1.rst deleted file mode 100644 index cf20bb9..0000000 --- a/Exercices/Programmes/prog-1.rst +++ /dev/null @@ -1,298 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices -========= - - - -1. Exercices de manipulation du shell -------------------------------------- - -Pour rappel, quelques commandes de base dans le shell pour gérer les dossiers et fichiers: - - - `ls(1)`_ : affiche la liste des fichiers et dossiers du répertoire spécifié - - `mv(1)`_ : utilitaire pour renommer ou déplacer un fichier ou dossier - - `cp(1)`_ : copie un fichier ou dossier (``-r`` pour les dossiers) - - `rm(1)`_ : efface un fichier ou dossier - - `mkdir(1)`_ : crée un répertoire - - `rmdir(1)`_ : efface un répertoire vide - - `cd(1posix)`_ : change le répertoire courant - - `pwd(1)`_ : affiche le répertoire courant - - `grep(1)`_ : permet de faire des recherches sur le contenu des fichiers - -Pour vous familiariser avec le shell, faites les petits exercices suivants dans le shell: - -#. Créez, dans un nouveau répertoire ``my_dir`` le fichier nommé ``first`` contenant le texte "`Inserer`". Vérifiez chaque étape en utilisant une des commandes `ls(1)`_, `pwd(1)`_ et `cat(1)`_. -#. Copiez le fichier ``first`` vers ``second`` et ajoutez la ligne "`Retirer`" à ``second``. -#. Comment pourriez-vous afficher la taille des fichiers avec `ls(1)`_? -#. Concaténez ``first`` et ``second`` dans un nouveau fichier ``third`` (sans utiliser la command `echo(1)`_) -#. Utilisez `grep(1)`_ pour afficher le numéro de la ligne sur laquelle se trouve le mot "`Retirer`" dans ``second``. -#. Retournez dans le répertoire parent de ``my_dir`` et copiez le dossier complet ``my_dir`` dans ``my_dir_2``. -#. Effacez le dossier entier ``my_dir`` en une seule commande (utilisez `rm(1)`_). - -Vous trouverez également sur `le cours LSINF1252 sur inginious <https://inginious.info.ucl.ac.be/course/LSINF1252>`_ les exercices suivants : - -#. Utilisation de la commande `grep(1)`_ : https://inginious.info.ucl.ac.be/course/LSINF1252/s1_grep -#. Utilisation des pipes : https://inginious.info.ucl.ac.be/course/LSINF1252/s1_pipes -#. Utilisation de la commande `tar(1)`_ : https://inginious.info.ucl.ac.be/course/LSINF1252/s1_tar -#. Capture the flag (1): https://inginious.info.ucl.ac.be/course/LSINF1252/s1_ctf1 -#. Capture the flag (2): https://inginious.info.ucl.ac.be/course/LSINF1252/s1_ctf2 - -.. only:: staff - - - Il faudrait quand même qu'ils l'aient fait une fois avant le TP - - Faire l'exercice sur les pipes avant de faire le CTF - - Si un élève est bloqué, relire les dernières consignes, si rien d'explicite taper "./.suite" - - Quand les consignes disent de - dire quelque chose de spécifique = "echo parole | ./interlocuteur" - parler à quelqu'un = "./interlocuteur" - - Faire TRÈS attention à taper correctement l'identifiant inginious au début, sinon ce n'est qu'en ayant fini le CTF qu'ils verront l'erreur - - Attention, quand on tape la réponse finale dans inginious, elle est écrite sous la forme "[hash] -", il faut copier-coller la sortie en entier, le tiret compris, pas juste le hash - - L'exercice est individuel, la réponse dépend de l'identifiant de l'étudiant - - En cas de problème avec le code de vérification (il n'y en a théoriquement pas, mais qui sait) le tuteur peut générer la clé à entrer dans inginious comme suit (depuis la racine) : - cd .ressources/script - ./init lIdentifiantInginious - ./next - ./next - ./next - ./next - ./next - - -2. Découverte du C ------------------- - -Certains côtés du C sont très proches du langage Java que vous connaissez déjà . Ce n'est pas surprenant -puisque Java a été conçu avec le langage C comme base. Les inventeurs de Java ont ajouté tout ce qui -était nécessaire pour supporter les objets et ont retiré la gestion explicite de la mémoire. Les premiers -exercices `inginious en C <https://inginious.info.ucl.ac.be/course/LSINF1252>`_ sont très proches de ceux -que vous aviez réalisé en Java. - -#. Calcul de la valeur absolue d'une entier: https://inginious.info.ucl.ac.be/course/LSINF1252/absolute_value -#. Calcul de la factorielle d'un nombre entier: https://inginious.info.ucl.ac.be/course/LSINF1252/factorial -#. Recherche d'un élément dans un tableau d'entiers: https://inginious.info.ucl.ac.be/course/LSINF1252/tab_find - -#. Compilez et exécutez le code suivant. Expliquez ce que fait l'appel à `printf(3)`_. - - .. code-block:: c - - int f() - { - int a = 1252; - printf("%d\n", a); - } - - int main(int argc, const char *argv[]) - { - f(); - } - - -#. Expliquez à quoi sert l'option ``-Werror`` de ``gcc``. Regardez la manpage (`gcc(1)`_). - - .. only:: staff - - .. note:: - ``-Werror`` - Make all warnings into errors. - -#. Recompilez le code du point `4` avec l'option ``-Werror``, que se passe-t-il ? Que faut-t-il rajouter dans le code pour qu'il compile sans erreurs ? - - .. only:: staff - - .. note:: - - Le programme ne compile plus. Il faut inclure ``stdio.h`` parce que C nécessite d'avoir une déclaration des fonctions. - -#. (bonus) comment se fait-il que ``gcc`` compilait sans problème au point `4`? - - .. only:: staff - - .. note:: - - ``gcc`` crée une déclaration implicite des fonctions de la librairie C. Il n'affiche qu'un warning. - -#. Lorsque j'exécute le programme corrigé du point `6` dans une console, j'ai accès à plusieurs variables. L'une d'elles est ``$?`` qui permet de récupérer la valeur de retour du dernier programme exécuté. Expliquez à quoi sert cette valeur. - - .. code-block:: console - - $ gcc -Werror -std=c99 test.c -o test - $ ./test - 1252 - $ echo $? - 0 - - .. only:: staff - - .. note:: - - voir notes de cours. - -#. Expliquez à quoi sert l'option ``-Wall`` de ``gcc``. - - .. only:: staff - - .. note:: - - ``-Wall`` - This enables all the warnings about constructions that some users consider questionable, and that are easy to avoid (or modify to prevent the warning), even in conjunction with macros. - -#. Recompilez le code corrigé du point `6` avec les options ``-Wall`` et ``-Werror``, que se passe-t-il ? Que faut-il rajouter dans le code pour qu'il compile sans erreurs ? - - .. only:: staff - - .. note:: - - ``-Wall``: warning si une fonction ne renvoie pas de valeur. Il faut donc ajouter ``return 0;`` à la fin de la ``main``. - - - .. only:: staff - - #. Compilez le code suivant (sans les options ``-Wall`` et ``-Werror``). Expliquez ce que sont les arguments de la fonction ``main``. Expliquez ce que fait `atoi(3)`_ (voir `strtol(3)`_ pour une fonction similaire). Exécutez ensuite le code avec ou sans arguments. Qu'observez-vous ? Comment se protéger du fait qu'un utilisateur ne va pas forcément rentrer le bon nombre d'arguments ? - - .. code-block:: c - - #include <stdlib.h> - int main(int argc, const char *argv[]) - { - int a = atoi(argv[1]); - printf("%d\n", a); - } - - .. note:: - - ``argc`` = nombre d'arguments. - ``argv`` = tableau de chaine de caractère contenant le nom de l'exécutable suivi des arguments. - ``atoi`` = transforme une chaine de caractère en un entier. - Le programme renvoi une segmentation fault lorsque l'on ne passe pas d'argument. Il faut donc utiliser ``argc`` pour tester que l'on a le bon nombre d'argument. - - - .. only:: staff - - #. Ecrivez un programme qui va itérer (avec une boucle ``for`` et une boucle ``while``) et afficher tous les arguments qui lui sont passés à la sortie standard. - - .. note:: - - .. code-block:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) - { - int i; - for (i = 1; i < argc; i++) - printf("%s\n", argv[i]); - return 0; - } - -#. Ecrivez deux programmes qui réagissent de façon similaire à `true(1)`_ et `false(1)`_ en utilisant `exit(3)`_. Vous pouvez tester le bon fonctionnement de votre programme en exécutant le code suivant dans une console: - - .. code-block:: console - - $ if ./true; then echo "true fonctionne"; fi - true fonctionne - $ if ! ./false; then echo "false fonctionne"; fi - false fonctionne - - Bash permet aussi de faire des ``else``. Trouvez comment faire en regardant ce `lien <http://tldp.org/LDP/abs/html/tests.html>`_. - .. only:: staff - - .. note:: - - ``true`` retourne toujours 0: - .. code-block:: c - - #include <stdlib.h> - int main(int argc, const char *argv[]) - { - exit(0); - } - - ``false`` retourne toujours quelque chose != 0: - .. code-block:: c - - #include <stdlib.h> - int main(int argc, const char *argv[]) - { - exit(1); - } - - - -.. only:: staff - - #. Faites l'exercice sur `commandetest <https://inginious.info.ucl.ac.be/course/LSINF1252/commandetest>`_ sur la commande `test(1)`_. - - INGInious est un environnement qui permet de soumettre du code, et des tests sont automatiquement exécutés sur ce code. Cela vous permettra de vérifier que votre programme fonctionne. - - Pour vous connecter sur INGInious, utilisez votre login INGI que vous recevrez durant la première séance de TP. - - - #. Faites de même pour la commande `expr(1)`_. On vous demande d'implémenter les expressions suivantes : ``+``, ``-``, ``*``, ``/`` et ``%``, mais cette fois-ci sans utiliser INGInious. Vous devriez tester votre programme vous-même et assurer le bon fonctionnement de celui-ci. - - N'oubliez pas de respecter les valeurs de retour qui sont décrites dans les man-pages. - - -.. only:: staff - - #. En utilisant le shell et un programme C, essayez de déterminer expérimentalement le nombre maximum d'arguments que vous pouvez passer à un programme C. Y a-t-il une limite à ce nombre d'arguments ? Si oui, d'où vient-elle et de quoi dépend-elle ? - -3. Question de bilan final --------------------------- - -Le fizz buzz est un programme qui affiche sur la sortie standard pour chaque entier ``n``: - -- ``fizz buzz`` si le nombre est divisible par 3 et par 5; -- ``fizz`` si le nombre est divisible par 3; -- ``buzz`` si le nombre est divisible par 5; -- La valeur de ``n`` sinon. - -Un étudiant implémente cet algorithme en Bash. Malheureusement, son script comporte plusieurs erreurs. -Pouvez-vous identifier et corriger les erreurs en question? Son code est disponible ci-dessous. - -.. code-block:: bash - - #!/bin/bash - - x=1 - limit=100 - if [ ! -z "$1" ] - then - limit=$1 - fi - - while [[ $x < "$limit" ]] - do - if [[0 -eq "($x%3)" && 0 -eq "($x%5)"]] - then - # Check if divide by 3 & 5 - echo "fizz buzz" - elif [[0 == "($x%5)"]] - then - # Check if divide by 5 - echo "buzz" - elif [[0 == "($x%3)"]] - then - # Check if divide by 3 - echo "fizz" - else - echo "$x" - fi - x=$(( x + 1 )) - done - - -Il y a 4 différents groupes d'erreurs. Trois d'entre-eux peuvent être facilement repérés via -`ShellCheck <https://www.shellcheck.net>`_, un outil de vérification statique de code Bash. L'utilisation -systématique de ce genre d'outils vous évitera bon nombre d'erreurs fréquentes lors de la rédaction de code. - -.. only:: staff - - #. Double crochets qui manque un espace - - #. == au lieu de -eq - - #. ! -z au lieu de -n - - #. < au lieu de -lt . Cette erreur n'est pas détectée par ShellCheck. diff --git a/Exercices/Programmes/prog-10.rst b/Exercices/Programmes/prog-10.rst deleted file mode 100644 index f518031..0000000 --- a/Exercices/Programmes/prog-10.rst +++ /dev/null @@ -1,80 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices ---------- - -#. En utilisant `signal(2)`_, écrivez une fonction C ``sig_ignored`` qui prend comme argument un numéro de signal et retourne ``true`` si le signal passé en argument est ignoré par le processus et ``false`` sinon. - - .. only:: staff - - Il suffit de tester la valeur de retour de signal. sigaction est une autre possibilité - -#. A votre avis, pourquoi le système d'exploitation refuse-t-il l'exécution de la ligne ``signal(SIGKILL,SIG_IGN)`` ? - - .. only:: staff - - Bien évidemment pour garantir qu'il sera toujours possible de tuer un processus. - -#. Sachant qu'en tapant `Ctrl-C` durant l'exécution d'un processus le shell envoie un signal ``SIGINT`` à ce processus, comment feriez-vous pour qu'un de vos programmes puisse survivre à `Ctrl-C` ? - - .. only:: staff - - Il faut évidemment définir un handler pour SIGINT et traiter ce signal, ce n'est pas très difficile à faire - -#. Le programme :download:`/Programmes/src/alarm.c` que nous avons utilisé pour illustrer l'appel système `alarm(2)`_ contient une condition de course qui peut dans certains cas empêcher l'interruption de l'appel système `read(2)`_. Un étudiant propose de résoudre ce problème en utilisant une variable modifiée par la fonction de traitement de ``SIGALRM``. Que pensez-vous du programme :download:`/Programmes/src/alarm3.c` ? - - .. only:: staff - - Cette solution n'est pas fiable car il est possible que le processus aie été bloqué juste après l'exécution du if mais juste avant l'appel à read - -#. La page de manuel `signal(7)`_ définit les signaux suivants : - - - ``SIGSYS`` - - ``SIGPIPE`` - - Expliquez dans quels cas ces deux signaux peuvent être générés et délivrés à un processus. - - .. #. Les constantes ``SIG_DFL`` et ``SIG_IGN`` utilisées par `signal(2)`_ sont-elles des entiers ou un autre type? - -#. Unix définit un signal ``SIGCHLD`` qui est envoyé lorsqu'un fils se termine. Quel est l'intérêt d'un tel signal pour le processus père? - - .. only:: staff - - Cela permet au père de savoir quand il doit effectuer un wait. - -#. Un processus a exécuté une fonction de traitement du signal ``SIGUSR1`` et une autre fonction pour traiter le signal ``SIGUSR2``. La fonction qui traite ``SIGUSR1`` est une fonction assez complexe qui prend des centaines d'instructions. Que se passe-t-il si pendant que le processus est en train de traiter le signal ``SIGUSR1``, un autre processus lui envoie : - - - ``SIGUSR1`` - - ``SIGUSR2`` - -#. Considérons la fonction de gestion des signaux suivante : - - .. code-block:: c - - static void sig_handler(int signum) { - char *msg="Reçu signal \n"; - write(STDERR_FILENO,msg,strlen(msg)); - } - - Cette fonction utilise l'appel système `write(2)`_ qui peut modifier la variable ``errno`` en cas d'erreur. Modifiez-la de façon à ce que toute modification à ``errno`` n'affecte pas l'utilisation de ``errno`` dans le programme en cours d'exécution. - -#. Dans les programmes :download:`/Programmes/src/process-sem-before.c` et :download:`/Programmes/src/process-sem-after.c`, on a choisi de créer le sémaphore dans un processus avec `sem_open(3)`_ et de le supprimer avec `sem_unlink(3)`_ dans un autre processus. Est-ce possible de créer et supprimer le sémaphore dans le même processus ? - -#. Un processus ``P`` ouvre le fichier ``fichier`` avec l'appel système `open(2)`_. Celui-ci est associé au descripteur ``fd``. Ensuite, le processus utilise `fork(2)`_ pour créer un processus fils. - - - représenter les open-file objects utilisés - - le père et le fils peuvent-ils lire sur ``fd`` ? - - le processus fils utilise l'appel système `chmod(2)`_ pour rendre le fichier inaccessible en écriture et lecture. Après cette opération, le père et le fils peuvent-ils lire sur ``fd`` ? - - le père ferme le descripteur ``fd``. Après cette opération, le père et le fils peuvent-ils lire sur ``fd`` ? - - le fils exécute `unlink(2)`_ sur le fichier. Après cette opération, le père et le fils peuvent-ils lire sur ``fd`` ? - -#. Même question que ci-dessus, mais en remplaçant le fichier par un sémaphore nommé et `open(2)`_ par `sem_open(3)`_ ? - -#. Le programme :download:`/Programmes/src/miniprojet.c` utilise des sémaphores nommés pour synchroniser la production/consommation entre deux processus. Le processus père crée le fichier ``my_file.txt`` y écrit une valeur. Le processus fils est chargé de lire la donnée présente dans le fichier et l'affiche à la console. Ce programme tourne à l'infini et donc il faut l'arrèter avec la commande ``Ctrl-C``. Malheureusement dans ce cas les sémaphores nommés ne sont pas supprimés correctement. Après avoir terminé le programme avec `Ctrl-C` vous verrez qu'il reste des sémaphores dans ``/dev/shm/``. - - Comment modifier ce programme pour gèrer la terminaison correcte des processus lors de la pression sur ``Ctrl-C``. Pour ce faire, vous devez modifier le programme de façon à ce qu'il libère toutes les ressources allouées avant de se terminer. Ceci peut se faire en traitant le signal envoyé au processus par le shell lorsque l'utilisateur presse ``Ctrl-C``. - -#. Faites les deux exercices INGInious sur `les signaux <https://inginious.info.ucl.ac.be/course/LSINF1252/signaux>`_ et `le sleep <https://inginious.info.ucl.ac.be/course/LSINF1252/sleep>`_. - diff --git a/Exercices/Programmes/prog-11.rst b/Exercices/Programmes/prog-11.rst deleted file mode 100644 index 945a5c2..0000000 --- a/Exercices/Programmes/prog-11.rst +++ /dev/null @@ -1,83 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices ---------- - - -#. Considérons le disque dur ST31500341AS dont les caractéristiques techniques sont présentées dans les notes (1.5TB, 7200 RPM, 32MB Cache, la datasheet est disponible `ici <http://www.seagate.com/staticfiles/support/disc/manuals/desktop/Barracuda%207200.11/100507013e.pdf>`_). Le constructeur annonce un débit de transfert de 300 MBytes par seconde au maximum. Sachant que chaque secteur fait 512 bytes, et que ce disque utilise 63 secteurs par piste, calculez le débit obtenu lors du transfert d'une piste complète et comparez ce débit à celui annoncé par le constructeur. - -#. Considérons un ordinateur utilisant des pages de 1024 bytes et des adresses virtuelles encodées sur 13 bits et des adresses réelles également sur 13 bits. La table des pages actuellement utilisée est la suivante : - - ======== ======== ======= - Indice Validité Adresse - ======== ======== ======= - [111] true 001 - [110] true 000 - [101] true 111 - [100] false - - [011] true 011 - [010] false - - [001] true 010 - [000] true 100 - ======== ======== ======= - - Sur base de cette table des pages, déterminez si les adresses suivantes correspondent à des données se trouvant en mémoire et le cas échéant l'adresse physique correspondante : - - - ``1100110111010`` - - ``0110000110010`` - - ``0000010010001`` - - ``1000010001001`` - - ``0000000000000`` - -#. Un processus est chargé en mémoire. L'output de ``/proc/pid/maps`` est le suivant : - - .. code-block:: console - - 08047000-080f5000 r-xp 00000000 08:01 553302 /bin/bash - 080f5000-080fa000 rw-p 000ae000 08:01 553302 /bin/bash - 09047000-09107000 rw-p 09047000 00:00 0 [heap] - bffaa000-bffbf000 rw-p bffe9000 00:00 0 [stack] - - En supposant que la mémoire RAM était initialement vide et que le processus a été chargé à partir de l'adresse ``0x00000000`` en mémoire physique, construisez la table des pages de ce processus si il utilise des pages de 4 KBytes. - -#. Un ordinateur utilise de la mémoire virtuelle avec des adresses virtuelles sur 32 bits et des adresses physique sur 26 bits. Sa mémoire virtuelle est découpée en pages de 4 KBytes. Si chaque entrée de la table des pages occupe 32 bits, quelle est la zone mémoire occupée par la table des pages ? Le nombre de lignes dans la table des pages varie-t-il si les adresses physiques passent à 32 bits ou 36 bits ? - -#. Un ordinateur dispose de 32 GBytes de mémoire RAM. Il utilise des adresses virtuelles de 64 bits et des pages de 4 KBytes. Combien de lignes doit contenir sa table des pages ? - -#. Comparez les performances du programme :download:`/../Theorie/MemoireVirtuelle/src/cp2.c` avec l'utilitaire `cp(1)`_ standard de Linux. - -#. Un programme construit en mémoire un gros tableau contenant 10 millions d'entiers. Initialisez ce tableau avec des entiers ayant des valeurs croissante. Pour sauvegarder le fichier sur disque, trois solutions s'offrent à vous : - - - écrire directement les entiers sur disque sous forme binaire en utilisant l'appel système `write(2)`_ en passant un pointeur vers chaque entier à cet appel système - - écrire les entiers sur disque sous forme d'un fichier texte avec un entier par ligne - - écrire les entiers directement sur disque, mais en utilisant `mmap(2)`_ plutôt que `write(2)`_ - - Dans les salles informatiques, vous pouvez stocker les données dans trois répertoires qui risquent d'avoir des performances différentes : - - - votre répertoire de login qui est accessible depuis un serveur de fichiers - - le répertoire ``/tmp`` qui sous Linux est en général stocké directement en mémoire RAM - - un clé USB - - Ecrivez un programme qui permet de comparer les performances de ces trois méthodes permettant d'écrire sur disque sur les trois dispositifs de stockage. Quelle est la solution la plus rapide et pourquoi (pensez à utiliser `fsync(2)`_ ou `msync(2)`_ pour forcer le système à écrire vos données sur disque à la fin de l'exécution de votre programme). - -#. Ecrivez un programme similaire au précédent mais qui permet de comparer les performances en lecture. Utilisez `fscanf(3)`_ par exemple pour lire les données du fichier texte. - -#. git est un outil permettant de générer intelligemment les projets informatiques dans lesquels plusieurs développeurs participent à l'écriture du code source. Il existe de nombreux livres et sites web concernant subversion. Cet exercice a pour objectif de vous présenter un workflow classique utilisant ``git``. Pour réaliser cet exercice, vous avez besoin d'un répertoire partagé géré par ``git``. - - - `git(1)`_ supporte de nombreuses sous-commandes. Pour accéder au manuel relatif à une de ces sous-commandes, il faut utiliser ``git help commande`` - - Créez un répertoire de test que vous pourrez supprimer par après, ``mkdir test`` - - Ajoutez ce répertoire à votre repository subversion ``git add test`` - - Enregistrez cette modification sur le serveur en utilisant ``git commit -m "Ajout du répertoire de test"``. L'argument ``-m`` permet de spécifier un commentaire à votre ``commit``. Prenez l'habitude d'expliquer en une ou quelques lignes la modification que vous avez fait, cela vous permettra de revenir plus facilement en arrière si nécessaire. Envoyez ensuite votre modification sur le serveur via ``git push``. - - Créez un fichier texte nommé ``test.txt`` dans votre répertoire. Ce fichier contiendra une ligne de ``aaaaa`` et une deuxième ligne de ``bbbbbb``. Ajoutez ce fichier avec ``git add`` puis faites le ``git commit`` suivi du ``git push`` - - Depuis un autre compte étudiant, faites ``git pull`` pour charger ce nouveau répertoire et le fichier le contenant. - - Un étudiant utilisant le répertoire modifie la première ligne du fichier et la remplace par ``aaXaa``. En même temps, l'autre étudiant modifie la deuxième ligne du fichier et la remplace par ``bbbYbbb``. Une fois ces modifications faites, utilisez ``git commit`` puis ``git push`` pour pousser la modification sur le serveur. - - Faites ``git log test.txt`` pour voir la liste des modifications faites sur ce fichier - - Utilisez ``git diff test.txt`` pour voir la différence entre votre version du fichier et celle du serveur - - Essayez maintenant de faire des modifications à la même ligne du fichier, par exemple en ajoutant chacun une ligne supplémentaire. Ce faisant, vous allez créer un conflit. Utilisez ``git merge`` pour résoudre ce conflit. - - -.. rubric:: Footnotes - - diff --git a/Exercices/Programmes/prog-12.rst b/Exercices/Programmes/prog-12.rst deleted file mode 100644 index 43b4d2f..0000000 --- a/Exercices/Programmes/prog-12.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices ---------- - -#. L'appel système `shmget(2)`_ supporte également le drapeau ``IPC_EXCL`` en plus du drapeau ``IPC_CREAT``. Expliquez à quoi ce drapeau peut servir et dans quel cas il peut être utile. - -#. Un processus père ouvre un segment de mémoire partagée avec l'appel système ``shmget(key, 4096, IPC_CREAT | S_IRUSR | S_IWUSR )``. Un de ses processus fils peut-il exécuter ``shmget(key, 4096, S_IRUSR )`` ? Si oui, ce processus peut-il ensuite attacher cette page en utilisant : - - - ``shmat(shm_id, NULL, SHM_RDONLY)`` - - ``shmat(shm_id, NULL, SHM_EXEC)`` - -#. Lorsque l'on utilise l'appel système `shmat(2)`_ avec ``NULL`` comme deuxième argument, le système d'exploitation choisit l'adresse à laquelle le segment de mémoire va être attaché. Cela pose des difficultés si l'on veut stocker des pointeurs en mémoire partagée. Un étudiant propose de d'abord allouer la zone mémoire avec `malloc(3)`_ et d'ensuite attacher le segment de mémoire à cet endroit. Il a réalisé un test avec un processus père et son fils et les deux segments de mémoire partagée se retrouvent à la même adresse. Il en conclut que cela permet de résoudre le problème. Qu'en pensez-vous ? - -#. Deux processus utilisent un segment de mémoire partagée et doivent se partager une liste chaînée. Comment implémenteriez-vous cette liste simplement chaînée de façon à ce qu'elle puisse être utilisée dans cette mémoire partagée. On supposera que le segment de mémoire partagée est toujours plus grand que la zone mémoire nécessaire au stockage de la liste. - -#. Le livre [Kerrisk2010]_ contient de nombreux exemples de programmes permettant de manipuler les segments de mémoire partagée [#fex]_. Compilez les programmes ``svshm_create``, ``svshm_attach`` et ``svshm_rm`` pour créer, attacher et supprimer un segment de mémoire partagée. Les commandes `ipcs(1)`_ et `ipcrm(1)`_ permettent de visualiser et supprimer les segments de mémoire partagée. Pensez à utiliser ces commandes pour vérifier que vous n'avez pas laissé de segment de mémoire partagée qui traine. - - -.. rubric:: Footnotes - -.. [#fex] Voir notamment http://www.man7.org/tlpi/code/online/all_files_by_chapter.html (chapitre 48) ou http://www.man7.org/tlpi/code/index.html diff --git a/Exercices/Programmes/prog-2.rst b/Exercices/Programmes/prog-2.rst deleted file mode 100644 index 02b3dcf..0000000 --- a/Exercices/Programmes/prog-2.rst +++ /dev/null @@ -1,105 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - - -Questions INGINIOUS -------------------- - -#. Faites l'exercice relatif à `printf(3)`_ sur INGINIOUS : https://inginious.info.ucl.ac.be/course/LSINF1252/printf - -#. Un utilisateur peut adapter le comportement d'un programme via les arguments passés en ligne de commande. Ecrivez un programme permettant d'afficher un argument sur deux tel qu'indiqué sur INGINIOUS: https://inginious.info.ucl.ac.be/course/LSINF1252/main_argc - -#. L'an dernier, vous avez écrit un programme permettant de détecter si une chaîne de caractères était un palindrome. Faites de même en C avec l'exercice INGINIOUS https://inginious.info.ucl.ac.be/course/LSINF1252/palindrome - -#. Ecrivez le corps de la fonction `swap2 <https://inginious.info.ucl.ac.be/course/LSINF1252/swap2int>`_ permettant d'échanger les valeurs stockées dans deux variables de type entier. Faites de même lorsque les arguments de cette fonction sont des structures contenant des fractions : https://inginious.info.ucl.ac.be/course/LSINF1252/swap2int - -#. La libraire `string(3)`_ implémente un grand nombre de fonctions de manipulation des strings qui vous serons utile lors de différents projets de programmation. - - * `strlen(3)`_ - * `strcat(3)`_ - * `strcasecmp(3)`_ - - - Ecrivez le code implémentant ces trois fonctions. Pour cela, créez un fichier ``string.c`` contenant la définition des fonctions et un fichier ``string.h`` avec les `déclarations <http://en.wikipedia.org/wiki/Declaration_(computer_programming)>`_ des fonctions. Vous devez aussi fournir un Makefile (cfr :ref:`outils:make`) qui permet de recompiler facilement votre programme en tapant ``make``. Pensez à implémenter quelques tests pour vos fonctions dans la fonction ``main`` et n'incluez pas l'exécutable dans l'archive. Pour la réalisation de ces tests, utilisez une librairie de tests unitaires telle que `CUnit <http://cunit.sourceforge.net>`_ - - Lorsque vous considérez que votre programme est correct, testez son bon fonctionnement via l'exercice correspondant sur inginious : https://inginious.info.ucl.ac.be/course/LSINF1252/mini-projet-string - -#. Faites l'exercice `swap <https://inginious.info.ucl.ac.be/course/LSINF1252/swap>`_ sur INGInious - -#. Faites les exercices de manipulation de bits sur `INGInious <https://inginious.info.ucl.ac.be/course/LSINF1252>`_. Pour réaliser ces exercices, réfléchissez d'abord sur papier, par exemple sur des blocs de 4 ou 8 bits. Pour la plupart des questions, il faut combiner des décalages à gauche ou à droite avec des opérations ``AND`` (``&``), ``OR`` (``|``) et ``NOT`` (``~``) bit à bit. - - - https://inginious.info.ucl.ac.be/course/LSINF1252/bits_leftmost - - https://inginious.info.ucl.ac.be/course/LSINF1252/bits_rightmost - - https://inginious.info.ucl.ac.be/course/LSINF1252/set_bit - - https://inginious.info.ucl.ac.be/course/LSINF1252/bits_spin - - https://inginious.info.ucl.ac.be/course/LSINF1252/bits_sum - - https://inginious.info.ucl.ac.be/course/LSINF1252/bits_strong - - -Questions de discussion ------------------------ - -.. only:: staff - - #. La zone mémoire utilisée diffère d'un type primitif à un autre. Ecrivez un code qui permet d'afficher le nombre de bytes utilisés sur un système 64 bits (une machine des salles) et une machine 32 bits (sirius, voir section :ref:`outils:ssh`) pour représenter un ``int``, ``long``, ``void *``, ``char *``, ``size_t`` et ``uint64_t``. Expliquez les différences. - - .. important:: - - Il est nécessaire de recompiler le code source si vous voulez exécuter le binaire sur une autre architecture. Le type ``uint64_t`` est défini dans `stdint.h`_. - Sur sirius ``gcc`` n'est pas forcément disponible, il faut dans ce cas utiliser ``cc`` à la place - -.. only:: staff - - #. En utilisant des opérations binaires (décalage, and, or, ...), définissez un algorithme efficace pour trouver la valeur du bit le moins significatif d'un entier ``i`` (ex, 8 pour 56, 16 pour 208). - - .. note:: - - La plupart des étudiants vont probablement écrire un code similaire à : - - .. code-block:: c - - int c; - for ( c = 0 ; !((i >> c) & 1) ; c++ ) ; - printf("%d\n", 1 << c); - - Mais il existe plus efficace: - - .. code-block:: c - - printf("%d\n", i & (~i + 1)); - -#. Soit ``char *ptr = "Test"``. Itérez sur ce pointeur et affichez avec `printf(3)`_ la valeur et l'adresse mémoire où se trouve stocké chaque caractère de deux façons différentes. Regardez la manpage de `printf(3)`_ pour savoir comment afficher la valeur d'un pointeur. - -#. Lorsque l'on veut améliorer les performances d'un programme, il est utile de pouvoir mesurer précisément son temps d'exécution. La commande `time(1posix)`_ permet d'effectuer cette mesure depuis la ligne de commande. Parfois, on souhaite mesurer le temps de calcul une partie critique d'un code. Une façon simple pour obtenir cette mesure est d'utiliser `gettimeofday(2)`_ comme dans l'exemple ci-dessous (:download:`/Programmes/s2_perf.c`). - - .. literalinclude:: /Programmes/s2_perf.c - :encoding: utf-8 - :language: c - - Pour certaines opérations, les performances dépendent du type de données utilisé. Modifiez le programme ci-dessous de façon à utiliser un calcul plus compliqué que la simple addition et comparez sur de longues itérations (:math:`10^7` ou plus) les performances de cette opération lorsqu'elle utilise des ``int``, ``long long``, ``double`` ou ``float``. Les performances sont-elles identiques ? - - -Questions de bilan final ------------------------- - -#. La structure suivante ``foo_t`` est définie de façon à ce qu'elle contienne un ``char`` suivi d'un entier. D'après vous combien de bytes occupe cette structure en mémoire ? Vérifiez ce que vous pensiez en utilisant ``sizeof``. (bonus: expliquez vos résultats.) - - .. code-block:: c - - struct foo_t { - char a; - int b; - }; - - -#. Considérez le programme suivant. - - .. literalinclude:: /Programmes/s2_qbf.c - :encoding: utf-8 - :language: c - - * Sans executer le programme, essayez de comprendre son fonctionnement. En particulier, quelles seront les adresses affichées à chaque tour de boucle? - * Compilez le programme et exécutez le. Expliquez sa sortie et comparez avec vos attentes. - * (Bonus) Expliquez les valeurs affichées lors de l'exécution de la dernière boucle. diff --git a/Exercices/Programmes/prog-3.rst b/Exercices/Programmes/prog-3.rst deleted file mode 100644 index dabde89..0000000 --- a/Exercices/Programmes/prog-3.rst +++ /dev/null @@ -1,241 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Questions INGINIOUS -------------------- - -#. Le premier exercice INGINIOUS porte sur le heap et le stack : https://inginious.info.ucl.ac.be/course/LSINF1252/stack_vs_heap - -#. `malloc(3)`_ est une fonction clé en C puisqu'elle permet d'allouer une zone de mémoire. Elle a l'inconvénient de ne *pas* initialiser cette mémoire, contrairement à `calloc(3)`_. Lisez les pages de manuel de ces deux fonctions et implémentez vous-même la fonction `calloc(3)`_ en utilisant `malloc(3)`_ : https://inginious.info.ucl.ac.be/course/LSINF1252/calloc2 - -#. Lorsque l'on utilise les fonctions de la librairie ou les appels systèmes, il est *nécessaire* de vérifier chaque fois leur valeur de retour pour éviter tout problème. Dans cet exercice, vous écrivez une variante de `malloc(3)`_ qui essaye plusieurs fois d'allouer de la mémoire pour pallier à un problème temporaire de manque de mémoire : https://inginious.info.ucl.ac.be/course/LSINF1252/sleep_malloc - -#. La question suivante porte sur les déclarations de types de données (faites seulement les 7 premières sous-questions) : https://inginious.info.ucl.ac.be/course/LSINF1252/types - -#. `strcpy(3)`_ est une fonction de la librairie standard qui permet de copier une chaîne de caractères. Cet exercice vous propose d'écrire une variante de cette fonction : https://inginious.info.ucl.ac.be/course/LSINF1252/strcpy - -#. Lorsque l'on travaille avec les pointeurs, il est possible d'accéder à n'importe quel endroit de la mémoire. Cet exercice vous permet de tester vos compétences de manipulation des pointeurs: https://inginious.info.ucl.ac.be/course/LSINF1252/pointer_types - -#. Un exercice classique pour montrer que l'on comprend bien les pointeurs est de manipuler des listes chainées: https://inginious.info.ucl.ac.be/course/LSINF1252/basic_linked_list - -#. Un exercice sur le parcours simple d'un arbre binaire de recherche https://inginious.info.ucl.ac.be/course/LSINF1252/BST - -#. Un exercice où vous devez analyser l'information reçue d'un modem : https://inginious.info.ucl.ac.be/course/LSINF1252/modem_read - -#. Maintenant que vous avez écrit de nombreuses fonctions sur INGINIOUS, il est temps pour vous d'écrire votre premier programme directement en C. Utilisez un éditeur de texte pour écrire le fichier ``test.c`` qui implémente un sous-ensemble du programme standard `test(1)`_. Pensez à structurer votre code en utilisant des sous-fonctions. Compilez votre programme sur votre ordinateur avant de le soumettre sur INGINIOUS. https://inginious.info.ucl.ac.be/course/LSINF1252/commandetest - - - -Questions complémentaires -------------------------- - -#. En C, on peut définir des tableaux à deux dimensions avec une déclaration comme ``int a[3][3];``. Ecrivez un petit programme qui utilise des pointeurs pour déterminer si un tel tableau à deux dimensions est stocké ligne par ligne ou colonne par colonne. - - .. only:: staff - - .. note:: - - .. code-block:: c - - void main(void) { - int a[3][3]; - - if (&a[0][0] + 1 == &a[1][0]) - printf("Par ligne\n"); - else if (&a[0][0] + 1 == &a[0][1]) - printf("Par colonne\n"); - else - printf("WTF!!!\n"); - } - -#. Exécutez plusieurs fois le code suivant. Expliquez les différents résultats obtenus. - .. code-block:: c - - int global; - void main(void) - { - int local; - int *ptr1 = (int *)malloc(sizeof(*ptr1)); - int *ptr2 = (int *)malloc(sizeof(*ptr2)); - - printf("global %p loc %p p1 %p p2 %p\n", &global, &local, ptr1, ptr2); - } - - .. only:: staff - - .. note:: - - L'adresse de ``global`` ne change pas, car elle fait partie du segment texte du programme. Les autres sont soit sur la pile (stack), ou sur le tas (heap). - -#. Un étudiant a fait l'implémentation d'un sous-ensemble des fonctions définies dans string.h, mais il rencontre quelques problèmes avec son code :download:`/Programmes/src/string.c`. Utilisez `gdb <http://sites.uclouvain.be/SystInfo/notes/Outils/html/gdb.html>`_ pour corriger son code. Utilisez le flag ``-g`` de ``gcc`` pour ajouter les informations de debug dans votre executable. Pour rappel, voici quelques commandes importantes de `gdb <http://sites.uclouvain.be/SystInfo/notes/Outils/html/gdb.html>`_: - - - ``run [ARGS]`` permet de lancer l'execution du programme avec les arguments ARGS si spécifiés. - - ``break string.c:9`` met un point d'arrêt à la ligne 9 du fichier string.c - - ``next`` permet d'executer la ligne courante et de s'arrêter à la ligne suivante - - ``print var`` affiche la valeur de la variable ``var`` - - ``backtrace`` affiche la pile d'appel des fonctions courantes - - ``quit`` quitte `gdb <http://sites.uclouvain.be/SystInfo/notes/Outils/html/gdb.html>`_ - - .. only:: staff - - .. note:: - - 4 erreurs: strlen ne check pas NULL, strlen appelé à chaque itération de strcat, argc pas vérifié, concat_2 pas initialisé - -#. Vous travaillez sur un programme qui doit manipuler des vecteurs. Afin de pouvoir supporter des vecteurs de taille quelconque, vous décidez de réimplémenter ces vecteurs vous même en utilisant des pointeurs. Votre programme définit la structure ``struct vector_t`` et les fonctions ci-dessous. - Implémentez ces fonctions sans jamais utiliser la notation des tableaux en C (``[`` et ``]``). - - - .. literalinclude:: /Programmes/src/vector.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - - - .. only:: staff - - #. Faites l'exercice relatif aux `linked lists <https://inginious.info.ucl.ac.be/course/LSINF1252/linked_lists_1>`_ sur INGInious. - - - .. only:: staff - - #. Expliquez la différence entre `malloc(3)`_ et `calloc(3)`_. D'après vous, quel appel sera le plus lent ? - - .. only:: staff - - #. Dans la fonction ``push`` du programme de manipulation d'un pile :download:`/../Theorie/C/S3-src/stack.c`, faut-il remplacer l'appel à `malloc(3)`_ par un appel à `calloc(3)`_ - - .. note:: - - Non. La zone mémoire est initialisée directement après. - - .. only:: staff - - #. Le prototype de la fonction ``push`` du programme de manipulation d'une pile :download:`/../Theorie/C/S3-src/stack.c`, est ``void push(struct fraction_t *)``. Serait-il possible d'écrire une function push ayant comme prototype ``void push(struct fraction_t)`` ? Qu'est-ce qui changerait dans ce cas ? - - .. note:: - - Pas possible. - - .. only:: staff - - #. Les fonctions ``push`` et ``pop`` définies dans l'exemple de manipulation d'une pile :download:`/../Theorie/C/S3-src/stack.c` utilisent une pile qui est définie par un pointeur qui est une variable globale. Est-il possible de réécrire ces fonctions de façon à ce qu'elles prennent comme argument un pointeur vers la pile ? Leurs prototypes deviendraient : - - - ``void push(struct node_t *, struct fraction_t *);`` - - ``struct fraction_t * pop(struct node_t *);`` - - .. note:: - - Oui, idéalement dans ce cas, il faudrait définir une fonction init qui renverrait un ``struct node_t *``. - - .. only:: staff - - - #. Considérons la structure suivante: - - .. code-block:: c - - typedef struct { - char c; - long l; - short s; - } test_t; - - - Combien de bytes seront utilisés en mémoire pour représenter cette structure? Représentez graphiquement la position en mémoire de chaque élément (utilisez `printf(3)`_ et ``%p``), observez-vous des trous ? Expliquez. - Serait-il possible d'utiliser moins de bytes pour représenter cette structure ? Si oui, comment ? - - .. note:: - - La structure prend 16 bytes d'espace (sur une machine 64-bits - 12 bytes sur une machine 32 bits). C'est dû au fait que les champs sont alignés à des multiples de 64 bits (resp. 32 bits) pour éviter d'avoir des parties de variables copié sur plusieurs registres. Pour optimiser, il suffit de reordonner les champs. Par exemple: - - .. code-block:: c - - typedef struct { - char c; - short s; - long l; - } test_t; - - .. only:: staff - - .. note:: - - Elle bypasse l'alignement décrit dans la question précédente. L'avantage est que la structure prend l'espace minimale n'importe soit l'ordonnancement des champs. Le désavatage est que la CPU doît faire plus de travail pour lire la variable, car des parties de la variable sont sur plusieurs registres, et donc la CPU doît faire des bit-shifts. - -#. Expliquez à quoi sert l'attribut ``packed`` des structures dans `gcc(1)`_ (regardez la manpage). Appliquez cet attribut à la structure de l'exercice précédent. Qu'observez-vous comme différence ? Quel sont les avantages et désavantages d'utiliser cet attribut ? Dans quel cas est-il intéressant de l'utiliser ? - - .. only:: staff - - .. note:: - - Il bypasse l'alignement décrit dans la question précédente. L'avantage est que la structure prend l'espace minimal n'importe soit l'ordonnancement des champs. Le désavantage est que la CPU doît faire plus de travail pour lire la variable, car des parties de la variable sont sur plusieurs registres, et donc la CPU doît faire des bit-shifts. - - - .. only:: staff - - #. Exécutez plusieurs fois le code suivant. Expliquez les différents résultats obtenus. - .. code-block:: c - - int global; - int main (int argc, char** argv) - { - int local; - int *ptr1 = (int *)malloc(sizeof(*ptr1)); - int *ptr2 = (int *)malloc(sizeof(*ptr2)); - - printf("global %p loc %p p1 %p p2 %p\n", &global, &local, ptr1, ptr2); - return EXIT_SUCCESS; - } - - -Questions de bilan final ------------------------- - -#. Lisez attentivement le code suivant et essayez de deviner ce qui sera affiché - sur la sortie standard. Ensuite, compilez le code en activant l'option - ``-fno-stack-protector`` de `gcc(1)`_ et exécutez le code. Avez-vous bien - deviné ? Comment expliquez-vous les lignes affichées par le programme ? - - .. code-block:: c - - #include <stdlib.h> - #include <stdio.h> - #include <string.h> - #include <stdint.h> - - int f() { - uint32_t zero = 0; - char a = 'a'; - char b = 'b'; - char str[8] = "Hello !"; - printf("1) str = \"%s\",\t\tzero = %d,\ta = %c,\tb = %c\n", str, zero, a, b); - strcpy(str, "I love sour!"); - printf("2) str = \"%s\",\tzero = %d,\ta = %c,\tb = %c\n", str, zero, a, b); - a = 'a'; - b = 'b'; - printf("3) str = \"%s\",\tzero = %d,\ta = %c,\tb = %c\n", str, zero, a, b); - return 0; - } - - int main(int argc, char *argv[]) { - return f(); - } - -#. *Question ouverte*. Soit la structure ``pair_t`` suivante : - - .. code-block:: c - - typedef struct pair { - int a; - int b; - } pair_t; - - - Comment feriez-vous pour stocker dans les - variables ``pair_t *p1, *p2`` les pointeurs vers deux instances de ``pair_t`` - allouées sur le heap de manière contiguë (i.e. les deux structures se suivent - directement dans la mémoire) ? diff --git a/Exercices/Programmes/prog-4-asm.rst b/Exercices/Programmes/prog-4-asm.rst deleted file mode 100644 index b41356b..0000000 --- a/Exercices/Programmes/prog-4-asm.rst +++ /dev/null @@ -1,93 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices -========= - -#. Dans le cours théorique, nous avons parlé des instructions ``set`` qui permettent de fixer la valeur d'un byte d'un registre en fonction de la valeur des drapeaux du registre ``eflags``. Comment feriez-vous pour compiler en assembleur la ligne ``b=(a>0)`` sans utilisez cette instruction et en sachant que les valeurs de ``a`` et ``b`` sont initialement dans les registres ``%eax`` et ``%ecx``. Pour répondre à cette question, écrivez d'abord un code en C semblable au code ci-dessous : - - .. code-block:: c - - if ( condition) - { b=1; } - else - { b=0; } - - -#. Avec le compilateur gcc, il est aussi possible de compiler du code assembleur directement dans une programme C. Cette fonctionnalité est intéressante si vous voulez tester de petites fonctions écrites en langage assembleur. Ainsi, une fonction baptisée ``rien`` et qui ne fait absolument rien peut s'écrire comme suit: - - - .. code-block:: c - - extern void rien(); // indique au compilateur que la fonction est externe - - __asm__( - "rien:\n" - " ret\n" - ); - - - En utilisant l'assembleur [IA32]_, écrivez les instructions assembleur qui permettent d'implémenter une fonction qui ne prend aucun argument et retourne toujours l'entier ``1``. - - .. only:: staff - - .. note:: - - .. code-block:: c - - movl $1,%eax - ret - - - De la même façon, écrivez la fonction ``add`` qui prend deux arguments de type ``int`` et retourne la somme de ces deux arguments. - - .. only:: staff - - .. note:: - - .. code-block:: c - - /* add(int a, int b) */ - __asm__( - "add:\n" - " subl $8, %esp\n" - " movl 16(%esp), %eax\n" - " movl 12(%esp), %ebx\n" - " movl %ebx, %eax\n" - " addl $8, %esp\n" - " ret\n" - ); - -#. Considérons une fraction de la mémoire représentée dans le tableau ci-dessous. - - ========== ======== - Adresse Valeur - ========== ======== - 0x0C 0x00 - 0x08 0xFF - 0x04 0x02 - 0x00 0x01 - ========== ======== - - Si ``%esp`` contient initialement la valeur ``0x0C`` et que ``%eax`` et ``%ebx`` contiennent respectivement ``0x02`` et ``0x03``, que deviennent cette mémoire et les registres durant l'exécution de : - - .. code-block:: nasm - - pushl %eax - pushl %ebx - popl %ecx - -#. En C, il n'est pas rare de voir dans certains programmes que la valeur de retour de certaines fonctions est ignorée. C'est une mauvaise pratique qui peut donner lieu à pas mal de problèmes. Connaissant la façon dont la valeur de retour d'une fonction ``int f()`` est gérée en assembleur, expliquez ce qu'il se passe en pratique lorsque la valeur de retour de ``f`` n'est pas sauvegardée. - - .. only:: staff - - .. note:: - - La valeur de retour étant dans %eax, il n'y a aucun problème à l'ignorer, elle sera juste écrasée à la première utilisation de %eax - - - - -#. Vous trouverez sur INGInious plusieurs exemples de questions typiques sur l'assembleur à l'examen. Ces questions portent sur la traduction d'un code assembleur dans son équivalent en C. `Première question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm1>`_, `deuxième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm2>`_, `troisième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm3>`_ et `quatrième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm4>`_ . - diff --git a/Exercices/Programmes/prog-4.rst b/Exercices/Programmes/prog-4.rst deleted file mode 100644 index 62b829b..0000000 --- a/Exercices/Programmes/prog-4.rst +++ /dev/null @@ -1,173 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices INGINIOUS -=================== - -Deux sortes d'exercices INGINIOUS vous sont proposés durant cette semaine. Les premiers portent sur les structures chaînées car ces structures de données permettent de bien vérifier la compréhension des pointeurs en C. - - - https://inginious.info.ucl.ac.be/course/LSINF1252/simple_stack - - https://inginious.info.ucl.ac.be/course/LSINF1252/cmp_func - - https://inginious.info.ucl.ac.be/course/LSINF1252/linked_structs - - https://inginious.info.ucl.ac.be/course/LSINF1252/advanced_queue - - https://inginious.info.ucl.ac.be/course/LSINF1252/order_relation_linked_list - -Après avoir écrit de nombreuses fonctions C, il est maintenant temps pour vous de commencer à écrire des -programmes composés de plusieurs fonctions. Pour cela, l'utilitaire `make(1)`_ vous sera très utile. Prenez un peu de temps pour lire le chapitre qui lui est consacré dans le syllabus et essayez de répondre aux questions ci-dessous : - - - https://inginious.info.ucl.ac.be/course/LSINF1252/s2_make - - https://inginious.info.ucl.ac.be/course/LSINF1252/s2_make_calc - - https://inginious.info.ucl.ac.be/course/LSINF1252/s2_make_mcq - -.. only:: staff - - - https://inginious.info.ucl.ac.be/course/LSINF1252/s3_make - - https://inginious.info.ucl.ac.be/course/LSINF1252/s3_make_mcq - - https://inginious.info.ucl.ac.be/course/LSINF1252/s3_cunit_basics - - https://inginious.info.ucl.ac.be/course/LSINF1252/s3_make_tests - -Lorsque l'on écrit des programmes en C ou dans un autre langage, il est important de tester -le bon fonctionnement de toutes les fonctions du programme pour éviter des erreurs et autres -bugs difficiles à corriger. L'idéal est de commencer par écrire les tests qui valident le bon -fonctionnement de chaque fonction *avant* d'écrire cette fonction. Plusieurs librairies peuvent vous -aider à écrire de tels tests. CUnit (:ref:`outils:ref_cunit`) est l'un d'entre elles. -Prenez le temps de lire le chapitre -qui lui est consacré dans le syllabus. - -Pour démontrer votre bon utilisation de `make(1)`_ et CUnit, reprenez le programme que vous -avez écrit pour l'exercice `test <https://inginious.info.ucl.ac.be/course/LSINF1252/commandetest>`_ -, -divisez-le en plusieurs fichiers, ajoutez-y des tests unitaires pour chaque fonction et -utilisez `make(1)`_ pour automatiser le tout. Si vous voulez allez plus loin, essayez d'utiliser -la librarie `getopt(3)`_ pour traiter les arguments reçus en ligne de commande. - - -Exercices -========= - -#. Le principe de localité est un principe très important pour comprendre les performances de programmes qui accèdent beaucoup à la mémoire. Considérons tout d'abord un programme qui doit initialiser une grande zone mémoire obtenue via `malloc(3)`_. - - * Ecrivez en C une fonction d'initialisation de cette zone mémoire à la valeur ``1252`` qui profite de la localité spatiale - * Ecrivez en C une fonction d'initialisation de cette zone mémoire qui ne profite pas du tout de la localité spatiale - * Comparez les performances des deux programmes que vous avez écrit. Si nécessaire, désactivez l'optimisation du compilateur. - -#. Un programmeur doit manipuler des tableaux contenant 100.000.000 éléments. Chaque élément du tableau contient un nombre réel et une chaîne contenant 40 caractères. Une opération très courante à effectuer est de calculer la somme de tous les éléments du tableau. A votre avis, quelles seront les performances des deux implémentations suivantes de ce programme : - - * Le tableau est implémenté comme un tableau contenant 100.000.000 structures avec dans chaque structure un ``float`` et un ``char c[40]``. - * Le tableau est implémenté comme deux tableaux distincts. Le premier contient tous les ``float`` et le second toutes les chaînes de caractères. - -#. Un programmeur propose deux fonctions différentes pour calculer la somme des éléments d'un tableau à deux dimensions. Intégrez ces fonctions dans un programme afin d'en mesurer les performances avec `gettimeofday(2)`_. Quelle est la variante la plus rapide et pourquoi ? - - .. literalinclude:: src/sumarray.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -.. only:: staff - - #. Dans le cours théorique, nous avons parlé des instructions ``set`` qui permettent de fixer la valeur d'un byte d'un registre en fonction de la valeur des drapeaux du registre ``eflags``. Comment feriez-vous pour compiler en assembleur la ligne ``b=(a>0)`` sans utilisez cette instruction et en sachant que les valeurs de ``a`` et ``b`` sont initialement dans les registres ``%eax`` et ``%ecx``. Pour répondre à cette question, écrivez d'abord un code en C semblable au code ci-dessous : - - .. code-block:: c - - if ( condition) - { b=1; } - else - { b=0; } - - - #. Avec le compilateur gcc, il est aussi possible de compiler du code assembleur directement dans une programme C. Cette fonctionnalité est intéressante si vous voulez tester de petites fonctions écrites en langage assembleur. Ainsi, une fonction baptisée ``rien`` et qui ne fait absolument rien peut s'écrire comme suit: - - - .. code-block:: c - - extern void rien(); // indique au compilateur que la fonction est externe - - __asm__( - "rien:\n" - " ret\n" - ); - - - En utilisant l'assembleur [IA32]_, écrivez les instructions assembleur qui permettent d'implémenter une fonction qui ne prend aucun argument et retourne toujours l'entier ``1``. - - .. note:: - - .. code-block:: c - - movl $1,%eax - ret - - - De la même façon, écrivez la fonction ``add`` qui prend deux arguments de type ``int`` et retourne la somme de ces deux arguments. - - .. note:: - - .. code-block:: c - - /* add(int a, int b) */ - __asm__( - "add:\n" - " subl $8, %esp\n" - " movl 16(%esp), %eax\n" - " movl 12(%esp), %ebx\n" - " movl %ebx, %eax\n" - " addl $8, %esp\n" - " ret\n" - ); - - - #. Considérons une fraction de la mémoire représentée dans le tableau ci-dessous. - - ========== ======== - Adresse Valeur - ========== ======== - 0x0C 0x00 - 0x08 0xFF - 0x04 0x02 - 0x00 0x01 - ========== ======== - - Si ``%esp`` contient initialement la valeur ``0x0C`` et que ``%eax`` et ``%ebx`` contiennent respectivement ``0x02`` et ``0x03``, que deviennent cette mémoire et les registres durant l'exécution de : - - .. code-block:: nasm - - pushl %eax - pushl %ebx - popl %ecx - - #. En C, il n'est pas rare de voir dans certains programmes que la valeur de retour de certaines fonctions est ignorée. C'est une mauvaise pratique qui peut donner lieu à pas mal de problèmes. Connaissant la façon dont la valeur de retour d'une fonction ``int f()`` est gérée en assembleur, expliquez ce qu'il se passe en pratique lorsque la valeur de retour de ``f`` n'est pas sauvegardée. - - .. note:: - - La valeur de retour étant dans %eax, il n'y a aucun problème à l'ignorer, elle sera juste écrasée à la première utilisation de %eax - - - - #. Trois exercices se trouvent sur INGInious. Un exercice sur la `Comparaison de Fractions <https://inginious.info.ucl.ac.be/course/LSINF1252/fractions>`_, un nouvel exercice sur les `les listes chaînées <https://inginious.info.ucl.ac.be/course/LSINF1252/linked_lists_2>`_ et finalement l'implémentation de `strsep <https://inginious.info.ucl.ac.be/course/LSINF1252/strsep>`_. - - #. Vous trouverez également sur INGInious plusieurs exemples de questions typiques sur l'assembleur à l'examen. Ces questions portent sur la traduction d'un code assembleur dans son équivalent en C. `Première question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm1>`_, `deuxième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm2>`_, `troisième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm3>`_ et `quatrième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm4>`_ . - - -Question de bilan final -======================= - -Considérez le programme suivant. - - .. literalinclude:: src/s4_qbf.c - :encoding: utf-8 - :language: c - -* Dessinez le schéma de l'organisation mémoire du programme. Identifiez dessus où se trouvent toutes les variables présentes dans le programme. -* Pour chaque ligne du programme, indiquez quelles zones mémoires sont accédées et leur contenu après exécution. - -.. only:: staff - - Cette question est importante à réaliser, n'hésitez pas à y passer une bonne demi-heure. Insistez pour commencer à dessiner le schema au tableau et que les étudiants interagissent directement dessus. - - Dans la section code: f, main. - Dans la section initialisée: cours et 97850 (insistez sur ce dernier!). - Dans la section heap: la zone mémoire pointée par tab. - Dans la stack (à des niveaux différents): d, tab, res, c, x. Notez que les arguments des fonctions sont aussi mis sur la stack (y compris a, b, argc et argv), mais insistez là -dessus lors de l'exécution du programme. - Dans la zone param/env: le contenu de argv. \ No newline at end of file diff --git a/Exercices/Programmes/prog-5.rst b/Exercices/Programmes/prog-5.rst deleted file mode 100644 index b6c8219..0000000 --- a/Exercices/Programmes/prog-5.rst +++ /dev/null @@ -1,167 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices INGINIOUS -------------------- - -Les exercices INGINIOUS de cette semaine ont comme objectif de vous familiariser avec -les appels systèmes `open(2)`_, `close(2)`_, `read(2)`_, `write(2)`_ et `stat(2)`_ qui -permettent de manipuler les fichiers contenant des données binaires. - -1. Le `premier exercice <https://inginious.info.ucl.ac.be/course/LSINF1252/s5_file_exists>`_ est -une mise en jambe. En utilisant `open(2)`_ (et `close(2)`_), pouvez-vous vérifier si un -fichier dont le nom est passé en argument existe ? - -2. L'avantage des fichiers binaires est qu'il est possible de sauvegarder directement un tableau stocké en mémoire dans le fichier en utilisant `write(2)`_ pour écrire chaque élément du tableau dans un fichier. En lisant les pages de manuel de `write(2)`_, vous verrez même qu'un seul appel à `write(2)`_ peut suffire à sauver tout un tableau dans un fichier. Ecrivez cette `fonction save <https://inginious.info.ucl.ac.be/course/LSINF1252/s4_file_save_struct>`_. - -3. Un fichier binaire peut être utilisé pour stocker tous les éléments d'un tableau d'entiers. Ecrivez la `fonction sum_file <https://inginious.info.ucl.ac.be/course/LSINF1252/s4_read_file_array_integer>`_ qui prend comme argument un nom de fichier contenant un tel tableau et calcule la somme de tous les entiers stockés dans le fichier. Pensez aux cas d'erreurs possibles si le fichier n'a pas la bonne taille. - -4. Vous continuez à explorer les fichiers binaires qui permettent de stocker tous les éléments d'un tableau d'entiers. Cette fois-ci vous devez écrire une `première fonction <https://inginious.info.ucl.ac.be/course/LSINF1252/s5_big_array_get_set>`_ pour récupérer la valeur d'un -élément du tableau stocké dans le fichier et une `seconde fonction <https://inginious.info.ucl.ac.be/course/LSINF1252/s5_big_array_get_set>`_ pour modifier la valeur d'un élément de ce tableau. - -5. En ligne de commande, `cp(1)`_ vous permet de copier complètement un fichier quel que soit son contenu. Pouvez-vous implémenter l'équivalent de cette commande dans la `fonction copy <https://inginious.info.ucl.ac.be/course/LSINF1252/s5_file_copy>`_ que vous allez écrire en C. - - - -Exercices ---------- - - -1. Consultez la page de manuel de `chmod(1)`_ ou d'autres sources pour déterminer la signification des bits de permissions lorsqu'ils sont associés à un répertoire. Expliquez notamment à quoi sert le bit d'exécution sur un répertoire. - - .. only:: staff - - le bit x permet d'autoriser le parcours du répertoire - -2. Quelles sont les permissions associées à votre répertoire de login ? Ces permissions permettent-elles à d'autres étudiants d'accéder à vos fichiers ? Si oui, utilisez `chmod(1)`_ pour supprimer cette autorisation de lecture par défaut dans votre répertoire. - -3. Comment feriez-vous en utilisant `chmod(1)`_ pour créer un répertoire dans lequel vous pouvez lire et écrire, tout étudiant peut lire mais aucun membre du staff (à part l'administrateur système bien entendu) ne peut lire ? - - .. only:: staff - - il faut que l'étudiant soit dans le même groupe et que le répertoire soit accessible au groupe, au minimum 00750 - -4. Le répertoire ``/tmp`` est particulier car il est destiné à pouvoir contenir des fichiers de n'importe quel utilisateur. Pouvez-vous expliquer les permissions utilisées pour ce répertoire ? - - .. only:: staff - - pas besoin de parler du sticky bit sauf si les étudiants l'abordent - -.. only:: staff - - 5. La commande `lsof(8)`_ permet de lister les fichiers ouverts par un processus. A votre avis, comment cette commande fonctionne-t-elle ? - - L'OS maintient une table de tous les fichiers ouverts avec leur inode. Cette table est accessible via /proc - - 6. Lorsqu'un exécutable est lancé avec `execve(2)`_, il hérite des descripteurs de fichiers qui étaient ouverts dans le processus qui a exécuté `execve(2)`_. Comment feriez-vous en utilisant uniquement l'appel système `open(2)`_ pour déterminer combien de descripteurs de fichiers étaient ouverts au démarrage de votre programme ? - - Il suffit de regarder quelle est la valeur de retour de open. Si open retourne 3, cela indique que seuls stdin, stdout et stderr étaient ouverts - -5. Est-il possible dans un processus d'exécuter ``int fd1=open("f",O_RDWR);`` et juste après ``int fd2=open("f",O_RDONLY);`` ? Si oui, quelles seront les valeurs des descripteurs de fichiers retournés lors des appels système. Si non, quelles seront les valeurs de ``errno``? - - .. only:: staff - - Oui, c'est possible. Dans ce cas, les offset pointers sont différents pour les deux copies du même fichier. Il est utile de faire un dessin pour que les étudiants visualisent bien la situation - -.. only:: staff - - 8. Dans un shell, on exécute la commande ``/bin/echo "1234" > /test.txt``. Quels sont les appels systèmes effectués par le shell avant l'exécution de ``/bin/echo`` ? - - - - fork, fermer stdout, ouvrir test.txt - par défaut il aura le premier fd libre, c-a-d celui de stdout qui vient d'être fermé et ensuite exécution avec execve - - 9. Dans un shell, on exécute la commande ``./a.out < in.txt > out.txt``. Quelles sont les appels systèmes qui doivent être exécutés par le shell pour lancer cet exécutable comme demandé par l'utilisateur ? - - - fork puis dans le fils - close(stdin) - open(in.txt,O_RDONLY) - close(stdout) - open(out.txt,O_WRONLY) - execve (qui préserver les descripteurs ouverts) - - 10. Dans un shell, on exécute la commande ``cat < in.txt | grep sinf1252``. Quelles sont les appels systèmes qui doivent être exécutés par le shell pour lancer cette commande comme demandé par l'utilisateur ? - - deux forks - premier fils - close(stdin) - close(stdout) - - 11. Dans un shel `bash(1)`_, lorsque l'on suffixe une commande avec ``2>&1``, le shell redirige la sortie d'erreur standard vers la sortie standard. Quels sont les appels systèmes utilisés par le shell pour réussir cette redirection ? - - le shell va faire fork pour exécuter le programme, mais avant il doit fermer stdout et le dupliquer avec dup ou dup2 - - -6. Comment se comporte l'appel système `write(2)`_ lorsque le disque sur lequel on souhaite écrire des données est plein ? Peut-on distinguer cette erreur d'un problème d'écriture sur le disque ? - - .. only:: staff - - il retourne une erreur et met errno à ENOSPC - -7. A quoi sert l'appel système `sync(2)`_ ? - - .. only:: staff - - A forcer l'écriture des données sur le disque - -8. Le programme :download:`/Programmes/src/writeperf.c` permet de tester les performances des écritures dans write sur un système de fichiers. Compilez-le et exécutez le avec différents tailles de buffers passés à `write(2)`_. Mesurez le temps d'exécution avec la commande `time(1posix)`_ et comparez le temps qu'il faut pour écrire 100MB en blocs de 1 MB ou en blocs de 1 KB. Faites de même en activant la synchronisation avec le paramètre ``-s``. - - .. only:: staff - - Les performances décroissent car il y a plus d'appels systèmes qui sont effectués. sync force l'écriture et bypasse le buffer. Il est utile de mentionner l'existence de ce buffer - -.. only:: staff - - 15. Effectuez l'exercice sur la manipulation de fichiers sur `INGInious <https://inginious.info.ucl.ac.be/course/LSINF1252/fichiers>`_. - -.. 17. `tee(1)`_ est un utilitaire qui permet de recopier son entrée standard vers un ou plusieurs fichiers et également vers sa sortie standard. Il peut être utile pour par exemple inspecter des données échangées entre deux processus à travers un :term:`pipe`. Quels sont les appels systèmes exécutés par `tee(1)`_ lors de l'exécution de la commande ``cat /tmp/t | tee /tmp/tee.out | grep "sinf1252" `` - - -Questions de bilan final ------------------------- - -Un système informatique est utilisé par 3 utilisateurs: ``quentin``, ``brigitte`` and ``françois``. Ils appartiennent à des groupes différents comme décrit ci-dessous. - -.. code-block:: bash - - $ groups quentin - quentin : quentin boys - - $ groups brigitte - brigitte: brigitte girls sudo wheel - - $ groups françois - françois: françois boys - -#. ``quentin`` ouvre le fichier ``/shared_folder/petit_projet.c`` en utilisant les drapeaux ``O_CREAT | O_RDWR | O_TRUNC``, donne les permissions ``664``, l'associe au groupe ``boys`` et écrit le code de son projet dedans. - - #. Quelles sont les permissions que doit avoir ``/shared_folder`` pour que ``françois`` et ``brigitte`` puissent accéder au fichier ``petit_projet.c``? - - - #. ``brigitte``, de son côté, lance ensuite les commandes suivantes. - - .. code-block:: bash - - $ sudo chown brigitte:girls /shared_folder/petit_projet.c - $ chmod 660 /shared_folder/petit_projet.c - - ``quentin`` veut maintenant sauvegarder son travail avec l'appel système ``write(2)`` sur le file descriptor obtenu avec le ``open(2)`` précédent, et puis le ferme avec ``close(2)``. Que se passe-t-il? - - #. ``françois`` aimerait aussi rajouter son nom sur le projet et ouvre le fichier avec ``open(2)`` avec le drapeau ``O_WRONLY`` pour ensuite utiliser ``write(2)``. Que se passe-t-il? - - #. Finalement, ``quentin`` souhaite relire son code et fait appel à ``open(2)`` avec le drapeau ``O_RDONLY``, pour ensuite utiliser ``read(2)``. Que se passe-t-il? - - -#. Considérons le fichier ``/shared_folder/music.mp3`` avec les permissions ``644`` possédé par ``françois`` et associé au groupe ``boys``. - - #. Est-ce que ``quentin`` peut écouter le morceau? Qu'en est-il pour ``brigitte``? Quelles sont les permissions requises pour ``/shared_folder`` afin qu'ils y accèdent? - - #. Supposons maintenant que ``quentin`` et ``brigitte`` sont en train d'écouter le morceau MP3. Observant qu'il ne lui reste que peu d'espace disque disponible, ``françois`` supprime le fichier ``/shared_folder/music.mp3`` avec la commande ``rm``. - - #. Que se passe-t-il pour ``brigitte`` et ``quentin``? - - #. ``quentin`` ferme ensuite le fichier avec ``close(2)``. Qui a encore accès au fichier? - - #. ``brigitte`` ferme à son tour son file descriptor. Qui a encore accès au fichier? \ No newline at end of file diff --git a/Exercices/Programmes/prog-6.rst b/Exercices/Programmes/prog-6.rst deleted file mode 100644 index 56fa13a..0000000 --- a/Exercices/Programmes/prog-6.rst +++ /dev/null @@ -1,196 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Exercices -========= - -#. La fonction `pthread_join(3)`_ utilise un deuxième argument de type ``void **``. Pourquoi est-il nécessaire d'utiliser un pointeur vers un pointeur et pas simplement un pointeur ``void *`` ? - -#. A votre avis, pourquoi le premier argument de la fonction `pthread_create(3)`_ est-il un pointeur de type `pthread_t *` alors que le premier argument de la fonction `pthread_join(3)`_ est lui simplement de type `pthread_t`? - -#. Avec les threads POSIX, comment peut-on passer plusieurs arguments à la fonction démarrée par `pthread_create(3)`_ ? Ecrivez un petit exemple en C qui permet de passer un entier et un caractère à cette fonction. - -.. only:: staff - - Ecrivez un code qui permet de récupérer un tableau d'entiers d'un thread. Exercice disponible sur `INGInious threads_1 <https://inginious.info.ucl.ac.be/course/LSINF1252-new/threads_1>`_. - -#. Essayez de lancer un grand nombre de threads d'exécution sur votre machine. Quel est le nombre maximum de threads que `pthread_create(3)`_ vous autorise à lancer ? - -#. Quelle différence voyez-vous entre `pthread_exit(3)`_ et `exit(3)`_ ? - -#. Un étudiant souhaite passer un tableau d'entiers comme argument à un thread et écrit le code suivant. Qu'en pensez-vous ? - - .. literalinclude:: /Programmes/src/pthread-array.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -#. Considérons le programme de test des threads POSIX ci-dessous. Ce programme utilise 4 threads qui incrémentent chacun un million de fois une variable globale. - - .. literalinclude:: /Programmes/src/pthread-test.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - - Exécutez ce programme (:download:`/Programmes/src/pthread-test.c`) et observez le résultat qu'il affiche à l'écran. Pouvez-vous expliquer le comportement de ce programme ? - -#. Lorsque l'on travaille avec des threads, il est important de bien se rappeler dans quelle zone de la mémoire les différents types d'information sont stockés dans un programme C. Le programme ci-dessous fournit quelques exemples de : - - * variable globale statique - * variable globale - * variable déclarée dans la fonction ``main`` et dont le pointeur est un des arguments aux threads - * variable statique déclarée à l'intérieur d'une fonction - * variable locale déclarée dans une fonction - - - .. code-block:: c - - #include <pthread.h> - #include <stdio.h> - #include <stdlib.h> - - #define N_THREADS 3 - - struct thread_args { - int *ptr; - int thread_num; - }; - - pthread_mutex_t mutex; - - static int global_static = 1; - int global_int = 11; - - static void *thread_work(void *ptr) - { - struct thread_args *arg = (struct thread_args *)ptr; - int thr_num = arg->thread_num; - - static int static_val = 111; - int local_val = 222; - int *main_val = arg->ptr; - - pthread_mutex_lock(&mutex); - - printf("thread no %d, global_static is %d\n", thr_num, global_static); - fflush(stdout); - global_static++; - - printf("thread no %d, global_int is %d\n", thr_num, global_int); - fflush(stdout); - global_int++; - - printf("thread no %d, static_val is %d\n", thr_num, static_val); - fflush(stdout); - static_val++; - - printf("thread no %d, local_val is %d\n", thr_num, local_val); - fflush(stdout); - local_val++; - - printf("thread no %d, main_val is %d\n", thr_num, *main_val); - fflush(stdout); - (*main_val)++; - - pthread_mutex_unlock(&mutex); - - pthread_exit(NULL); - } - - int main (int argc, char const *argv[]) - { - int i; - int val = 22; - struct thread_args args[N_THREADS]; - pthread_t threads[N_THREADS]; - - pthread_mutex_init(&mutex, NULL); - - for (i = 0; i < N_THREADS; ++i) { - args[i].ptr = &val; - args[i].thread_num = i; - pthread_create(&threads[i], NULL, thread_work, (void *)&args[i]); - } - - for (i = 0; i < N_THREADS; ++i) - pthread_join(threads[i], NULL); - - return 0; - } - -#. D'après vous (essayez d'expérimenter), que se passe-t-il si: - - * un thread exécute deux fois `pthread_mutex_lock(3posix)`_ sur le même mutex d'affilée ? - * un thread exécute deux fois d'affilée `pthread_mutex_unlock(3posix)`_ - - -#. Dans la partie théorie, nous avons vu comment s'assurer qu'un seul thread peut accéder à une zone critique à la fois. On vous propose deux solutions (dont une déjà vue dans la partie théorie): - - .. code-block:: c - - pthread_mutex_lock(&mutex_global); - global=increment(global); - pthread_mutex_unlock(&mutex_global); - - et - - .. code-block:: c - - while (pthread_mutex_trylock(&mutex_global)) ; - global=increment(global); - pthread_mutex_unlock(&mutex_global); - - Discuter les avantages et inconvénients des ces deux solutions. (Regardez la man page de `pthread_mutex_trylock(3posix)`_) - -#. L'outil ``helgrind`` (décrit dans la section :ref:`outils:helgrind-ref`) permet de trouver des deadlocks ou autres problèmes. Exécutez-le sur le petit programme suivant :download:`/Programmes/src/pthread-philo.c` et analysez ce qu'il affiche. - - - -.. only:: staff - - Résolvez des sudokus. Exercice disponible sur `INGInious sudoku <https://inginious.info.ucl.ac.be/course/LSINF1252-new/sudoku>`_. - -Mini-projet: Mesure de performance -================================== - -On vous demande de transformer un code monothreadé en un code multithreadé. Vous devez vous baser sur le code présent dans l'archive: :download:`/Programmes/src/prog-5-measure/prog-5-measure.tar.gz`. Le programme permet de chiffrer ou déchiffrer des mots de passe passés en argument au programme. Ce dernier prend plusieurs arguments additionels: - - * ``-p`` définit le mot de passe à utiliser - * ``-n`` définit le nombre de fois que chaque mot de passe est chiffré/déchiffré - * ``-d`` définit que le programme doit déchiffrer les mots de passes (il chiffre par défaut) - -Un exemple d'utilisation du programme est le suivant: - - .. code-block:: console - - $ ./crypt -p toto -n 10000 test Bonjour! - CAC7EF483F90C988 0F5766990DFA0914 - $ ./crypt -p toto -n 10000 -d CAC7EF483F90C988 0F5766990DFA0914 - test Bonjour! - -Vous devez donc vous baser sur le code existant afin de paralléliser le chiffrement/déchiffrement des mots de passe. Vous ne devez pas nécessairement afficher les mots de passe (ou chiffrés) dans l'ordre. Vous devez cependant ajouter un argument ``-t`` au programme qui définit le nombre de threads que le programme exécutera en parallèle. - -On vous demande également d'évaluer l'impact des arguments ``-t`` et ``-n`` sur l'exécution du programme. Pensez à exécuter votre programme avec un argument ``-n`` suffisamment grand si vous voulez évaluer l'impact de ``-t``. On vous demande plus spécifiquement de générer un graphique qui montre pour différentes valeurs le temps de calcul. Vous pouvez utiliser `time(1posix)`_ afin de récupérer le temps d'exécution d'un programme: - - .. code-block:: console - - $ time ./crypt -p toto -n 10000 -d CAC7EF483F90C988 0F5766990DFA0914 - test Bonjour! - - real 0m0.019s - user 0m0.016s - sys 0m0.000s - $ time ./crypt -p toto -n 9999999 -d 774069EB86ED86FA 7D1AC0A4CF56F942 - test Bonjour! - - real 0m16.104s - user 0m16.101s - sys 0m0.000s - - - -.. exemple et tutoriel intéressant -.. https://computing.llnl.gov/tutorials/pthreads/ - diff --git a/Exercices/Programmes/prog-7.rst b/Exercices/Programmes/prog-7.rst deleted file mode 100644 index adcdfde..0000000 --- a/Exercices/Programmes/prog-7.rst +++ /dev/null @@ -1,120 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Exercices -========= - - -#. Expliquez pourquoi la fonction `sem_wait(3)`_ doit prendre comme argument ``sem_t *``, un - pointeur vers une structure ``sem_t``, et non une structure ``sem_t``. - - .. only:: staff - - Parceque la valeur du sémaphore doit être modifiée par la fonction ou la queue associée au sémaphore - - -#. Dans quels cas la fonction `sem_init(3)`_ risque-t-elle de retourner une erreur ? - - .. only:: staff - - valeur initiale trop grande - - -#. La librairie POSIX contient également une fonction `sem_timedwait(3)`_. Quel intérêt voyez-vous à cette fonction ? Dans quel cas pourrait-elle servir en pratique ? - - .. only:: staff - - en pratique cela permet d'éviter de rester bloqué longtemps, mais cela ne remplace pas une solution correcte qui évite les deadlocks. A priori, ce n'est pas une fonction à utiliser dans le code qu'ils rendent. - - -#. Un étudiant propose d'implémenter le producteur du problème des producteurs-consommateurs comme ci-dessous : - - .. code-block:: c - - // Producteur - void producer(void) - { - int item; - while(true) - { - item=produce(item); - pthread_mutex_lock(&mutex); // modification - sem_wait(&empty); // modification - insert_item(); - pthread_mutex_unlock(&mutex); - sem_post(&full); - } - } - - Que pensez-vous de cette solution (en supposant que le consommateur continue à fonctionner comme indiqué dans les notes) ? - - .. only:: staff - - On a inversé les locks dans le producteur. Cela peut causer un deadlock puisque le producteur ayant pris mutex, si empty est bloquant, ce qui est le cas lorsque le buffer est vide, le producteur empêchera tout consommateur d'accéder au buffer et donc le système sera en deadlock - -#. Un étudiant propose d'implémenter le consommateur du problème des producteurs-consommateurs comme ci-dessous : - - .. code-block:: c - - // Consommateur - void consumer(void) - { - int item; - while(true) - { - sem_wait(&full); - pthread_mutex_lock(&mutex); - item=remove(item); - sem_post(&empty); // modification - pthread_mutex_unlock(&mutex); // modification - } - } - - Que pensez-vous de sa solution (en supposant que le producteur n'a pas été modifié) ? - - .. only:: staff - - L'ordre des unlock a changé. Ici, cela n'a pas d'impact sur la solution. - -#. Un étudiant propose de résoudre le problème du rendez-vous en utilisant le code ci-dessous. Comparez sa solution avec la solution qui a été vue au cours. - - .. code-block:: c - - premiere_phase(); - - pthread_mutex_lock(&mutex); - count++; - pthread_mutex_unlock(&mutex); // modification - if(count==N) - sem_post(&rendezvous); - - sem_wait(&rendezvous); - sem_post(&rendezvous); - - seconde_phase(); - - .. only:: staff - - Cela fonctionne aussi, voir [Downey2008]_. En gros, même si on place le test de ``count`` en dehors du mutex, ce n'est pas grave parce que lorsque count vaut N, il ne peut plus y avoir de thread qui soit en train de manipuler la variable count puisque tous les autres threads sont par définition bloqués. Le seul risque serait count=N-1, un thread fait unlock et est interrompu, le suivant rentre dans la section critique et increment count. Si le premier redémarre a ce moment, il verra que count==N et fera sem_post, ce que le dernier thread fera aussi. On aura donc un sem_post de trop, mais tous les threads auront atteints le rendez-vous - - -#. Considérons un problème du rendez-vous avec 13 threads. Lorsque tous les threads ont passé le rendez-vous, quelle sera la valeur du sémaphore ``rendezvous`` retournée par la fonction `sem_getvalue(3)`_ ? - - .. only:: staff - - 1 puisque tous les threads ont fait wait puis post alors que le dernier a fait post avant de faire son wait - -#. La librairie POSIX contient la fonction `sem_getvalue(3)`_ qui permet de récupérer la valeur d'un sémaphore sans pour autant effectuer d'opération `sem_wait(3)`_ sur ce sémaphore. Elle peut être utilisée pour observer l'évolution de la valeur d'un sémaphore. Modifiez le programme des philosophes contenant un deadlock (:download:`/Programmes/src/pthread-philo-sem.c`) et ajoutez-y un thread qui observe toutes les 10 secondes l'évolution des sémaphores et arrête tout le programme via `exit(3)`_ en affichant un message d'erreur si les valeurs des sémaphores n'ont pas changé. - -#. Les mutex et les sémaphores peuvent être utilisés pour résoudre des problèmes d'exclusion mutuelle. Le programme :download:`/QCM/S7/src/pthread-mutex-perf.c` utilise des mutex. Modifiez-le pour utiliser des sémaphores à la place et comparez le coût en termes de performance entre les mutex et les sémaphores. - -#. Faites l'exercice sur les `producteurs/consommateurs <https://inginious.info.ucl.ac.be/course/LSINF1252/PC>`_ sur `INGInious <https://inginious.info.ucl.ac.be>`_. - -Outils -====== - -#. Si vous ne l'aviez pas fait durant la troisième semaine, prenez le temps pour faire l'exercice relatif à `gdb(1)`_ . Le debugger pourra vous être très utile pour le projet. - -#. Un autre outil particulièrement intéressant est :ref:`outils:valgrind-ref` qui permet de détecter différents problèmes d'allocation de la mémoire. Prenez le temps nécessaire pour comprendre comment ce logiciel fonctionne, cette compétence vous fera gagner du temps plus tard et vous évitera de perdre du temps pour corriger un problème d'allocation de mémoire difficile à détecter. \ No newline at end of file diff --git a/Exercices/Programmes/prog-8.rst b/Exercices/Programmes/prog-8.rst deleted file mode 100644 index 92d010e..0000000 --- a/Exercices/Programmes/prog-8.rst +++ /dev/null @@ -1,79 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices -========= - -1. Dans quels cas l'appel système `fork(2)`_ peut-il retourner une erreur? Pourriez-vous construire un programme dans lequel `fork(2)`_ retourne une erreur ? - - .. only:: staff - - Il suffit de créer trop de processus - -2. Dans quels cas l'appel système `wait(2)`_ peut-il retourner une erreur ? Pourriez-vous écrire un petit programme dans lequel `wait(2)`_ retourne une erreur ? - - .. only:: staff - - Voir page de manuel. Un exemple est lorsqu'il n'y a plus de processus fils - -3. L'appel système `fork(2)`_ retourne l'identifiant du processus fils dans le processus père. Imaginez qu'une variante de Unix choisisse d'implémenter `fork(2)`_ en retournant ``0`` dans le processus fils et ``1`` dans le processus père. Quel serait l'impact de cette modification pour un programme qui lance plusieurs processus fils ? - - .. only:: staff - - `waitpid(2)`_ ne pourrait plus fonctionner - -4. Combien de processus sont créés lors de l'exécution du programme ci-dessous ? - - .. code-block:: c - - // ... - fork(); - fork(); - // ... - - .. only:: staff - - le père crée un fils puis un second - - le premier fils crée également un fils - -5. En supposant que le processus père a comme identifiant la valeur ``1252``, représentez graphiquement sous forme d'un arbre l'ensemble des processus créés par le programme ci-dessus en supposant que les identifiants de processus sont attribués séquentiellement par le :term:`kernel`. - -6. L'appel système `fork(2)`_ est nécessaire au fonctionnement de Unix. Cependant, un programme qui abuse de `fork(2)`_ risque de perturber le fonctionnement du système. Que risque-t-il d'arriver si vous exécutez un programme qui par mégarde contient : - -.. code-block:: c - - while(true) { - fork(); - // ... - } - -Consultez les pages de manuel pour déterminer comment le système d'exploitation peut se protéger contre de telles `fork bomb <http://en.wikipedia.org/wiki/Fork_bomb>`_. - -7. Comparez les performances de la création et la terminaison de threads et de processus en compilant et exécutant sur un ordinateur non chargé les programmes :download:`/Programmes/src/fork-perf.c` et :download:`/Programmes/src/pthread-perf.c`. Utilisez la commande `time(1posix)`_ pour mesurer le temps d'exécution de chacun des ces programmes qui créent 100000 processus ou threads. Expliquez vos résultats. - - .. only:: staff - - Essayez de discuter avec les étudiants des avantages et inconvénients des threads et des processus pour voir dans quels cas un processus est plus utile qu'un thread. A ce stade, ils n'ont vu aucun mécanisme de partage entre processus et ils n'ont pas encore vu les fichiers. Le seul avantage des processus est que si le père crashe son fils ne crashe pas nécessairement, alors que dans les threads un crash provoque le crash de tous les threads du processus. - -8. Compilez le programme :download:`/Programmes/src/fork-zombie.c`. Ce programme crée un processus mais le processus père attend une minute pour récupérer sa valeur de retour. Lancez ce programme en tâche de fond (voir section outils) et utilisez `ps(1)`_ ou consultez ``/proc/`` - -9. La librairie standard comprend une fonction `system(3posix)`_ qui permet l'exécution d'une commande du shell. Ainsi, la ligne ``system("for f in {1..3} ; do echo $f ; done")`` va provoquer un appel au shell `bash(1)`_ qui va exécuter la commande passé en argument et donc afficher trois lignes contenant chacune un nombre sur la sortie standard. Quels sont les appels systèmes utilisées par une implémentation de cette fonction `system(3posix)`_ ? - -10. Quelles différences et similitudes voyez-vous entre : - - - `pthread_create(3)`_ et `fork(2)`_ - - `pthread_join(3)`_ et `waitpid(2)`_ - - -11. La commande `strace(1)`_ permet de tracer tous les appels systèmes faits par un programme. Recompilez un programme d'exemple et essayer d'identifier les principaux appels systèmes qui sont utilisés par ce programme. Les paramètres ``-c``, ``-t`` et ``-e`` peuvent être utiles pour explorer le comportement d'un programme et avoir une idée des appels systèmes qu'il effectue. - -12. La commande `pstree(1)`_ permet de visualiser sous forme d'arbre l'ensemble des processus actifs sur un ordinateur Linux. Exécutez `pstree(1)`_ et identifiez quels sont les processus qui sont les ancêtres de votre commande. - -13. Un shell tel que `bash(1)`_ permet à l'utilisateur de lancer plusieurs programmes simultanément. Par exemple, il est possible de lancer un programme en background (ou tâche de fond en français) en le suffixant avec le caractère ``&``. On peut faire de même en tapant `Ctrl-Z` (les touches `Ctrl` et `Z` simultanément) pendant qu'un programme s'exécute. Cela peut être utile pour taper une commande pour par exemple voir l'état du système pendant l'exécution du programme. Il est possible de revenir à l'exécution du programme via la commande `fg(1)`. La commande `jobs(1posix)`_ permet de lister les processus qui sont actuellement exécutés par le shell en tâche de fond. La section `JOB CONTROL` du manuel de `bash(1)`_ fournit plus d'informations à ce sujet. - -14. Le répertoire ``/proc`` contient une image de la table des processus maintenue par le :term:`kernel` et d'autres structures de données maintenues par le :term:`kernel`. Compilez le programme :download:`/Programmes/src/fork-pthread.c` qui lance un processus fils puis crée un thread à l'intérieur du processus père. Lancez ce programme en background via `bash(1)`_ et observez les entrées relatives au père, au fils et au thread créé par le processus père dans ``/proc``. - -15. Faites l'exercice sur les shell sur `IngiNIOUS <https://inginious.info.ucl.ac.be/course/LSINF1252/shell>`_ - diff --git a/Exercices/Programmes/prog-9.rst.old b/Exercices/Programmes/prog-9.rst.old deleted file mode 100644 index e89cae0..0000000 --- a/Exercices/Programmes/prog-9.rst.old +++ /dev/null @@ -1,105 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Exercices ---------- - - -1. Consultez la page de manuel de `chmod(1)`_ ou d'autres sources pour déterminer la signification des bits de permissions lorsqu'ils sont associés à un répertoire. Expliquez notamment à quoi sert le bit d'exécution sur un répertoire. - - .. only:: staff - - le bit x permet d'autoriser le parcours du répertoire - -2. Quelles sont les permissions associées à votre répertoire de login ? Ces permissions permettent-elles à d'autres étudiants d'accéder à vos fichiers ? Si oui, utilisez `chmod(1)`_ pour supprimer cette autorisation de lecture par défaut dans votre répertoire. - -3. Comment feriez-vous en utilisant `chmod(1)`_ pour créer un répertoire dans lequel vous pouvez lire et écrire, tout étudiant peut lire mais aucun membre du staff (à part l'administrateur système bien entendu) ne peut lire ? - - .. only:: staff - - il faut que l'étudiant soit dans le même groupe et que le répertoire soit accessible au groupe, au minimum 00750 - -4. Le répertoire ``/tmp`` est particulier car il est destiné à pouvoir contenir des fichiers de n'importe quel utilisateur. Pouvez-vous expliquer les permissions utilisées pour ce répertoire ? - - .. only:: staff - - pas besoin de parler du sticky bit sauf si les étudiants l'abordent - -5. La commande `lsof(8)`_ permet de lister les fichiers ouverts par un processus. A votre avis, comment cette commande fonctionne-t-elle ? - - .. only:: staff - - L'OS maintient une table de tous les fichiers ouverts avec leur inode. Cette table est accessible via /proc - -6. Lorsqu'un exécutable est lancé avec `execve(2)`_, il hérite des descripteurs de fichiers qui étaient ouverts dans le processus qui a exécuté `execve(2)`_. Comment feriez-vous en utilisant uniquement l'appel système `open(2)`_ pour déterminer combien de descripteurs de fichiers étaient ouverts au démarrage de votre programme ? - - .. only:: staff - - Il suffit de regarder quelle est la valeur de retour de open. Si open retourne 3, cela indique que seuls stdin, stdout et stderr étaient ouverts - -7. Est-il possible dans un processus d'exécuter ``int fd1=open("f",O_RDWR);`` et juste après ``int fd2=open("f",O_RDONLY);`` ? Si oui, quelles seront les valeurs des descripteurs de fichiers retournés lors des appels système. Si non, quelles seront les valeurs de ``errno``? - - .. only:: staff - - Oui, c'est possible. Dans ce cas, les offset pointers sont différents pour les deux copies du même fichier. Il est utile de faire un dessin pour que les étudiants visualisent bien la situation - -8. Dans un shell, on exécute la commande ``/bin/echo "1234" > /test.txt``. Quels sont les appels systèmes effectués par le shell avant l'exécution de ``/bin/echo`` ? - - .. only:: staff - - fork, fermer stdout, ouvrir test.txt - par défaut il aura le premier fd libre, c-a-d celui de stdout qui vient d'être fermé et ensuite exécution avec execve - -9. Dans un shell, on exécute la commande ``./a.out < in.txt > out.txt``. Quelles sont les appels systèmes qui doivent être exécutés par le shell pour lancer cet exécutable comme demandé par l'utilisateur ? - - .. only:: staff - - fork puis dans le fils - close(stdin) - open(in.txt,O_RDONLY) - close(stdout) - open(out.txt,O_WRONLY) - execve (qui préserver les descripteurs ouverts) - -10. Dans un shell, on exécute la commande ``cat < in.txt | grep sinf1252``. Quelles sont les appels systèmes qui doivent être exécutés par le shell pour lancer cette commande comme demandé par l'utilisateur ? - - .. only:: staff - - deux forks - premier fils - close(stdin) - close(stdout) - -11. Dans un shel `bash(1)`_, lorsque l'on suffixe une commande avec ``2>&1``, le shell redirige la sortie d'erreur standard vers la sortie standard. Quels sont les appels systèmes utilisés par le shell pour réussir cette redirection ? - - .. only :: staff - - le shell va faire fork pour exécuter le programme, mais avant il doit fermer stdout et le dupliquer avec dup ou dup2 - - -12. Comment se comporte l'appel système `write(2)`_ lorsque le disque sur lequel on souhaite écrire des données est plein ? Peut-on distinguer cette erreur d'un problème d'écriture sur le disque ? - - .. only:: staff - - il retourne une erreur et met errno à ENOSPC - -13. A quoi sert l'appel système `sync(2)`_ ? - - .. only:: staff - - A forcer l'écriture des données sur le disque - -14. Le programme :download:`/Programmes/src/writeperf.c` permet de tester les performances des écritures dans write sur un système de fichiers. Compilez-le et exécutez le avec différents tailles de buffers passés à `write(2)`_. Mesurez le temps d'exécution avec la commande `time(1posix)`_ et comparez le temps qu'il faut pour écrire 100MB en blocs de 1 MB ou en blocs de 1 KB. Faites de même en activant la synchronisation avec le paramètre ``-s``. - - .. only:: staff - - Les performances décroissent car il y a plus d'appels systèmes qui sont effectués. sync force l'écriture et bypasse le buffer. Il est utile de mentionner l'existence de ce buffer - -15. Effectuez l'exercice sur la manipulation de fichiers sur `INGInious <https://inginious.info.ucl.ac.be/course/LSINF1252/fichiers>`_. - -.. 17. `tee(1)`_ est un utilitaire qui permet de recopier son entrée standard vers un ou plusieurs fichiers et également vers sa sortie standard. Il peut être utile pour par exemple inspecter des données échangées entre deux processus à travers un :term:`pipe`. Quels sont les appels systèmes exécutés par `tee(1)`_ lors de l'exécution de la commande ``cat /tmp/t | tee /tmp/tee.out | grep "sinf1252" `` - - - -.. pas de mini-projet à cause des vacances de Paques - diff --git a/Exercices/Programmes/s2_perf.c b/Exercices/Programmes/s2_perf.c deleted file mode 100644 index a31da93..0000000 --- a/Exercices/Programmes/s2_perf.c +++ /dev/null @@ -1,53 +0,0 @@ -/*********************************************** - * perf.c - * - * Mesure de temps de calcul via gettimeofday - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <sys/time.h> - -/* Return t2-t1 in microseconds */ -long timeval_diff(struct timeval *t2, struct timeval *t1) -{ - long diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); - return (diff); -} -// n : number of iterations of the loop -void compute(int n) { - // long computation - double sum=0; - int i; - for(i=0;i<n;i++) { - sum=sum+i; - } -} - -int main(int argc, char *argv[]) -{ - struct timeval tvStart, tvEnd; - int err; - int num; // number of operations for compute - if(argc!=2) - exit(EXIT_FAILURE); - else - num=atoi(argv[1]); - - err=gettimeofday(&tvStart, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - // long computation - compute(num); - - err=gettimeofday(&tvEnd, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - printf("Duration : %ld microseconds\n", timeval_diff(&tvEnd, &tvStart)); - - return(EXIT_SUCCESS); -} - diff --git a/Exercices/Programmes/s2_qbf.c b/Exercices/Programmes/s2_qbf.c deleted file mode 100644 index 4fb42a7..0000000 --- a/Exercices/Programmes/s2_qbf.c +++ /dev/null @@ -1,25 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <stdint.h> - -int main() { - char strtab[36] = "Coucou!! Je suis un grand string\n"; - char *str = strtab; - int i; - for (i = 0; i < 8; i++) { - char c = str[i]; - printf("Char %d, located at %p, is %c\n", i, &str[i], c); - } - uint32_t *str2 = (uint32_t *) str; - for (i = 0; i < 8; i++) { - uint32_t ui = str2[i]; - printf("UInt %d, located at %p, is %u\n", i, &str2[i], ui); - } - str2[0] = 1801675080; - str2[1] = 555836517; - for (i = 0; i < 8; i++) { - char c = str[i]; - printf("Char %d, located at %p, is %c\n", i, &str[i], c); - } - return 0; -} diff --git a/Exercices/Programmes/src/alarm.c b/Exercices/Programmes/src/alarm.c deleted file mode 100644 index 7e6f689..0000000 --- a/Exercices/Programmes/src/alarm.c +++ /dev/null @@ -1,45 +0,0 @@ -/************************************** - * alarm.c - * - * Programme d'exemple d'utilisation des - * signaux SIGUSR - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <unistd.h> -#include <stdbool.h> - -static void sig_handler(int); - -int main (int argc, char *argv[]) { - char c; - printf("Tapez return en moins de 5 secondes ! \n"); - fflush(stdout); - if(signal(SIGALRM,sig_handler)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - // sigalrm interrompt les appels système - if(siginterrupt(SIGALRM,true)<0) { - perror("siginterrupt"); - exit(EXIT_FAILURE); - } - alarm(5); - int r=read(STDIN_FILENO,&c,1); - if((r==1)&&(c=='\n')) { - alarm(0); // reset timer - printf("Gagné \n"); - exit(EXIT_SUCCESS); - } - printf("Perdu !\n"); - exit(EXIT_FAILURE); -} - -static void sig_handler(int signum) { - // rien à faire, read sera interrompu -} - -///BBB diff --git a/Exercices/Programmes/src/alarm3.c b/Exercices/Programmes/src/alarm3.c deleted file mode 100644 index 9dac821..0000000 --- a/Exercices/Programmes/src/alarm3.c +++ /dev/null @@ -1,57 +0,0 @@ -/************************************** - * alarm3.c - * - * Programme d'exemple de lecture avec temps - * limité via alarm - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <unistd.h> -#include <stdbool.h> -#include <setjmp.h> - -sig_atomic_t expired=false; - -static void sig_handler(int); - -int main (int argc, char *argv[]) { - char c; - printf("Tapez return en moins de 5 secondes ! \n"); - fflush(stdout); - if(signal(SIGALRM,sig_handler)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - // sigalrm interrompt les appels système - if(siginterrupt(SIGALRM,true)<0) { - perror("siginterrupt"); - exit(EXIT_FAILURE); - } - int r=0; - alarm(5); - if(!expired) { - r=read(STDIN_FILENO,&c,1); - } - else { - // sig_handler a déjà été exécuté - // le délai a déjà expiré, inutile de faire read - } - alarm(0); // arrêt du timer - if((r==1)&&(c=='\n')) { - printf("Gagné \n"); - exit(EXIT_SUCCESS); - } - else { - printf("Perdu !\n"); - exit(EXIT_FAILURE); - } -} - -static void sig_handler(int signum) { - expired=true; -} - -///BBB diff --git a/Exercices/Programmes/src/fork-perf.c b/Exercices/Programmes/src/fork-perf.c deleted file mode 100644 index 3c330d9..0000000 --- a/Exercices/Programmes/src/fork-perf.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************** - * fork-perf.c - * - * Programme d'exemple pour calculer le coût - * de fork - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> - -#define N 100000 - -int main (int argc, char *argv[]) { - int status; - pid_t pid; - - for(int i=0;i<N;i++) { - pid=fork(); - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - return(EXIT_SUCCESS); - } - else { - int fils=waitpid(pid,&status,0); - if(fils==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(!WIFEXITED(status)) { - fprintf(stderr,"Erreur de waitpid\n"); - exit(EXIT_FAILURE); - } - } - } - return(EXIT_SUCCESS); - -} - diff --git a/Exercices/Programmes/src/fork-pthread.c b/Exercices/Programmes/src/fork-pthread.c deleted file mode 100644 index ebb9b6d..0000000 --- a/Exercices/Programmes/src/fork-pthread.c +++ /dev/null @@ -1,78 +0,0 @@ -/************************************** - * fork-pthread.c - * - * Programme d'exemple pour voir le contenu de /proc - * - *************************************/ - -#define _GNU_SOURCE -#include <stdio.h> -#include <stdlib.h> -#include <pthread.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> -#include <sys/syscall.h> - -#define DELAY 600 - -pid_t gettid() { - pid_t tid; - tid = syscall(SYS_gettid); - return tid; -} - - -void *func(void * param) { - int slept=DELAY; - printf("thread : %d\n",gettid()); - fflush(stdout); - while((slept=sleep(slept))!=0) ; - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - int err; - pid_t pid; - int status; - pthread_t thread; - int slept=DELAY; - printf("père : %d\n",getpid()); - fflush(stdout); - pid=fork(); - if (pid==-1) { - perror("fork"); - exit(EXIT_FAILURE); - } - if (pid==0) { - // fils - printf("fils : %d\n",getpid()); - fflush(stdout); - while((slept=sleep(slept))!=0) ; - return(EXIT_SUCCESS); - } - else { - // père - err=pthread_create(&(thread),NULL,&func,NULL); - if(err!=0) { - perror("pthread_create"); - exit(EXIT_FAILURE); - } - err=pthread_join(thread,NULL); - if(err!=0) { - perror("pthread_join"); - exit(EXIT_FAILURE); - } - int fils=waitpid(pid,&status,0); - if(fils==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(!WIFEXITED(status)) { - fprintf(stderr,"Erreur de waitpid\n"); - exit(EXIT_FAILURE); - } - } - return(EXIT_SUCCESS); -} - diff --git a/Exercices/Programmes/src/fork-zombie.c b/Exercices/Programmes/src/fork-zombie.c deleted file mode 100644 index 33959bf..0000000 --- a/Exercices/Programmes/src/fork-zombie.c +++ /dev/null @@ -1,45 +0,0 @@ -/************************************** - * fork-zombie.c - * - * Programme d'exemple d'utilisation de - * fork qui crée un zombie - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> - - -int main (int argc, char *argv[]) { - pid_t pid; - int err; - - pid=fork(); - - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - // fin du fils - printf("pid du zombie: %d\n",getpid()); - return(EXIT_SUCCESS); - } - else { - // processus père - sleep(50); - err=wait(NULL); - if(err!=0) { - perror("fork"); - exit(EXIT_FAILURE); - } - printf("Fin du processus père [%d]\n",getpid()); - return(EXIT_SUCCESS); - } -} -///BBB diff --git a/Exercices/Programmes/src/miniprojet.c b/Exercices/Programmes/src/miniprojet.c deleted file mode 100644 index 701af2f..0000000 --- a/Exercices/Programmes/src/miniprojet.c +++ /dev/null @@ -1,134 +0,0 @@ - -/* Necessary for the correct compilation */ -#define _POSIX_C_SOURCE 200809L - -#include <fcntl.h> -#include <sys/stat.h> -#include <semaphore.h> -#include <unistd.h> -#include <stdio.h> -#include <stdlib.h> - - -/** Global variables */ - -int file; -sem_t *readsem; -sem_t *writesem; - -static void producer() -{ - int i = 0; - while (1) { - char buf[2]; - int val = rand() % 10; - - if (snprintf(buf, 2, "%d", val) < 0) { - perror("Error with snprintf\n"); - return; - } - - if (sem_wait(writesem) < 0) { - perror("Error with sem_wait\n"); - return; - } - - if (pwrite(file, buf, 1, i) < 0) { - perror("Error with pwrite\n"); - return; - } - - if (sem_post(readsem) < 0) { - perror("Error with sem_post\n"); - return; - } - - i++; - sleep(val); - } - - return; -} - -static void consumer() -{ - int i = 0; - - while (1) { - char buf[2]; - - buf[1] = 0; - - if (sem_wait(readsem) < 0) { - perror("Error with sem_wait\n"); - return; - } - - if (pread(file, buf, 1, i) < 0) { - perror("Error with pread\n"); - return; - } - - if (sem_post(writesem) < 0) { - perror("Error with sem_post\n"); - return; - } - - printf("Read done of: %s\n", buf); - - i++; - } - - return; -} - -int main (int argc, char const *argv[]) -{ - int pid, ret = 0; - - /* Open file */ - file = open("my_file.txt", O_RDWR | O_CREAT | O_TRUNC, 0644); - if (file < 0) { - ret = 1; - goto err_open; - } - - /* Create the shared read semaphore. */ - readsem = sem_open("minireader", O_CREAT, S_IRUSR | S_IWUSR, 0); - if (readsem == SEM_FAILED) { - ret = 1; - goto err_read; - } - - /* Create the shared write semaphore. - * Init to 1, because the producer can directly write a value. */ - writesem = sem_open("miniwriter", O_CREAT, S_IRUSR | S_IWUSR, 1); - if (writesem == SEM_FAILED) { - ret = 1; - goto err_write; - } - - /* Now create the son-process and start producing/consuming */ - pid = fork(); - if (pid < 0) { - ret = 1; - goto err_fork; - } - - /* Are we the parent? */ - if (pid) - producer(); - else - consumer(); - -err_fork: - sem_close(writesem); -err_write: - sem_close(readsem); -err_read: - close(file); -err_open: - if (ret) - perror("Error happened!\n"); - return ret; -} diff --git a/Exercices/Programmes/src/process-sem-after.c b/Exercices/Programmes/src/process-sem-after.c deleted file mode 100644 index 06ebd16..0000000 --- a/Exercices/Programmes/src/process-sem-after.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************** - * process-sem-before.c - * - * Programme d'exemple de sémaphores nommés - * La fonction after ne peut s'exécuter - * qu'après la fonction before - **************************************/ - -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <fcntl.h> /* For O_* constants */ -#include <sys/stat.h> /* For mode constants */ -#include <sys/types.h> -#include <unistd.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA - -sem_t *semaphore; - -void after() { - sem_wait(semaphore); - // do something - for(int j=0;j<1000000;j++) { - } - printf("after done, pid=%d\n",(int) getpid()); -} - -int main (int argc, char *argv[]) { - int err; - - // semaphore a été créé par before - semaphore=sem_open("lsinf1252",0); - if(semaphore==SEM_FAILED) { - error(-1,"sem_open"); - } - after(); - - err=sem_close(semaphore); - if(err!=0) { - error(err,"sem_close"); - } - err=sem_unlink("lsinf1252"); - if(err!=0) { - error(err,"sem_unlink"); - } - return(EXIT_SUCCESS); -} -///BBB diff --git a/Exercices/Programmes/src/process-sem-before.c b/Exercices/Programmes/src/process-sem-before.c deleted file mode 100644 index 1356eb8..0000000 --- a/Exercices/Programmes/src/process-sem-before.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************** - * process-sem-before.c - * - * Programme d'exemple de sémaphores - * La fonction after ne peut s'exécuter - * qu'après la fonction before - **************************************/ - -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <unistd.h> -#include <fcntl.h> /* For O_* constants */ -#include <sys/stat.h> /* For mode constants */ -#include <sys/types.h> - - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA - -sem_t *semaphore; - -void before() { - // do something - for(int j=0;j<1000000;j++) { - } - printf("before done, pid=%d\n",(int) getpid()); - sem_post(semaphore); -} - - -int main (int argc, char *argv[]) { - - int err; - - semaphore=sem_open("lsinf1252",O_CREAT,S_IRUSR | S_IWUSR,0); - if(semaphore==SEM_FAILED) { - error(-1,"sem_open"); - } - sleep(20); - before(); - err=sem_close(semaphore); - if(err!=0) { - error(err,"sem_close"); - } - return(EXIT_SUCCESS); -} -///BBB diff --git a/Exercices/Programmes/src/prog-5-measure/Makefile b/Exercices/Programmes/src/prog-5-measure/Makefile deleted file mode 100644 index 4ef1a98..0000000 --- a/Exercices/Programmes/src/prog-5-measure/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -BIN=crypt -CFLAGS=-Wall -Werror -LDFLAGS=-lcrypt -SRC=$(wildcard *.c) -OBJ=$(SRC:.c=.o) - -.PHONY: clean all - -all: $(BIN) - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -$(BIN): $(OBJ) - $(CC) -o $@ $(OBJ) $(LDFLAGS) - -clean: - rm -f $(OBJ) \ No newline at end of file diff --git a/Exercices/Programmes/src/prog-5-measure/compute.c b/Exercices/Programmes/src/prog-5-measure/compute.c deleted file mode 100644 index 06d1633..0000000 --- a/Exercices/Programmes/src/prog-5-measure/compute.c +++ /dev/null @@ -1,84 +0,0 @@ -#define _XOPEN_SOURCE -#include <unistd.h> -#include <string.h> -#include <stdio.h> -#include <stdlib.h> - -#include "compute.h" - -#define MIN(a,b) (a < b ? a : b) -#define SIZE 8 -#define SIZE_BITS (SIZE * 8) -#define SIZE_HEX (SIZE * 2) - -static void str2hex(const char *input, size_t len, char *output) -{ - int i; - - memset(output, 0, SIZE_HEX); - for (i = 0; i < SIZE_HEX; i += 2) - sprintf(output + i, "%02hhX", input[i / 2]); -} - -static void hex2str(const char *input, size_t len, char *output) -{ - int i; - - memset(output, 0, len / 2); - for (i = 0; i < len; i += 2) - sscanf(input + i, "%02hhX", &output[i / 2]); -} - -static void str2bits(const char *input, size_t len, char *output) -{ - int i; - - memset(output, 0, 64); - for(i = 0; i < MIN(len * 8, 64); ++i) - output[i] = (input[i / 8] >> (i % 8)) & 1; -} - -static void bits2str(const char *input, char *output) -{ - int i; - - memset(output, 0, SIZE); - for (i = 0; i < SIZE_BITS; ++i) - output[i / 8] |= input[i] << (i % 8); -} - - -static void __encrypt(char work[SIZE_BITS], int n, int decrypt) -{ - while (n--) - encrypt(work, decrypt); -} - -void pwd_init(const char *key) -{ - char work[SIZE_BITS]; - - str2bits(key, MIN(strlen(key), 8), work); - setkey(work); -} - -void pwd_encrypt(const char *pwd, char *cipher, int n) -{ - char work[SIZE_BITS], output[SIZE]; - - str2bits(pwd, strlen(pwd), work); - __encrypt(work, n, 0); - bits2str(work, output); - str2hex(output, SIZE, cipher); -} - -void pwd_decrypt(const char *hex, char *pwd, int n) -{ - char work[SIZE_BITS], input[SIZE]; - - hex2str(hex, strlen(hex), input); - str2bits(input, SIZE, work); - __encrypt(work, n, 1); - bits2str(work, pwd); -} - diff --git a/Exercices/Programmes/src/prog-5-measure/compute.h b/Exercices/Programmes/src/prog-5-measure/compute.h deleted file mode 100644 index 1e84f28..0000000 --- a/Exercices/Programmes/src/prog-5-measure/compute.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _COMPUTE_H_ -#define _COMPUTE_H_ - - -/* Initialize the password, only the first 8 bytes of key will be considered. */ -void pwd_init(const char *key); - -/* Encrypt pwd n times and store its output as a hexadecimal string in cipher. - * Only the first 8 bytes of pwd will be considered. cipher must have at least - * a size of 17 bytes. */ -void pwd_encrypt(const char *pwd, char *cipher, int n); - -/* Decrypt n times the cipher represented in hexadecimal and store its output -in pwd. pwd must have a size of at least 8 bytes. */ -void pwd_decrypt(const char *cipher, char *pwd, int n); - -#endif diff --git a/Exercices/Programmes/src/prog-5-measure/main.c b/Exercices/Programmes/src/prog-5-measure/main.c deleted file mode 100644 index 6d3f2e2..0000000 --- a/Exercices/Programmes/src/prog-5-measure/main.c +++ /dev/null @@ -1,57 +0,0 @@ -#include <stdio.h> -#include <unistd.h> -#include <string.h> -#include <stdlib.h> - -#include "compute.h" - -int main (int argc, char *const argv[]) -{ - char c; - char *password = NULL; - int i, decrypt = 0, n = 0; - char output[17]; - - while ((c = getopt (argc, argv, "dn:p:")) != -1) { - switch (c) { - case 'd': - decrypt = 1; - break; - case 'n': - n = strtol(optarg, NULL, 10); - break; - case 'p': - password = optarg; - break; - case '?': - fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt); - default: - return 1; - } - } - - if (!password) { - fprintf (stderr, "You must specify a password.\n"); - return 1; - } - - if (optind == argc) { - fprintf (stderr, "You must specify at least one argument.\n"); - return 1; - } - - pwd_init(password); - - for (i = optind; i < argc; ++i) { - if (decrypt) { - pwd_decrypt(argv[i], output, n); - printf("%.*s ", 8, output); - } else { - pwd_encrypt(argv[i], output, n); - printf("%.*s ", 16, output); - } - } - printf("\n"); - - return 0; -} diff --git a/Exercices/Programmes/src/prog-5-measure/prog-5-measure.tar.gz b/Exercices/Programmes/src/prog-5-measure/prog-5-measure.tar.gz deleted file mode 100644 index af0ab777e352d82a6c480c46e5cd563f03e2f474..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1886 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 Y5)u*;5)u*;5)!k;Ki}EGNdQm)06pWYKmY&$ diff --git a/Exercices/Programmes/src/prog2.c b/Exercices/Programmes/src/prog2.c deleted file mode 100644 index bc13550..0000000 --- a/Exercices/Programmes/src/prog2.c +++ /dev/null @@ -1,156 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -struct fraction { - int num; - int den; -}; - - -struct fraction * simp1(struct fraction f); -struct fraction * simp2(struct fraction * f); -struct fraction simp3(struct fraction f) { - struct fraction f2= {.num=1, .den=2}; - return f2; -} - - -int main(int argc, char **argv){ - double d; - double tab[4]={1,2,3,4}; - double mat[3][4]={ {1,2,3,4},{5,6,7,8},{9,10,11,12}} ; - double *ptr1; - double *ptrl; - double *ptr2; - - ptr1=tab; - - printf("sizeof(d)=%d\n",sizeof(d)); - printf("&d=%p\n",&d); - for(int i=0;i<4;i++){ - printf("tab[%d]=%f at address %p\n",i,tab[i],&(tab[i]) ); - printf("tab[%d]=%f at address %p\n",i,*(ptr1+i),ptr1+i); - printf("tab[%d]=%f at address %p\n",i,*ptr1+i,ptr1+i); - printf("tab[%d]=%f at address %p\n",i,(*(ptr1))+(double)i,ptr1+i); - } - - ptr2=&(mat[0][0]); - - for(int i=0;i<3;i++){ - for(int j=0;j<4;j++) { - printf("mat[%d][%d]=%f at address %p\n",i,j,mat[i][j],&(mat[i][j])); - printf("mat[%d][%d]=%f at relative address %d\n",i,j,mat[i][j],&(mat[i][j])-&(mat[0][0])); - printf("mat[%d][%d]=%f at address %p\n",i,j,*(ptr2+i*4+j),ptr2+i*4+j); - } - } - - int l=1; - ptrl=mat[1]; - for(int c=0;c<4;c++){ - printf("mat[%d][%d]=%f at address %p\n",l,c,mat[l][c],&(mat[l][c])); - printf("mat[%d][%d]=%f at address %p\n",l,c,*(ptrl+c),ptrl+c); - } - - - struct record { - char c[3]; - double num; - char d; - int data[4]; - }; - - struct record t1; - t1.c[0]='A'; - t1.c[1]='B'; - t1.c[2]='C'; - t1.num=42.0; - t1.d='Z'; - t1.data[1]=2; - printf("sizeof(test)=%d\n",sizeof(t1)); - printf("&(t1)=%p\n",&(t1)); - printf("&(t1.c[0])=%p\n",&(t1.c[0])); - printf("&(t1.num)=%p\n",&(t1.num)); - printf("&(t1.d)=%p\n",&(t1.d)); - printf("&(t1.data)=%p\n",&(t1.data)); - - char *dp=(char *) &(t1) + 4 + 8; - printf("%p\n",dp); - - - - struct fraction f1; - f1.num=1; - f1.den=17; - - printf("sizeof(fraction)=%d\n",sizeof(f1)); - printf("&(f1)=%p\n",&(f1)); - printf("&(f1.num)=%p\n",&(f1.num)); - printf("&(f1.num)+1=%p\n",&(f1.num)+1); - printf("&(f1.den)=%p\n",&(f1.den)); - - struct fraction f2; - f2=simp3(f1); - printf("%d/%d\n",f2.num,f2.den); - - struct fraction tabfract[2]; - tabfract[0].num=1; - tabfract[0].den=7; - tabfract[1].num=2; - tabfract[1].den=3; - - struct fraction *p=tabfract; - printf("%d \n",(p+1)->den); - printf("&(tabfract[0])=%p\n",&(tabfract[0])); - printf("&(tabfract)=%p\n",&(tabfract)); - printf("tabfract=%p\n",tabfract); - - printf("&(tabfract[1])=%p\n",&(tabfract[1])); - - printf("argc=%d\n",argc); - for(int i=0;i<argc;i++) { - char *ptr=*(argv+i); - printf("argv[%d]=%s\n",i,ptr); - for(int j=0;j<strlen(ptr);j++) { - printf("%c is at %p\n",*(ptr+j),ptr+j); - } - } - - char *string="abcdef"; - char string2[]="abcdef"; - /* - char string3="ab"; - char *string4='A'; - char string5='B'; - char *string6="C"; - */ - printf("%s\n",string); - printf("%s\n",string2); - - - printf("%s\n",string+2); - - - printf("%c\n",*(string+3)); - - printf("%c\n",*(string+6)); - printf("test\n"); - - string2[0]='A'; - *(string2)='A'; - *(string2+5)='F'; - *(string2+strlen(string2))='G'; - *(string2+strlen(string2)+1)='H'; - - printf("%s\n",string2); - - // see https://stackoverflow.com/questions/1335786/c-differences-between-char-pointer-and-array - - // string++; - // printf("%s\n",string); - - - - - -} diff --git a/Exercices/Programmes/src/pthread-array.c b/Exercices/Programmes/src/pthread-array.c deleted file mode 100644 index d0ecf23..0000000 --- a/Exercices/Programmes/src/pthread-array.c +++ /dev/null @@ -1,50 +0,0 @@ -/************************************** - * pthread-neg.c - * - * Programme d'exemple de pthread utilisant les - * arguments et retournant une valeur - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA -#define SIZE 100 - -pthread_t mythread; - -void *f(void *param) { - int *v=(int *) param; - long r=0; - for(long i=0;i<SIZE;i++) { - r+=v[i]; - } - return((void *) r); -} - -void launch(void ){ - int v[SIZE]; - for(int i=0;i<SIZE;i++) { - v[i]=1; - } - int err=pthread_create(&(mythread),NULL,&f,(void *) v); - if(err!=0) - error(err,"pthread_create"); -} - - -int main (int argc, char *argv[]) { - - launch(); - // ... - return(EXIT_SUCCESS); -} diff --git a/Exercices/Programmes/src/pthread-perf.c b/Exercices/Programmes/src/pthread-perf.c deleted file mode 100644 index 07772a2..0000000 --- a/Exercices/Programmes/src/pthread-perf.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************** - * pthread-perf.c - * - * Programme d'exemple pour calculer le coût - * de pthread - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <pthread.h> - -#define N 100000 - -void *func(void * param) { - pthread_exit(NULL); -} - - -int main (int argc, char *argv[]) { - int err; - pthread_t thread; - - - for(int i=0;i<N;i++) { - - err=pthread_create(&(thread),NULL,&func,NULL); - if(err!=0) { - perror("pthread_create"); - exit(EXIT_FAILURE); - } - err=pthread_join(thread,NULL); - if(err!=0) { - perror("pthread_join"); - exit(EXIT_FAILURE); - } - } - return(EXIT_SUCCESS); - -} - diff --git a/Exercices/Programmes/src/pthread-philo-sem.c b/Exercices/Programmes/src/pthread-philo-sem.c deleted file mode 100644 index 8d27d80..0000000 --- a/Exercices/Programmes/src/pthread-philo-sem.c +++ /dev/null @@ -1,69 +0,0 @@ -/************************************** - * pthread-philo-sem.c - * - * Programme d'exemple de pthread avec - * philosophes qui dinent et sémaphores - * - **************************************/ - -///AAA -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdbool.h> -#include <unistd.h> - -#define PHILOSOPHES 3 - -pthread_t phil[PHILOSOPHES]; -sem_t baguette[PHILOSOPHES]; - -void mange(int id) { - printf("Philosophe [%d] mange\n",id); - for(int i=0;i< rand(); i++) { - // philosophe mange - } -} - -void* philosophe ( void* arg ) -{ - int *id=(int *) arg; - int left = *id; - int right = (left + 1) % PHILOSOPHES; - while(true) { - printf("Philosophe [%d] pense\n",*id); - sem_wait(&baguette[left]); - printf("Philosophe [%d] possède baguette gauche [%d]\n",*id,left); - sem_wait(&baguette[right]); - printf("Philosophe [%d] possède baguette droite [%d]\n",*id,right); - mange(*id); - sem_post(&baguette[left]); - printf("Philosophe [%d] a libéré baguette gauche [%d]\n",*id,left); - sem_post(&baguette[right]); - printf("Philosophe [%d] a libéré baguette droite [%d]\n",*id,right); - } - return (NULL); -} -///BBB -int main ( int argc, char *argv[]) -{ - long i; - int id[PHILOSOPHES]; - - srand(getpid()); - - for (i = 0; i < PHILOSOPHES; i++) - id[i]=i; - - for (i = 0; i < PHILOSOPHES; i++) - sem_init( &baguette[i], 0 , 1); - - for (i = 0; i < PHILOSOPHES; i++) - pthread_create(&phil[i], NULL, philosophe, (void*)&(id[i]) ); - - for (i = 0; i < PHILOSOPHES; i++) - pthread_join(phil[i], NULL); - - return (EXIT_SUCCESS); -} diff --git a/Exercices/Programmes/src/pthread-philo.c b/Exercices/Programmes/src/pthread-philo.c deleted file mode 100644 index 33d63c1..0000000 --- a/Exercices/Programmes/src/pthread-philo.c +++ /dev/null @@ -1,68 +0,0 @@ -/************************************** - * pthread-philo.c - * - * Programme d'exemple de pthread avec - * philosophes qui dinent et mutex - * - **************************************/ - -///AAA -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdbool.h> -#include <unistd.h> - -#define PHILOSOPHES 3 - -pthread_t phil[PHILOSOPHES]; -pthread_mutex_t baguette[PHILOSOPHES]; - -void mange(int id) { - printf("Philosophe [%d] mange\n",id); - for(int i=0;i< rand(); i++) { - // philosophe mange - } -} - -void* philosophe ( void* arg ) -{ - int *id=(int *) arg; - int left = *id; - int right = (left + 1) % PHILOSOPHES; - while(true) { - printf("Philosophe [%d] pense\n",*id); - pthread_mutex_lock(&baguette[left]); - printf("Philosophe [%d] possède baguette gauche [%d]\n",*id,left); - pthread_mutex_lock(&baguette[right]); - printf("Philosophe [%d] possède baguette droite [%d]\n",*id,right); - mange(*id); - pthread_mutex_unlock(&baguette[left]); - printf("Philosophe [%d] a libéré baguette gauche [%d]\n",*id,left); - pthread_mutex_unlock(&baguette[right]); - printf("Philosophe [%d] a libéré baguette droite [%d]\n",*id,right); - } - return (NULL); -} -///BBB -int main ( int argc, char *argv[]) -{ - long i; - int id[PHILOSOPHES]; - - srand(getpid()); - - for (i = 0; i < PHILOSOPHES; i++) - id[i]=i; - - for (i = 0; i < PHILOSOPHES; i++) - pthread_mutex_init( &baguette[i], NULL); - - for (i = 0; i < PHILOSOPHES; i++) - pthread_create(&phil[i], NULL, philosophe, (void*)&(id[i]) ); - - for (i = 0; i < PHILOSOPHES; i++) - pthread_join(phil[i], NULL); - - return (EXIT_SUCCESS); -} diff --git a/Exercices/Programmes/src/pthread-test.c b/Exercices/Programmes/src/pthread-test.c deleted file mode 100644 index 0cfb277..0000000 --- a/Exercices/Programmes/src/pthread-test.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************** - * pthread-test.c - * - * Programme d'exemple de pthread avec condition de course - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -///AAA - -#define NTHREADS 4 - -long global=0; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -int increment(int i) { - return i+1; -} - -void *func(void * param) { - for(int j=0;j<1000000;j++) { - global=increment(global); - } - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&func,NULL); - if(err!=0) - error(err,"pthread_create"); - } - for(int i=0; i<1000000000;i++) { /*...*/ } - - for(int i=NTHREADS-1;i>=0;i--) { - err=pthread_join(thread[i],NULL); - if(err!=0) - error(err,"pthread_join"); - } - - printf("global: %ld\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/Programmes/src/s4_qbf.c b/Exercices/Programmes/src/s4_qbf.c deleted file mode 100644 index bf5c07e..0000000 --- a/Exercices/Programmes/src/s4_qbf.c +++ /dev/null @@ -1,18 +0,0 @@ -#include <stdlib.h> - -int cours = 1252; - -int f(int *a, int b) { - int c = 97850**a + b; - int x = 2052; - *a = x * c; - return c; -} - -int main(int argc, char *argv[]) { - int d = 42; - char *tab = malloc(20 * sizeof(char)); - int *res = (int *) tab; - *res = f(&cours, d); - return 0; -} diff --git a/Exercices/Programmes/src/stack.c b/Exercices/Programmes/src/stack.c deleted file mode 100644 index d3ad209..0000000 --- a/Exercices/Programmes/src/stack.c +++ /dev/null @@ -1,96 +0,0 @@ -/************************************** - * stack.c - * - * Programme d'exemple implémentant un stack comme structure - * chaînée - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -typedef struct fraction_t { - int num; - int den; -} fraction; - -///AAA -typedef struct node_t -{ - struct fraction_t *data; - struct node_t *next; -} node; - -struct node_t *stack; // sommet de la pile - -// ajoute un élément au sommet de la pile -void push(struct fraction_t *f) -{ - struct node_t *n; - n=(struct node_t *)malloc(sizeof(struct node_t)); - if(n==NULL) - exit(EXIT_FAILURE); - n->data = f; - n->next = stack; - stack = n; -} -// retire l'élément au sommet de la pile -struct fraction_t * pop() -{ - if(stack==NULL) - return NULL; - // else - struct fraction_t *r; - struct node_t *removed=stack; - r=stack->data; - stack=stack->next; - free(removed); - return (r); -} - -///BBB - -// affiche le contenu de la pile -void display() -{ - struct node_t *t; - t = stack; - while(t!=NULL) { - if(t->data!=NULL) { - printf("Item at addr %p : Fraction %d/%d Next %p \n",t,t->data->num,t->data->den,t->next); - } - else { - printf("Bas du stack %p \n",t); - } - t=t->next; - } -} - -// exemple -int main(int argc, char *argv[]) { - - struct fraction_t demi={1,2}; - struct fraction_t tiers={1,3}; - struct fraction_t quart={1,4}; - struct fraction_t zero={0,1}; - - // initialisation - stack = (struct node_t *)malloc(sizeof(struct node_t)); - stack->next=NULL; - stack->data=NULL; - - display(); - push(&zero); - display(); - push(&demi); - push(&tiers); - push(&quart); - display(); - - struct fraction_t *f=pop(); - if(f!=NULL) - printf("Popped : %d/%d\n",f->num,f->den); - - return(EXIT_SUCCESS); -} -///CCC diff --git a/Exercices/Programmes/src/string.c b/Exercices/Programmes/src/string.c deleted file mode 100644 index 0190db7..0000000 --- a/Exercices/Programmes/src/string.c +++ /dev/null @@ -1,60 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> - -/** - * Returns the number of characters in s - */ -size_t strlen(const char *s) -{ - int i = 0; - while(s[i] != '\0') - { - i++; - } - return i; -} - -/** - * Appends the src string to the dest string, overwriting - * the null byte ('\0') at the end of dest, and then adds - * a terminating null byte. The strings may not overlap, - * and the dest string must have enough space for the result. - */ -char * strcat(char *s1, const char *s2) -{ - int i; - for(i = 0; i < strlen(s2); i++) - { - *(s1 + strlen(s1) + i) = *(s2 + i); - } - *(s1 + strlen(s1) + i) = '\0'; - return s1; -} - -int main(int argc, char *argv[]) { - /* Test function */ - char *text_1 = "Hello"; - char *text_2 = " World!"; - char *text_3 = NULL; - char concat_1[100]; - char concat_2[100]; - int i; - - printf("Length of %s: %lu\n", text_1, strlen(text_1)); - printf("Length of %s: %lu\n", text_2, strlen(text_2)); - printf("Length of %s: %lu\n", text_3, strlen(text_3)); - - for (i = 0; i < strlen(text_1); i++) - concat_1[i] = *(text_1 + i); - printf("Putting %s and %s together gives %s\n", text_1, text_2, strcat(concat_1, text_2)); - - /* Taking arguments, if any */ - printf("Length of %s: %lu\n", argv[1], strlen(argv[1])); - printf("Length of %s: %lu\n", argv[2], strlen(argv[2])); - - for (i = 0; i < strlen(argv[1]); i++) - concat_1[i] = *(argv[1] + i); - printf("Putting %s and %s together gives %s\n", argv[1], argv[2], strcat(concat_2, argv[2])); - - return 0; -} diff --git a/Exercices/Programmes/src/sumarray.c b/Exercices/Programmes/src/sumarray.c deleted file mode 100644 index 63cf138..0000000 --- a/Exercices/Programmes/src/sumarray.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************** - * sumarray.c - * - * Programme d'exemple pour calculer la - * somme des éléments d'une matrice - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -/* Return t2-t1 in microseconds */ -long timeval_diff(struct timeval *t2, struct timeval *t1) -{ - long diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); - return (diff); -} - -///AAA -#define SIZE 10000 - -int matrix[SIZE][SIZE]; - -int sum() { - int sum=0; - for(int i=0;i<SIZE;i++) { - for(int j=0;j<SIZE;j++) { - sum+=matrix[i][j]; - } - } - return sum; -} - -int sum2() { - int sum=0; - for(int i=0;i<SIZE;i++) { - for(int j=0;j<SIZE;j++) { - sum+=matrix[j][i]; - } - } - return sum; -} -///BBB - -int main(int argc, char *argv[]) { - - for(int i=0;i<SIZE;i++) { - for(int j=0;j<SIZE;j++) { - matrix[i][j]=1; - } - } - printf("%d \n",sum()); - printf("%d \n",sum2()); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/Programmes/src/vector.c b/Exercices/Programmes/src/vector.c deleted file mode 100644 index d41579c..0000000 --- a/Exercices/Programmes/src/vector.c +++ /dev/null @@ -1,59 +0,0 @@ -/************************************** - * vector.c - * - * Programme de manipulation de vecteurs - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -struct vector_t { - int size; - float *v; -}; -// initialise le vecteur à la valeur du réel -struct vector_t * init(int, float) ; -// récupère le nième élément -float get(struct vector_t *, int) ; -// fixe la valeur du nième élément -void set(struct vector_t *, int , float); -// supprime un vecteur -void destroy(struct vector_t *); - -///BBB -struct vector_t * init(int size, float val) -{ - struct vector_t *v=(struct vector_t *)malloc(sizeof(struct vector_t)); - v->v=(float *)malloc(size*sizeof(float)); - v->size=size; - for(int i=0;i<size;i++) { - *(v->v+i)=val; - } - return v; -} - -float get(struct vector_t *v, int i) { - return *(v->v+i); -} - -void set(struct vector_t *v, int i, float val) { - if(i<v->size) - *(v->v+i)=val; -} - -void destroy(struct vector_t *v) { - free(v->v); - free(v); -} - -int main(int argc, char *argv[]) { - - struct vector_t *v1=init(10,2.0); - printf("v1[%d]=%f\n",3,get(v1,3)); - set(v1,3,17.0); - printf("v1[%d]=%f\n",3,get(v1,3)); - destroy(v1); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/Programmes/src/writeperf.c b/Exercices/Programmes/src/writeperf.c deleted file mode 100644 index 0fee8dc..0000000 --- a/Exercices/Programmes/src/writeperf.c +++ /dev/null @@ -1,92 +0,0 @@ -/************************************** - * writeperf.c - * - * Programme d'exemple d'utilisation de - * write - performances - * - *************************************/ -///AAA -#define _BSD_SOURCE // pour mkstemp - -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> -#include <string.h> -#include <inttypes.h> -#include <stdbool.h> -#include <getopt.h> - - - -#define TESTSIZE 100000000 // 100 MB - -extern char *optarg; -extern int optind, opterr, optopt; - -void exit_on_error(char *s) { - perror(s); - exit(EXIT_FAILURE); -} - -void usage() { - printf("Usage : writeperf [-s] -l size\n"); - printf(" -s synchronisation des ecritures avec sync (defaut : off)\n"); - printf(" -l size taille des write en bytes (defaut : 10000)\n"); - exit(EXIT_FAILURE); -} - -int main (int argc, char *argv[]) { - int fd; - int err; - char **endptr=NULL; - - int c; - - int syncflag=false; - long size=10000; - - while ((c = getopt (argc, argv, "sl:")) != -1) { - switch (c) - { - case 's': - syncflag = true; - break; - case 'l': - size=strtol(optarg,endptr,10); - if(endptr!=NULL||size<0||size>(TESTSIZE/10)) - usage(); - break; - case 'h': - case '?': - usage(); - } - } - - void *mem=malloc(TESTSIZE); - char template[]="testperfXXXXXX"; - fd=mkstemp(template); - if(fd==-1) - exit_on_error("mkstemp"); - err=unlink(template); - if(err==-1) - exit_on_error("unlink"); - for(void *ptr=mem;ptr<mem+TESTSIZE;ptr=ptr+size) { - if( write(fd, (void *) ptr, size) == -1 ) - exit_on_error("write"); - if(syncflag) - sync(); - } - - err=close(fd); - if(err==-1){ - perror("close"); - exit(EXIT_FAILURE); - } - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Exercices/Projets/P1/Makefile b/Exercices/Projets/P1/Makefile deleted file mode 100644 index c879091..0000000 --- a/Exercices/Projets/P1/Makefile +++ /dev/null @@ -1,12 +0,0 @@ -ARCHIVE=projet-1.tar.gz -SOURCES=$(wildcard src/*) - -all: $(ARCHIVE) - -$(ARCHIVE): $(SOURCES) - cd src && tar -pczf ../$@ * - -clean: - rm -f $(ARCHIVE) - -.PHONY: all clean \ No newline at end of file diff --git a/Exercices/Projets/P1/projet-1.rst.old b/Exercices/Projets/P1/projet-1.rst.old deleted file mode 100644 index 5a20627..0000000 --- a/Exercices/Projets/P1/projet-1.rst.old +++ /dev/null @@ -1,43 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _projet1: - -Premier Projet: Manipulation de bits ------------------------------------- - -On vous demande d'implémenter quelques fonctions de manipulation de bits. Dans -ce projet nous utiliserons une notation specifique pour représenter un nombre -non-signé de taille variable: ``struct bitstring``. Nous vous demandons de -définir vous même cette structure afin d'implémenter éfficacement les fonctions -déclarés dans le fichier :download:`/Projets/P1/src/bitstring.h` dans un -fichier ``bitstring.c``. Vous devez partir du code fourni dans l'archive -:download:`/Projets/P1/projet-1.tar.gz`. L'archive contient déjà un fichier -``test.c`` qui contient un exemple d'utilisation de la librarie CUnit (voir -:ref:`ref_cunit` pour installer la librarie). Vous devez bien entendu compléter -ce fichier pour la soumission. - -Ce projet sera évalué et comptera dans la note finale. Les critères de cotations (non-exhaustifs) sont les suivants: - - - Qualité du code (indentation, respect d'une convention, etc.); - - Commentaires; - - Tests de la valeur de retour des fonctions; - - Exhaustivité et qualité des tests; - - Gestion de la mémoire (efficacité, memory leak, etc.). - -Ce projet se fait par -groupes de deux et vous devez vous inscrire au SVN ``SINF1252_2013_P1`` sur le -site `<https://scm.info.ucl.ac.be/cgi-bin/inscription.sh>`_. Faites bien -attention à introduire aussi l'adresse mail de votre binôme lors de votre -inscription. Le projet doit être soumis avant lundi 4 mars 2013 à 23h55. Votre -dossier doit contenir **tous** les fichiers source nécessaires à la compilation -et l'utilisation de votre implémentation ainsi que les fonctions de test que -vous avez défini pour valider votre implémentation. Ces fichiers sont: - - - ``bitstring.h`` (non-modifée) - - ``bitstring.c`` - - ``test.c`` - - ``Makefile`` (non-modifiée) - - Ils doivent être placé sur le svn dans votre dossier ``grpXX``. diff --git a/Exercices/Projets/P1/projet-1.tar.gz b/Exercices/Projets/P1/projet-1.tar.gz deleted file mode 100644 index 7763a9feaddd0740e57ff41a5c5f4916ea8e2b3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3421 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 diff --git a/Exercices/Projets/P1/src/Makefile b/Exercices/Projets/P1/src/Makefile deleted file mode 100644 index 2653f88..0000000 --- a/Exercices/Projets/P1/src/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -TEST=test_bitstring -CFLAGS=-I$(HOME)/local/include -Wall -Werror -LDFLAGS=-L$(HOME)/local/lib -lcunit -SRC=$(wildcard *.c) -OBJ=$(SRC:.c=.o) - -all: test - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -$(TEST): $(OBJ) - $(CC) -o $@ $(OBJ) $(LDFLAGS) - -test: $(TEST) - @LD_LIBRARY_PATH=$(HOME)/local/lib ./$(TEST) - -.PHONY: exec test diff --git a/Exercices/Projets/P1/src/bitstring.c b/Exercices/Projets/P1/src/bitstring.c deleted file mode 100644 index 190f2a4..0000000 --- a/Exercices/Projets/P1/src/bitstring.c +++ /dev/null @@ -1 +0,0 @@ -// A compléter \ No newline at end of file diff --git a/Exercices/Projets/P1/src/bitstring.h b/Exercices/Projets/P1/src/bitstring.h deleted file mode 100644 index e298e72..0000000 --- a/Exercices/Projets/P1/src/bitstring.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef __BITSTRING_H__ -#define __BITSTRING_H__ - -/* /!\ Fichier à ne pas changer */ - -#include <stdlib.h> - -struct bitstring; -/* A vous de définir votre structure dans bitstring.c */ - -typedef struct bitstring bitstring_t; -typedef enum { - BITNULL = 0, - BITSET = 1 -} bit_t; - -/* Alloue un bitstring de 'n' bits initialisés à 0. - * 'n' est un multiple de 8! - * - * En cas d'erreur, NULL est retourné. - */ -bitstring_t *bitstring_alloc(size_t n); - -/* Alloue un bitstring dont la séquence de bits représente 'x'. - * - * En cas d'erreur, NULL est retourné. - */ -bitstring_t *bitstring_alloc_from_int(unsigned int x); - -/* Met le n'ième bit du bitstring 'b' à la valeur de 'bit'. - * Pour trouver le n'ième bit on compte à partir du bit de poids fort. - * - * 'n' est plus grand ou égal à 0 et strictement plus petit que - * bitstring_len(b) - */ -void bitstring_set(bitstring_t *b, unsigned int n, bit_t bit); - -/* Retourne la valeur du n'ième bit du bitstring 'b' - * Pour trouver le n'ième bit on compte à partir du bit de poids fort. - * - * 'n' est plus grand ou égal à 0 et strictement plus petit que - * bitstring_len(b) - */ -bit_t bitstring_get(bitstring_t *b, int n); - -/* Renvoi la longueur du bitstring */ -size_t bitstring_len(bitstring_t *b); - -/* Applique une rotation vers la gauche de 'n' bits sur le bitstring - * 'b'. - * Par exemple, pour un b = 00111101 et n = 3, - * b deviendra 11101001 après l'appel à cette fonction. - */ -void bitstring_rotate(bitstring_t *b, int n); - -/* Concate les bitstrings de 'b1' et 'b2'. - * - * Le résultat est stocké dans 'b1'. - * - * Retourne 0 en cas de succès, -1 en cas d'erreur. - */ -int bitstring_concat(bitstring_t *b1, bitstring_t *b2); - -/* Effectue l'opération ou exclusif entre 'b1' et 'b2' - * (b1 ^ b2). - * - * Si les bitstring 'b1' et 'b2' sont de taille - * différente, une erreur est renvoyée. Sinon, le résultat est fourni à - * l'appellant via 'res'. 'b1' et 'b2' sont inchangés. - * - * La valeur de retour est 0 en cas de succès, -1 en cas d'erreur. - */ -int bitstring_xor(bitstring_t *b1, bitstring_t *b2, bitstring_t **res); - -/* Affiche en représentation hexadécimale le bitstring 'b' dans - * le buffer 'buf' de taille 'len'. - * Retourne -1 si le buffer ne peut contenir toute la representation. - * Retourne le nombre de caractères hexadécimals (+'\0') écrits sinon. - */ -int bitstring_print(bitstring_t *b, char *buf, size_t len); - -/* Libère la mémoire du bitstring */ -void bitstring_free(bitstring_t *b); - -#endif diff --git a/Exercices/Projets/P1/src/test.c b/Exercices/Projets/P1/src/test.c deleted file mode 100644 index b7c68b7..0000000 --- a/Exercices/Projets/P1/src/test.c +++ /dev/null @@ -1,171 +0,0 @@ -#include "bitstring.h" - -#include <stdio.h> -#include <string.h> -#include <CUnit/Basic.h> - -#define LEN 24 - -#define MY_CU_ASSERT(value, args...) do { \ - int __b__ = (value); \ - if(! __b__) printf(args); \ - CU_ASSERT_FATAL(__b__); \ -} while(0) - -/* Ptr vers les bitstring employés pour les tests */ -static bitstring_t * b; - -/* The suite initialization function. -* Returns zero on success, non-zero otherwise. -*/ -int init_suite1(void) { - /* code pour l'init de la suite de tests, alloc ou autre... */ - b = NULL; - return 0; /* elle marche tjrs */ -} - -/* The suite cleanup function. -* Returns zero on success, non-zero otherwise. -*/ -int clean_suite1(void) { - /* nettoyage des données employées par la suite : free, etc... */ - if(b) - bitstring_free(b); - return 0; -} - -/* Teste bitstring_alloc() */ -void testAlloc() { - int i; - b = bitstring_alloc(LEN); - - printf("\n"); - /* verif mémoire allouée */ - MY_CU_ASSERT(b != NULL, - "Erreur : Le ptr bitstring 'b' ne pointe vers aucune addresse" - " mémoire. Lui avez-vous alloué de la mémoire (malloc()) ?" - " Renvoyez-vous le bon pointeur ?\n"); - - MY_CU_ASSERT(bitstring_len(b) == LEN, - "Erreur : Le bitstring n'a pas la bonne longueur (en bits)." - " Avez-vous pensé à l'affecter à une variable de la structure après avoir" - " alloué la mémoire ? Il se peut que ce soit votre fonction 'bitstring_len()'" - " qui n'est pas correcte.\n"); - - for (i = 0; i < LEN; i++) { - MY_CU_ASSERT(bitstring_get(b, i) == 0, - "Erreur : Au moins un des bits du bitstring ne vaut pas 0. Assurez-vous" - " que l'espace mémoire pour les données du bitstring soit bien mis" - " à 0 après l'allocation. De plus, est-ce que bitstring_get est correcte?\n"); - } - - bitstring_free(b); - b = bitstring_alloc(18); /* 18 n'est pas multiple de 8 */ - - MY_CU_ASSERT(b == NULL, - "Erreur : Le ptr bitstring 'b' devrait être NULL car on a essayé de l'allouer" - " pour une longueur de 18 bits, ce qui n'est pas multiple de 8." - " Avez-vous pensé à vérifier que la longueur passée en paramètre" - " était bien un multiple de 8 avant d'allouer de la mémoire ?" - " Renvoyez-vous bien le ptr NULL si ce n'est pas un multiple de 8 ?\n"); - - bitstring_free(b); - b = NULL; - printf("\n\tVotre fonction 'bitstring_alloc()' a l'air correcte.\n"); - printf("\t"); -} - -/* Teste bitstring_set() */ -void testSet() { - int i; - int testbit = 19; - - b = bitstring_alloc(LEN); - - printf("\n"); - - printf("\tMise du bit %d à 1\n", testbit); - bitstring_set(b, testbit, 1); /*on met le bit testbit à 1*/ - - /* vérifie que tous les bits sont à 0 (ignore le testbit) */ - for(i = 0; i < LEN; ++i) { - if(i == testbit) - continue; - MY_CU_ASSERT(bitstring_get(b, i) == 0, - "Erreur : Impossible de tester la fonction 'bitstring_set()' car" - " votre fonction 'bitstring_get()' ou 'bitstring_alloc()' n'est pas correcte.\n"); - } - - /* vérifie que le bit testbit est bien à 1 */ - MY_CU_ASSERT(bitstring_get(b, testbit) == 1, - "Erreur : Tous les bits semblent être à 0 dans votre bitstring alors" - " que le n°%d (0 étant le premier) devrait être à 1. Le problème" - " peut venir de 'bitstring_set()', mais aussi de 'bitstring_get()'.\n", - testbit); - - - /* on assigne un autre bit dans le même octet pour voir si ça n'efface pas l'autre */ - printf("\tMise du bit %d à 1\n", testbit+2); - bitstring_set(b, testbit + 2, 1); - - /* revérifie tous les bits */ - /* intéressant uniquement si les étudiants codent 8 bits par octet, -mais ne devrait pas trigger dans le cas contraire */ - for(i = 0; i < LEN; ++i) { - if(i == testbit || i == testbit + 2) { - MY_CU_ASSERT(bitstring_get(b, i) == 1, - "Erreur : Affecter un seul bit fonctionne correctement, mais en" - " affecter un second dans le même octet semble effacer le premier (ou ne" - " pas affecter correctement le second). Vérifiez que vous ne mettez pas" - " tout l'octet à 0 avant d'y set un bit. (Il se peut aussi que ce soit du" - " à 'bitstring_get()')\n"); - } else { - MY_CU_ASSERT(bitstring_get(b, i) == 0, - "Erreur : Affecter un seul bit fonctionne correctement, mais en" - " affecter un second dans le même octet altère des bits qui ne devraient pas" - " l'être. (Il se peut aussi que ce soit dû à 'bitstring_get()')\n"); - } - } - - - /* Il faudrait éventuellement penser à ajouter un test sur le premier et dernier bit du bitstring, -pour voir s'il n'y a pas d'effet de bord : les numéros de bits allant de 0 à bitstring_len() − 1 */ - - /* succès */ - printf("\n\tVotre fonction 'bitstring_set()' a l'air correcte.\n"); - printf("\t"); -} - -/* The main() function for setting up and running the tests. -* Returns a CUE_SUCCESS on successful running, another -* CUnit error code on failure. -*/ -int main() -{ - CU_pSuite pSuite = NULL; - - /* initialize the CUnit test registry */ - if(CUE_SUCCESS != CU_initialize_registry()) - return CU_get_error(); - - /* add a suite to the registry */ - pSuite = CU_add_suite("Suite de tests pour bitstring", init_suite1, clean_suite1); - if(NULL == pSuite) { - CU_cleanup_registry(); - return CU_get_error(); - } - - /* add the tests to the suite */ - /* NOTE - ORDER IS IMPORTANT - first fct added = first to be run */ - if(NULL == CU_add_test(pSuite, "test de 'bitstring_alloc()'", testAlloc) || - NULL == CU_add_test(pSuite, "test de 'bitstring_set()'", testSet)) { - CU_cleanup_registry(); - return CU_get_error(); - } - - /* Run all tests using the CUnit Basic interface */ - CU_basic_set_mode(CU_BRM_SILENT); - CU_basic_run_tests(); - CU_cleanup_registry(); - return CU_get_error(); -} diff --git a/Exercices/Projets/P2/Makefile b/Exercices/Projets/P2/Makefile deleted file mode 100644 index 59a2c84..0000000 --- a/Exercices/Projets/P2/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -ARCHIVE=projet-2.tar.gz -SOURCES=$(wildcard src/*) - -all: $(ARCHIVE) - -$(ARCHIVE): $(SOURCES) - cd src && tar -pczf ../$@ * - -clean: - rm -f $(ARCHIVE) - -.PHONY: all clean - diff --git a/Exercices/Projets/P2/enonce.rst.old b/Exercices/Projets/P2/enonce.rst.old deleted file mode 100644 index a329b59..0000000 --- a/Exercices/Projets/P2/enonce.rst.old +++ /dev/null @@ -1,101 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Application de filtres sur des images -===================================== - -Une image numérique est composée de petits points appelée pixels. Chaque -pixel a une couleur bien spécifique qui est définie par 3 couleurs primaires: -le rouge, le vert et le bleu. Ces 3 couleurs primaires permettent de représenter, en les additionnants, un grand nombre de couleurs. - -Le format bitmap est un format de fichier pour stocker l'information sur les pixels -d'une image. C'est un format très simple qui utilise le format RGB pour chaque pixel. -Dans ce format, l'intensité de chacune des couleurs primaires d'un pixel est exprimé par un -entier sur 8 bits. Ces couleurs ont donc une valeur entre 0 et 255 avec 0 étant l'intensité -la plus faible (le noir) et 255 l'intensité la plus forte (le blanc). -Pour chaque pixel le format bitmap requiert donc -24 bits afin de stocker l'information nécessaire. - -Dans ce projet, vous allez combiner des filtres sur des images. Un filtre est une opération appliquée sur les pixels d'une image. Par exemple, dans ce projet, vous allez implémenter un filtre qui retire la composante rouge d'une -image en changeant son intensité à 0. - - -Programme attendu ------------------ - -On vous demande d'implémenter des filtres parallélisés sur les images bitmap. -Votre programme reçoit en argument un dossier contenant des fichiers bitmap, -une liste de filtres à appliquer et le nombre de threads utilisés par filtre. Votre programme doit se baser sur le code présent dans l'archive :download:`/Projets/P2/projet-2.tar.gz`. - -Plus en détails, votre programme doit supporter la ligne de commande suivante: - - .. code-block:: console - - $ ./filter -f filter1[,filter2[,...]] -t numThreads1[,numThreads2[,...]] input-folder output-folder - -L'option ''-f'' permet de spécifier les filtres et l'ordre dans lesquels ils sont appliqués sur chaque image. -La liste des filtres est la suivante: - - * ''red'' Filtre, qui enlève la composante 'rouge' de l'image. - * ''green'' Filtre, qui enlève la composante 'vert' de l'image (déjà fourni). - * ''blue'' Filtre, qui enlève la composante 'bleu' de l'image. - * ''grayscale'' Filtre, qui transforme l'image en niveau de gris. Le niveau du gris est calculé en mettant chaque couleur primaire du pixel égale à la moyenne des trois couleurs primaires. - * ''blur'' Filtre, qui ajoute un flou gaussien dans l'image. Voyez :download:`/Projets/P2/src/filter.h` pour plus d'informations sur ce filtre. - -Nous vous demandons également de définir et d'implémenter vous-mêmes un filtre. Ce filtre sera évalué en fonction de son originalité. Vous pouvez bien sûr vous baser sur des filtres déjà existants. Il est cependant interdit de copier/coller un code existant. - -L'option ''-t'' permet de spécifier le nombre de threads par filtre. Il y a donc toujours ''numThreads1'' threads pour le filtre ''filter1''. L'option ''-t'' doit avoir autant d'arguments que l'option ''-f''. - -Les arguments ''input-folder'' et ''output-folder'' fournissent au programme respectivement le dossier où les fichiers bitmap se trouvent et le dans lequel il faut écrire les images. Chaque image à la sortie aura le même nom et extension qu'à l'entrée. - -Voici un exemple d'utilisation du programme: - - .. code-block:: console - - $ ./filter -f red,blur,green -t 2,4,2 images/ out_images/ - - -API fournie ------------ - -Nous vous fournissons une API pour lire un fichier bitmap et écrire l'image dans le format bitmap. - - .. code-block:: c - - int load_bmp(char *file, struct image **res_image); - -''load_bmp'' charge l'image donnée par ''file'' et alloue une structure ''struct image'' qui représente l'image entière. Regardez :download:`/Projets/P2/src/bitmap.h` pour plus d'informations. - - .. code-block:: c - - int write_bmp(struct image *img, char *file); - -''write_bmp'' écrit l'image ''img'' dans le fichier dont le chemin est spécifié par ''file''. :download:`/Projets/P2/src/bitmap.h` fournit plus d'informations. - -Pour pouvoir tester votre programme, nous avons mis à votre disposition un ensemble d'images sur `<http://sinf1252.info.ucl.ac.be/data/images.tar.gz>`_ - -Séance intermédiaire --------------------- - -Afin d'au mieux vous aider dans vos choix de désign, nous organisons une séance intermédiaire *obligatoire*. Pour cela nous vous demandons d'écrire un petit rapport de *2 pages maximum* qui doit être présent sur le SVN du projet dans le votre dossier de groupe et doit se nommer *prerapport.pdf*. Ce pré-rapport doit être fourni avant le 14 mars à 23h55 et doit contenir la solution que vous comptez implémenter. Une discussion de maximum 10 minutes aura alors lieu avec les assistants du cours et sera organisée le 18 mars. Vous devez vous inscrire en indiquant votre numéro de groupe (du SVN) pour le projet (voir section suivante) sur le doodle: `<http://doodle.com/fskwhh22u56xxn5w>`_. - -Consignes ---------- - -Le projet est à soumettre pour le 17 avril à 12h00 via le SVN du deuxième projet. Vous devez donc vous inscrire ensemble avec votre binôme sur le SVN ''SINF1252_2013_PROJET_2'' sur le -site `<https://scm.info.ucl.ac.be/cgi-bin/inscription.sh>`_. -Vous devez fournir sur le SVN dans votre dossier de groupe: - - - Le code source de votre projet (pas de binaires) ainsi qu'un ``Makefile`` (lorsque l'on tape ``make`` un binaire ``filter`` doit être généré.). Vous devez compiler votre programme avec les options *-Wall* et *-Werror* de gcc. - - Un rapport de *4 pages maximum* (12pt) qui décrit vos choix architecturaux ainsi que les problèmes rencontrés. Le rapport doit être nommé *rapport.pdf* et présent dans votre dossier de groupe. - -Les critères de cotation sont les suivants (liste non-exhaustive): - - - Votre impémentation doît fonctionner dans les salles informatiques du département; - - Création et gestion des threads; - - Synchronisation des threads; - - Gestion de la mémoire; - - Implémentation des filtres; - - Respect des consignes. - diff --git a/Exercices/Projets/P2/projet-2.tar.gz b/Exercices/Projets/P2/projet-2.tar.gz deleted file mode 100644 index f4621e13a9489f90e025ca30ffb17b805766dd78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3076 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 Sf(k0QBlsWb#xC*zPyhgI&kBeD diff --git a/Exercices/Projets/P2/src/bitmap.h b/Exercices/Projets/P2/src/bitmap.h deleted file mode 100644 index 0f787e6..0000000 --- a/Exercices/Projets/P2/src/bitmap.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef BITMAP_H -#define BITMAP_H - -struct pixel { - unsigned char b; /* Bleu */ - unsigned char g; /* Vert */ - unsigned char r; /* Rouge */ -} __attribute__((packed)); - -struct image { - int width; /* Largeur en pixels */ - int height; /* Hauteur en pixels */ - - int hor_res; /* Résolution horizontale - Ne pas modifier */ - int ver_res; /* Résolution verticale - Ne pas modifier */ - - /* pixel est un tableu de taille width * height et représente les composantes - * RGB de tous les pixels. Le pixel (0,0) est le pixel en bas à gauche et - * le pixel (width-1, height-1) est celui en haut à droite. - */ - struct pixel *pixels; -} __attribute__((packed)); - -/* Charge le bitmap spécifié par 'file' dans la nouvelle image 'res_image'. - * - * Si la fonction retourne 0 (succès), *res_image pointe vers une nouvelle - * zone mémoire allouée contenant le bitmap. Si la fonction retourne une - * une valeur différente de zero, une erreur s'est produite et la valeur - * errno est mis à jour. - */ -int load_bmp(char *file, struct image **res_image); - -/* Ecrit le bitmap spécifié par 'img' dans le fichier nomé 'file'. - * - * Si l'écriture est réussie, 0 est renvoyé. Lors d'une erreur, une valeur - * différente de zero est renvoyée et errno est mis à jour. - */ -int write_bmp(struct image *img, char *file); - -#endif diff --git a/Exercices/Projets/P2/src/bitmapio.c b/Exercices/Projets/P2/src/bitmapio.c deleted file mode 100644 index 69210a1..0000000 --- a/Exercices/Projets/P2/src/bitmapio.c +++ /dev/null @@ -1,184 +0,0 @@ -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include "bitmap.h" - -struct bitmap_file_header { - char id[2]; - u_int32_t size; - char reserved[4]; - u_int32_t offset; -} __attribute__((packed)); - -struct bitmap_info_header { - u_int32_t hdrsize; - int32_t width; - int32_t height; - int16_t color_planes; /* Must be 1 */ - int16_t bits_per_pixel; /* We only support 24 */ - u_int32_t compression; /* We only support '0' */ - u_int32_t bitmap_size; - u_int32_t hor_res; - u_int32_t ver_res; - u_int32_t num_colors; - u_int32_t important_colors; -} __attribute__((packed)); - -static u_int32_t power(a, b) -{ - int i; - int res = 1; - for (i = 0; i < b ; i++) - res *= a; - - return res; -} - -int load_bmp(char *file, struct image **res_image) -{ - FILE *fp; - struct bitmap_file_header hdr; - struct bitmap_info_header infohdr; - struct image *img; - int num_pixels; - int j, pad; - - - if (!res_image) { - printf("**res_image pointer to pointer is not initialized!!!\n"); - errno = -EAGAIN; - return -EAGAIN; - } - - img = (struct image *) malloc(sizeof(*img)); - if (!img) - return errno; - - *res_image = img; - - /* open the file */ - if ((fp = fopen(file,"r")) == NULL) - return errno; - - /* Read bitmap header */ - if (fread(&hdr, sizeof(hdr), 1, fp) != 1) - goto error; - - /* Check format */ - if (hdr.id[0] != 'B' || hdr.id[1] != 'M') { - printf("%s is not a bitmap file in windows-format.\n", file); - errno = -EAGAIN; - goto error; - } - - /* Read bitmap info header */ - if (fread(&infohdr, sizeof(infohdr), 1, fp) != 1) - goto error; - - if (infohdr.color_planes != 1 || infohdr.bits_per_pixel != 24 || - infohdr.compression != 0 || infohdr.num_colors != 0 || - infohdr.important_colors != 0) { - printf("The bmp image is not in a supported format!\n"); - printf("The supported format requires: colorplanes == 0, 24 bits per " - "pixel, no compression, num-colors == 0 and important-colors == 0\n"); - printf("But we got: colorplanes %u bits per pixel %u compression %u " - "num-colors %u important-colors %u\n", infohdr.color_planes, - infohdr.bits_per_pixel, infohdr.compression, infohdr.num_colors, - infohdr.important_colors); - errno = -EAGAIN; - goto error; - } - - if (infohdr.num_colors == 0) - /* This means, the number of colors in the color-pallette is 2**bits_per_pixel */ - infohdr.num_colors = power(2, infohdr.bits_per_pixel); - - img->width = infohdr.width; - img->height = infohdr.height; - img->hor_res = infohdr.hor_res; - img->ver_res = infohdr.ver_res; - - /* Now, move the pointer to the pixel-array */ - if (fseek(fp, infohdr.hdrsize - sizeof(infohdr), SEEK_CUR)) - goto error; - - num_pixels = img->width * img->height; - img->pixels = (struct pixel *) malloc(sizeof(struct pixel)*num_pixels); - - if (!img->pixels) - goto error; - - pad = (4 - (img->width * 3) % 4) % 4; - for (j = 0; j < img->height; j++) { - if (fread(&img->pixels[j*img->width], 3, img->width, fp) != img->width) - goto error; - - if (fseek(fp, pad, SEEK_CUR)) - goto error; - } - - fclose(fp); - return 0; - -error: - fclose(fp); - return errno; -} - -int write_bmp(struct image *img, char *file) -{ - FILE *fp; - struct bitmap_file_header hdr; - struct bitmap_info_header infohdr; - int num_pixels = img->width * img->height; - int j, pad; - struct pixel padding = {0,0,0}; - - - /* open the file */ - if ((fp = fopen(file,"w")) == NULL) - return errno; - - hdr.id[0] = 'B'; - hdr.id[1] = 'M'; - hdr.size = sizeof(hdr) + sizeof(infohdr) + num_pixels * 3; - hdr.reserved[0] = 0; - hdr.reserved[1] = 0; - hdr.reserved[2] = 0; - hdr.reserved[3] = 0; - hdr.offset = sizeof(hdr) + sizeof(infohdr); - - if (fwrite(&hdr, sizeof(hdr), 1, fp) != 1) - goto write_error; - - infohdr.hdrsize = sizeof(infohdr); - infohdr.width = img->width; - infohdr.height = img->height; - infohdr.color_planes = 1; - infohdr.bits_per_pixel = 24; - infohdr.compression = 0; - infohdr.bitmap_size = num_pixels * 3; - infohdr.num_colors = 0; - infohdr.hor_res = img->hor_res; - infohdr.ver_res = img->ver_res; - infohdr.important_colors = 0; - - if (fwrite(&infohdr, sizeof(infohdr), 1, fp) != 1) - goto write_error; - - pad = (4 - (img->width * 3) % 4) % 4; - for (j = 0; j < img->height; j++) { - if (fwrite(&img->pixels[j*img->width], 3, img->width, fp) != img->width) - goto write_error; - - if (fwrite(&padding, 1, pad, fp) != pad) - goto write_error; - } - - fclose(fp); - return 0; - -write_error: - fclose(fp); - return errno; -} diff --git a/Exercices/Projets/P2/src/filter.h b/Exercices/Projets/P2/src/filter.h deleted file mode 100644 index 444a50c..0000000 --- a/Exercices/Projets/P2/src/filter.h +++ /dev/null @@ -1,54 +0,0 @@ -#include "bitmap.h" - -/* Signature de fonction pour les filtres. - * Chaque filtre prend une image en argument et - * lui applique une opération. Retourne 0 en cas - * de succès, -1 sinon. - */ -typedef int(filter_t)(struct image *); - -/* Retire la composante rouge de l'image */ -filter_t filter_red; - -/* Retire la composante verte de l'image */ -filter_t filter_green; - -/* Retire la composante bleue de l'image */ -filter_t filter_blue; - -/* Transforme l'image en niveau de gris en calculant - * la moyenne sur les différentes composantes. - */ -filter_t filter_grayscale; - -/* Ajoute de flou gaussien dans l'image en utilisant la - * matrice carrée de taille 3 comme matrice de poids: - * 0.0 0.2 0.0 - * 0.2 0.2 0.2 - * 0.0 0.2 0.0 - * - * Si on considère la composante rouge de l'image suivante - * (chaque element a une valeur entre 0 et 255) de taille - * 6x5: - * - * 1 2 5 2 0 3 - * ------- - * 3 |2 5 1| 6 0 0.0*2 + 0.2*5 + 0.0*1 + - * | | - * 4 |3 6 2| 1 4 -> 0.2*3 + 0.2*6 + 0.2*2 + -> 3.2 - * | | - * 0 |4 0 3| 4 2 0.0*4 + 0.2*0 + 0.0*3 - * ------- - * 9 6 5 0 3 9 - * - * La nouvelle valeur du pixel (3, 4) devient round(3.2) = 3. - * - * Lorsque les élements de la matrice se retrouvent en dehors - * de l'image (c'est-à -dire pour les pixels à la bordure de l'image), - * la valeur du pixel central sera utilisé pour les valeurs des pixels - * en dehors des limites de l'image. C'est-à -dire, la nouvelle valeur - * du pixel (0, 0) dans l'image précédente sera: - * 0.2 * 0 + 0.2 * 9 + 0.2 * 6 + 0.2 * 9 + 0.2 * 9 = 6.6 -> 7 - */ -filter_t filter_blur; - diff --git a/Exercices/Projets/P2/src/filters.c b/Exercices/Projets/P2/src/filters.c deleted file mode 100644 index 167fb90..0000000 --- a/Exercices/Projets/P2/src/filters.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "filter.h" -#include <stdio.h> - -int filter_green(struct image *img) -{ - int x, y; - for (x = 0; x < img->width; ++x) { - for (y = 0; y < img->height; y++) - img->pixels[x + y * img->width].g = 0; - } - - return 0; -} - -/* TODO implémenter les filtres */ diff --git a/Exercices/Projets/P2/src/main.c b/Exercices/Projets/P2/src/main.c deleted file mode 100644 index 6043247..0000000 --- a/Exercices/Projets/P2/src/main.c +++ /dev/null @@ -1,28 +0,0 @@ -#include <stdio.h> -#include "bitmap.h" -#include "filter.h" - -/* Exemple d'utilisation des fonctions fournies. - * Vous devez impérativement changer le code ci-dessous. - */ -int main(int argc, char *argv[]) -{ - struct image *img; - - if (load_bmp(argv[1], &img)) { - perror("Error calling load_bmp"); - return 1; - } - - if (filter_green(img)) { - perror("Error calling filter_green"); - return 1; - } - - if (write_bmp(img, argv[2])) { - perror("Error calling write_bmp"); - return 1; - } - - return 0; -} diff --git a/Exercices/Projets/P3/enonce.rst.old b/Exercices/Projets/P3/enonce.rst.old deleted file mode 100644 index 6745442..0000000 --- a/Exercices/Projets/P3/enonce.rst.old +++ /dev/null @@ -1,86 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Implémentation d'un encodeur et extension de l'outil `cat(1)`_ -============================================================== - -Le monde de l'informatique est fortement influencé par la mentalité "Open Source". Par exemple, les systèmes GNU/Linux sont basés sur ce genre d'outils. Le but de l'open source est d'ouvrir l'accès au code source des programmes et permettre à tout le monde de le modifier par rapport à ses besoins. - -Pour ce dernier projet du cours SINF1252 on vous demande d'étendre la librairie open source: *GNU core utilities* ou ``coreutils``. Le package ``coreutils`` contient tout les programmes nécessaire à la gestion de votre système, comme `kill(1)`_, `cp(1)`_, `tail(1)`_, et beaucoup d'autres. - -Programme attendu ------------------ - -On vous demande d'implémenter un outil de compression de fichier dans la librairie ``coreutils`` ainsi qu'étendre l'outil `cat(1)`_ (qui fait partie de ``coreutils``) pour qu'il puisse lire ce type de fichiers. De plus, on vous demande de modifier `cat(1)`_ pour qu'il utilise des fichier mappé en mémoire (`mmap(2)`_). On vous demande également d'utiliser `mmap(2)`_ dans votre encodeur. - -L'encodeur est donc un nouveau binaire que vous devriez intégrer dans le package ``coreutils``. Son utilisation est défini comme suit: - - .. code-block:: console - - $ encode input-file output-file - -L'outil ``encode`` lit le fichier ``input-file``, le compresse avec l'algorithme de "Run-length encoding" et écrit la version compressée dans le fichier ``output-file``. Pour avoir des informations sur l'algorithme, voyez la section ci-dessous. - -Pour le décodage, vous devez étendre l'outil `cat(1)`_ avec l'option ``-x``. Cette option (qui ne prend pas d'argument), spécifie que l'input doît être interprété comme étant un fichier créé par l'outil ``encode``. - -N'oubliez pas d'adapter le Makefile, les manpages dans le dossier ``man`` de la librairie ``coreutils``. - -Run-length encoding -------------------- - -Le run-length encoding est un algorithme de compression de fichier qui essaye de profiter du fait que le même caractère se répète plusieurs fois, pour réduire la taille d'un fichier. Le run-length encoding est donc une suite de octets, dont le premier est identifié comme étant le ``length``. Ce dernier est un entier non-signé sur 8 bits avec la signification suivante: - - * si ``length <= 128``, le byte suivant est repété ``length`` fois. - * si ``length > 128``, les ``length - 128`` octets suivant ne sont pas repèté. - -Voici un exemple sur un fichier contenant du texte: - - * ``aaaabcdaaaa`` peut être encodé de la façon suivant: Le premier octet est mis à '4', suivi par un 'a'. Ensuite, on encode un '131' sur un octet suivi de la séquence 'bcd'. Cela signifie donc que les 131 - 128 = 3 octets suivant le '131' ne sont pas répété. Ensuite vous pouvez de nouveau encoder un '4', suivi par un 'a'. - -Vous êtes libre à décider si dans votre encodage vous utilisez un ``length`` plus grand que 128, ou pas. Cela a une forte influence sur le taux de compression de l'encodeur. - -Compilation de coreutils ------------------------- - -Vous pouvez récupérer le code source de ``coreutils`` en suivant le lien `<http://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz>`_. - -Pour l'extraire, vous exécutez la commande `tar(1)`_: - - .. code-block:: console - - $ tar -xJf coreutils-8.21.tar.xz - -Les différents outils et leur code-source se trouvent dans le dossier ``src``. Les manpages sont dans le dossier ``man``. - -Pour compiler, suivez les étapes suivantes dans le dossier ``coreutils-8.21``: - - .. code-block:: console - - $ ./configure - $ make - -Les binaires vont se trouver dans le dossier ``src``. - - -Consignes ---------- - -Le projet est à soumettre pour le jeudi 16 mai à 23h55 via le SVN du troisième projet. Vous devez donc vous inscrire ensemble avec votre binôme sur le SVN ''SINF1252_2013_P3'' sur le -site `<https://scm.info.ucl.ac.be/cgi-bin/inscription.sh>`_. -Vous devez fournir sur le SVN dans votre dossier de groupe: - - - Le code source de votre projet (pas de binaires). Les codes sources doivent se trouver dans le répertoire *grpXY/coreutils-8.21/*. Il doit être possible pour les assistants du cours de générer un patch de vos changements à l'aide de la commande: ``diff -rNu grpXY/coreutils-8.21/ <source_originale_de_coreutils>``. Cette commande doit uniquement retourner vos changements. - - - Un rapport de *2 pages maximum* (12pt) qui décrit vos choix de design ainsi que les problèmes rencontrés. Le rapport doit être nommé *rapport.pdf* et présent dans votre dossier de groupe (*grpXY/rapport.pdf*). - -Les critères de cotation sont les suivants (liste non-exhaustive): - - - Votre impémentation doit fonctionner dans les salles informatiques du département; - - Intégration de vos changements dans l'infrastructure de coreutils; - - L'appel à ``make`` génère correctement un binaire ``src/encode`` (sans warning ni erreurs). - - Intégralité de votre implémentation (manpages, ...); - - Optimalité de votre algorithme d'encodage; - - Respect des consignes; - - ... - diff --git a/Exercices/QCM/S1/Makefile b/Exercices/QCM/S1/Makefile deleted file mode 100755 index 89160a7..0000000 --- a/Exercices/QCM/S1/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=1 - -DEST=../../../web/qcm - -EXNAME=$(DEST)/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S1/qcm-1.rst b/Exercices/QCM/S1/qcm-1.rst deleted file mode 100644 index 4048656..0000000 --- a/Exercices/QCM/S1/qcm-1.rst +++ /dev/null @@ -1,309 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript">$nmbr_prop = 4</script> - - -========================= -Mission 1 : Mise en Route -========================= - -Ces questions ont pour objectif de vous permettre de tester vous-même votre compréhension de la matière couverte par cette mission de mise en route. - -Ces questions supposent que vous avez lu le premier chapitre du syllabus contenant l'introduction à Unix et au langage C. - - -Question 1. Commande `man(1)`_ ------------------------------- - -La commande `man(1)`_ permet de lire les pages de manuel d'un système Unix. Elle est particulièrement utile pour vérifier les arguments à donner à un programme en ligne de commande ou pour savoir comment utiliser certaines fonctions de la librairie standard ou appels systèmes. Comment faut-il appeler la commande `man(1)`_ pour lister toutes les pages de manuel dont le résumé contient le mot ''intro'' ? - -.. class:: positive - -- - .. code:: console - - man -k intro - - -.. class:: negative - -- - .. code:: console - - man intro - - .. class:: comment - - Cette commande permet d'obtenir la page dénommée ``intro`` mais uniquement dans la première section du manuel. Elle ne liste pas toutes les pages dont le résumé contient le mot clé ``intro``. - -- - .. code:: console - - man -k *intro* - - .. class:: comment - - Par défaut, lorsque vous passez un argument tel que ``*intro*`` en ligne de commande, le shell va tenter de remplacer ``*intro*`` par tous les noms de fichiers du répertoire courant qui contiennent l'expression régulière qui commence par n'importe quelle suite de caractères, contient ``intro`` et se termine par n'importe quelle suite de caractères. Si le répertoire dans lequel vous exécutez cette commande contient les fichiers ``intro.txt`` et ``intro.dat``, ``man`` recevra ces deux noms de fichiers comme arguments. - -Question 2. Commande `ls(1)`_ ------------------------------ - -La commande `ls(1)`_ permet de lister le contenu d'un répertoire. Elle supporte de nombreux paramètres. Parmi les groupes d'affirmation suivants, un seul est valide, lequel ? - -.. class:: positive - -- - - Dans un répertoire, la commande ``ls -a`` sans argument permet d'afficher la liste de tous les fichiers et répertoires présents - - La commande ``ls -r`` permet de lister les répertoires présents dans le répertoire courant en inversant l'ordre - - La commande ``ls -l`` permet d'obtenir la liste détaillée du contenu du répertoire courant avec toutes les informations relatives à chaque fichier et répertoire non cachés - - -- - - Dans un répertoire, la commande ``ls -a`` sans argument permet d'afficher la liste de tous les fichiers et répertoires présents - - La commande ``ls -R`` permet de lister de façon récursive le contenu du répertoire courant et de ses sous-répertoires - - La commande ``ls -l`` permet d'obtenir la liste détaillée du contenu du répertoire courant avec toutes les informations relatives à chaque fichier et répertoire non cachés - - -.. class:: negative - -- - - Dans un répertoire, la commande ``ls *`` permet d'afficher la liste de tous les fichiers et répertoires présents - - La commande ``ls -f`` permet de lister le contenu du répertoire courant sans trier les fichiers par nom - - La commande ``ls -l`` permet d'obtenir la liste détaillée du contenu du répertoire courant avec toutes les informations relatives à chaque fichier et répertoire - - .. class:: comment - - Relisez la page de manuel de `ls(1)`_. Sous Unix, le shell va remplacer ``*`` par l'ensemble des fichiers présents dans le répertoire courant - -- - - Dans un répertoire, l'appel à `ls(1)`_ sans argument permet d'afficher la liste de tous les fichiers et répertoires présents - - La commande ``ls -r`` permet de lister de façon récursive le contenu du répertoire courant et de ses sous-répertoires - - La commande ``ls -l`` permet d'obtenir la liste détaillée du contenu du répertoire courant avec toutes les informations relatives à chaque fichier et répertoire - - .. class:: comment - - Relisez la page de manuel de `ls(1)`_. Sous Unix, l'appel à `ls(1)`_ sans argument dans le shell affichera l'ensemble des fichiers présents dans le répertoire courant - - - -Question 3. Premier programme en langage C ------------------------------------------- - -Depuis la publication du livre de référence [KernighanRitchie1998], le premier programme écrit en langage C affiche à l'écran la chaîne de caractères "Hello, world". Parmi les codes source ci-dessous, un seul est entièrement correct. Lequel ? - - -.. class:: positive - -- - .. code:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - printf("Hello, world\n"); - } - -- - .. code:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - printf("Hello,"); - printf(" world\n"); - } - -.. class:: negative - -- - .. code:: c - - #include <stdio.h> - void main(int argc, const char *argv[]) { - printf("Hello, world\n"); - } - - - .. class:: comment - - En C, contrairement à Java, la fonction ``main`` retourne une valeur de type ``int``. - -- - .. code:: c - - int main(int argc, const char *argv[]) { - printf("Hello, world\n"); - } - - - .. class:: comment - - La fonction `printf(3)`_ utilisée par ce programme fait partie de la librairie standard de gestion des I/O. Pour l'utiliser, il faut inclure le header `stdio.h`_. Même si certains compilateurs pouvaient l'inclure par défaut, il est préférable de spécifier ce header explicitement. - -- - .. code:: c - - #include <stdlib.h> - int main() { - printf("Hello, world\n"); - } - - - .. class:: comment - - En C, la signature de la fonction ``main`` est ``int main(int argc, const char *argv[])`` même si certains compilateurs peuvent être tolérants. `printf(3)`_ est défini via `stdio.h`_ et non `stdlib.h`_. - -- - .. code:: c - - #include <stdlib.h> - void main() - printf("Hello, world\n"); - } - - - .. class:: comment - - En C, la signature de la fonction ``main`` est ``int main(int argc, const char *argv[])`` même si certains compilateurs peuvent être tolérants. `printf(3)`_ est défini via `stdio.h`_ et non `stdlib.h`_. - - -Question 4. Deuxième programme en langage C --------------------------------------------- - -Votre deuxième programme en langage C doit afficher à l'écran la chaîne de caractères `SINF1252`. Lequel parmi les programmes ci-dessous affiche-t-il correctement cette chaîne de caractères ? - -.. class:: positive - -- - .. code:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf("SINF%d\n", a); - } - - .. class:: comment - - En C, la fonction `printf(3)`_ prend un nombre variable d'arguments. Le premier est toujours une spécification de formatage qui indique la chaîne de caractères à afficher. Les autres arguments sont des identifiants de variables dont les valeurs seront utilisées pour construire la chaîne de caractères à afficher. Le deuxième argument remplace le premier format `%d`, le troisième argument le deuxième format, etc. La page de manuel de `printf(3)`_ fournit de nombreux détails sur le fonctionnement de cette fonction qui accepte de nombreux paramètres. - -- - .. code:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf("SINF"); - printf("%d\n", a); - } - - .. class:: comment - - En C, la fonction `printf(3)`_ prend un nombre variable d'arguments. Le premier est toujours une spécification de formatage qui indique la chaîne de caractères à afficher. Les autres arguments sont des identifiants de variables dont les valeurs seront utilisées pour construire la chaîne de caractères à afficher. Le deuxième argument remplace le premier format `%d`, le troisième argument le deuxième format, etc. La page de manuel de `printf(3)`_ fournit de nombreux détails sur le fonctionnement de cette fonction qui accepte de nombreux paramètres. - -.. class:: negative - -- - .. code:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf("SINF%a\n", a); - } - - .. class:: comment - - Dans la fonction `printf(3)`_, ``%a`` est utilisé lorsque l'on veut placer dans une chaîne de caractères un nombre réel en notation hexadécimale. Dans ce cas, ``a`` étant un entier, il aurait fallu utiliser ``%d``. - -- - .. code:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf(SINF); - printf(%d\n, a); - } - - .. class:: comment - - En C, une chaîne de caractères (ou un descripteur de format pour `printf(3)`_ qui est aussi une chaîne de caractères) commence et se termine par le caractère ``"``. - -- - .. code:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf("SINF$a\n", a); - } - - .. class:: comment - - Dans la fonction `printf(3)`_ en C, et contrairement à d'autres langages, le caractère ``$`` ne joue pas de rôle particulier. Le programme ci-dessus affichera donc simplement ``SINF$a`` à l'écran. - - -Question 5. Arguments passés à un programme C ------------------------------------------------ - -Considérons le programme C ci-dessous qui permet de manipuler les arguments passés en ligne de commande. - - .. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - int main(int argc, const char *argv[]) - { - int a = atoi(argv[1]); - printf("%d\n", a); - } - -Parmi les groupes d'affirmations ci-dessous, un seul ne contient que des affirmations qui sont toutes vraies. Lequel ? - - -.. class:: positive - -- - - - Lors de l'exécution de la fonction ``main``, ``argc`` est initialisé au nombre d'arguments passés au programme (y compris le nom de l'exécutable lui-même). - - Lors de l'exécution de la fonction ``main``, le tableau ``argv[]`` contient dans ```argv[0]`` le nom du programme, dans ``argv[1]`` le premier argument, etc. - - La fonction ``atoi`` permet de convertir une chaîne de caractères en l'entier équivalent. - - -.. class:: negative - -- - - Lors de l'exécution de la fonction ``main``, ``argc`` est initialisé à zéro. - - Lors de l'exécution de la fonction ``main``, le tableau ``argv[]`` contient dans ``argv[0]`` le premier argument, dans ``argv[1]`` le second argument, etc. - - La fonction ``atoi`` calcule la taille de son argument. - - .. class:: comment - - Les trois affirmations sont fausses. ``argc`` sera toujours initialisé à un vu que le nom du programme est toujours passé en argument. Le premier élément du tableau ``argv[]``, ``argv[0]``, est le nom du programme qui est exécuté. Enfin, la fonction ``atoi`` permet de convertir une chaîne de caractères en l'entier équivalent. - -- - - Lors de l'exécution de la fonction ``main``, ``argc`` est le nombre maximum d'arguments que l'on peut lui passer. - - Lors de l'exécution de la fonction ``main``, le tableau ``argv[]`` contient dans ``argv[0]`` le premier argument, dans ``argv[1]`` le second argument, etc. - - La fonction ``atoi`` doit prendre comme argument une chaîne de caractères qui ne contient que des chiffres. - - .. class:: comment - - Les deux premières affirmations sont fausses. ``argc`` contient le nombre d'arguments passés effectivement au programme. Le premier élément du tableau ``argv[]``, ``argv[0]``, est le nom du programme qui est exécuté. - -- - - Lors de l'exécution de la fonction ``main``, le tableau ``argv[]`` contient dans ```argv[0]`` le premier argument, dans ``argv[1]`` le second argument, etc. - - La fonction ``atoi`` permet de convertir une chaîne de caractères en l'entier équivalent. - - .. class:: comment - - Le premier élément du tableau ``argv[]``, ``argv[0]``, est le nom du programme qui est exécuté. - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S11/Makefile b/Exercices/QCM/S11/Makefile deleted file mode 100755 index f22d6ec..0000000 --- a/Exercices/QCM/S11/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=11 - -EXNAME=../../../web/qcm/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S11/qcm-11.rst b/Exercices/QCM/S11/qcm-11.rst deleted file mode 100644 index 86ca74c..0000000 --- a/Exercices/QCM/S11/qcm-11.rst +++ /dev/null @@ -1,259 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_ -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 4</script> - - -=============== -Onzième semaine -=============== - - -La matière couverte cette semaine porte sur la mémoire virtuelle. - -Question 1. Taille d'une page ------------------------------ - -Laquelle des tailles ci-dessous correspond à une taille courante pour une page en mémoire virtuelle ? - -.. class:: positive - -- 4096 bytes - - -- 4 KBytes - - -.. class:: negative - -- 4 bytes - -- 32 bits - -- 512 bytes - -- 4096 bits - -- 32 KBytes - -- 4 MBytes - -- 4 Kbits - - -Question 2. Table des pages ---------------------------- - -Un ordinateur expérimental utilise une table des pages à un seul niveau. Parmi les affirmations suivantes relatives au nombre d'entrées dans la table des pages, une seule est valide. Laquelle ? - -.. class:: positive - -- Si l'ordinateur utilise des adresses virtuelles sur 30 bits et des pages de 4 KBytes, alors la table des pages contient :math:`2^18` entrées - -- Si l'ordinateur utilise des adresses virtuelles sur 30 bits et des pages de 1 KByte, alors la table des pages contient :math:`2^20` entrées - - -.. class:: negative - -- Si l'ordinateur utilise des adresses virtuelles sur 32 bits et des pages de 4 KBytes, alors la table des pages contient :math:`2^18` entrées - -- Si l'ordinateur utilise des adresses virtuelles sur 30 bits et des pages de 1 KByte, alors la table des pages contient :math:`2^18` entrées - -- Si l'ordinateur utilise des adresses virtuelles sur 34 bits et des pages de 1 KByte, alors la table des pages contient :math:`2^18` entrées - -- Si l'ordinateur utilise des adresses virtuelles sur 32 bits et des pages de 1 KByte, alors la table des pages contient :math:`2^20` entrées - - -Question 3. Bit de validité ---------------------------- - -Parmi les affirmations suivantes relatives au bit de validité utilisé dans la mémoire virtuelle, une seule est vraie. Laquelle - -.. class:: positive - -- lorsque le bit de validité d'une entrée de la table des pages est 'vrai', cela indique que la page correspondante se trouve en mémoire RAM - -- Seules les pages dont le bit de validité est 'vrai' se trouvent en mémoire RAM - -.. class:: negative - -- il y a un seul bit de validité pour une table des pages - - .. class:: comment - - Il y a un bit de validité par entrée de la table des pages - -- le bit de validité est mis à 'faux' lorsqu'une donnée se trouvant dans une page est modifiée - -- le bit de validité est toujours mis à 'vrai' dans la table des pages - -- le bit de validité est mis à 'vrai' à chaque accès à une donnée se trouvant dans une page - -Question 4. Création et suppression de pages --------------------------------------------- - -Durant l'exécution d'un processus, certains événements peuvent provoquer la création de nouvelles pages en mémoire. Parmi les opérations ci-dessous, laquelle ne provoque surement pas la création de nouvelles pages en mémoire : - -.. class:: positive - -- l'exécution de `free(3)`_ - -- l'exécution de `waitpid(2)`_ - -.. class:: negative - -- l'exécution de l'appel système `fork(2)`_ - -- l'exécution de l'appel système `execve(2)`_ - -- l'appel récursif à une fonction - -- l'exécution de `malloc(3)`_ - -- la création d'un thread via la librairie POSIX - - - -Question 5. Bits de contrôle ----------------------------- - - -Chaque entrée de la table des pages contient plusieurs bits de contrôles relatifs à chaque page : - - - bit de validité - - bit de modification - - bit de reference - -Considérons une mémoire virtuelle composée de 8 pages, numérotées de 0 à 7 par simplicité. Au démarrage du programme, les pages 0, 1, 2 et 7 sont utilisées. Les pages 0 à 3 contiennent les instructions du programme et la page 7 contient la pile. Les bits de modification et de référence sont remis à zéro puis le programme exécute les opérations suivantes : - - - modification (via des instructions se trouvant en page 1) d'une variable globale stockée dans la page 2 - - appel à une fonction qui alloue un tableau nécessitant 2 pages sur la pile. Les instructions de la fonction sont dans la page 1. - -Après exécution de ce programme, quels sont les bits de contrôle de la table des pages ? - -.. class:: positive - -- - - bit de validité vrai pour les pages 0, 1, 2, 5, 6 et 7 - - bit de modification vrai pour les pages 2, 5, 6 et 7 - - bit de référence vrai pour les pages 1, 2, 5, 6 - - -.. class:: negative - -- - - bit de validité vrai pour les pages 0, 1, 2, 3, 4, 5, 6 et 7 - - bit de modification vrai pour les pages 2, 5, 6 et 7 - - bit de référence vrai pour les pages 1, 2, 5, 6, 7 - -- - - bit de validité vrai pour les pages 5, 6 et 7 - - bit de modification vrai pour les pages 5, 6 et 7 - - bit de référence vrai pour les pages 5, 6 - - -- - - bit de validité vrai pour les pages 0, 1, et 2 - - bit de modification vrai pour les pages 5, 6 et 7 - - bit de référence vrai pour les pages 1, 2 - - -Question 5. Bits de contrôle ----------------------------- - -Parmi les affirmations suivantes, une seule est vraie. Laquelle - -.. class:: positive - -- Si lors d'un accès à la mémoire le bit de modification est mis à vrai, alors le bit de référence est aussi mis à vrai - -.. class:: negative - -- Si lors d'un accès à la mémoire le bit de référence est mis à vrai, alors le bit de modification est aussi mis à vrai - -- Si lors d'un accès à la mémoire le bit de validité est mis à vrai, alors le bit de modification est aussi mis à vrai - -- Si lors d'un accès à la mémoire le bit de validité est mis à vrai, alors le bit de référence est aussi mis à vrai - - - -Question 6. Bits de permissions -------------------------------- - -Parmi les affirmations suivantes, une seule est correcte. Laquelle ? - -.. class:: positive - -- Les pages contenant le code d'un programme ont `R-X` comme permissions tandis que les pages contenant le heap et le stack ont `RW-` comme permissions - -- Les pages contenant le heap et le stack ont `RW-` comme permissions tandis que les pages contenant le code ont `R-X` comme permissions - -.. class:: negative - -- Toutes les pages d'un programme doivent nécessairement avoir `RWX` comme permissions - -- Toutes les pages de la pile d'un programme doivent nécessairement avoir `-WX` comme permissions - -- Les pages de la pile d'un programme ont toujours `-W-` comme permissions - -- Les pages contenant le code d'un programme ont toujours `--X` comme permissions - - -Question 7. Bits de contrôle ----------------------------- - -Parmi les affirmations suivantes relatives à l'exécution d'instruction en assembleur, une seule est correcte. Laquelle ? - -.. class:: positive - -- l'exécution de ``mov %ecx, 0x12345678`` provoque la modification de deux bits de référence et un bit de modification - -- l'exécution de ``mov 4(%eax), %ecx`` provoque la modification de deux bits de référence et un bit de modification - -.. class:: negative - -- l'exécution de ``mov %ecx, 0x8765412`` provoque la modification d'un bit de référence et un bit de modification - -- l'exécution de ``mov 8(%eax), %ebx`` provoque la modification d'un bit de référence et un bit de modification - -- l'exécution de ``mov 8(%eax), %ebx`` provoque la modification de deux bits de référence et deux bits de modification - -- l'exécution de ``add %eax, %ebx`` provoque la modification d'un bit de référence et un bit de modification - -- l'exécution de ``j label`` provoque la modification de deux bits de référence - -Question 8. TLB ---------------- - -Parmi les affirmations suivantes relatives au fonctionnement du TLB, une seule est correcte. Laquelle ? - -.. class:: positive - -- lors d'un accès en écriture à une page, les bits de modification et de référence sont mis à jour dans le TLB mais pas dans la table des pages - -- lors d'un accès en lecture à une page, le bit de référence est mis à jour dans le TLB mais pas dans la table des pages - -.. class:: negative - -- les bits de contrôle stockés dans le TLB pour la page `p` sont toujours identiques aux bits de contrôle de la même page dans la table des pages - - .. class:: comment - - Les bits de contrôle stockés dans le TLB sont mis à jour à chaque accès à une page sans passer par la table des pages. Ils ne sont mis à jour dans la table des pages que lorsque l'entrée correspondant à une page retourne dans la table des pages. - -- lors d'un accès en écriture à une page, les bits de modification et de référence sont mis à jour dans le TLB et dans la table des pages - -- lors d'un accès en lecture à une page, le bit de référence est mis à jour dans le TLB et dans la table des pages - - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S2/Makefile b/Exercices/QCM/S2/Makefile deleted file mode 100755 index 0b56993..0000000 --- a/Exercices/QCM/S2/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=2 - -DEST=../../../web/qcm - -EXNAME=$(DEST)/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S2/qcm-2.rst b/Exercices/QCM/S2/qcm-2.rst deleted file mode 100644 index d7de148..0000000 --- a/Exercices/QCM/S2/qcm-2.rst +++ /dev/null @@ -1,819 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 3</script> - - -============================ -Semaine 2 : Types de données -============================ - -La matière couverte cette semaine la section relative aux `types de données <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/C/datatypes.html>`_ (jusque et y compris la section relative aux `expressions de manipulation de bits <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/C/datatypes.html#les-expressions-de-manipulation-de-bits>`_ - - -Question 1. Conversion de types -------------------------------- - -En C tout comme dans des langages comme Java, il est possible de convertir des nombres d'un type primitif vers un autre. Cependant, alors que le compilateur Java vérifie si la conversion est sans risque, le compilateur C ne fait aucune vérification et suppose que si le programmeur a effectué une conversion explicite entre types, il a pris ses précautions. Sur une architecture où les types de données sont stockés comme suit : - -.. code:: c - - // char 1 octet(s) - // unsigned char 1 octet(s) - // short 2 octet(s) - // unsigned short 2 octet(s) - // int 4 octet(s) - // unsigned int 4 octet(s) - - - int i; - short s; - long l; - char c; - unsigned int ui; - unsigned char uc; - unsigned long ul; - unsigned short us; - -Un seul des fragments de code ci-dessous contient des conversions de type qui sont sans risque. Lequel ? - -.. class:: positive - -- - .. code:: c - - i=(int ) s; - s=(short) uc; - l=(long )i; - -- - .. code:: c - - ui=(unsigned int) us; - s=(short) c; - ul=(unsigned long )ui; - - -.. class:: negative - -- - .. code:: c - - ui=(unsigned int ) s; - us=(unsigned short) uc; - l=(long )i; - - .. class:: comment - - Si ``s`` est négatif, la conversion en ``unsigned int`` risque de poser problème. - - -- - .. code:: c - - i=(int ) us; - us=(unsigned short) i; - l=(long )c; - - .. class:: comment - - La conversion d'un ``int`` en un ``unsigned short`` risque de poser problème. - -- - .. code:: c - - ui=(unsigned int) s; - s=(short) c; - ul=(unsigned long )ui; - - .. class:: comment - - La première conversion risque de poser des problèmes. - -Question 2. Notation hexadécimale ---------------------------------- - -Parmi les affirmations suivantes relatives aux nombres en représentation hexadécimale, une seule est vraie. Laquelle ? - -.. class:: positive - -- La représentation hexadécimale du nombre entier positif ``27`` est ``1B`` - -- La représentation hexadécimale du nombre entier positif ``67`` est ``43`` - -.. class:: negative - -- La représentation hexadécimale du nombre entier positif ``67`` est ``34`` - - .. class:: comment - - :math:`3*16+4` ne vaut pas ``67`` - - -- La représentation hexadécimale du nombre entier positif ``27`` est ``B1`` - - .. class:: comment - - :math:`11*16+1` ne vaut pas ``27`` - -- La représentation hexadécimale du nombre entier positif ``62`` est ``B1`` - - .. class:: comment - - :math:`11*16+1` ne vaut pas ``62`` - -- La représentation hexadécimale du nombre entier positif ``128`` est ``FF`` - - .. class:: comment - - :math:`15*16+15` ne vaut pas ``128`` - - -Question 3. Notation binaire ----------------------------- - -Parmi les affirmations suivantes relatives aux nombres en représentation binaire, une seule est vraie. Laquelle ? - - -.. class:: positive - -- La représentation binaire du nombre entier positif ``99`` est ``1100011`` - -- La représentation binaire du nombre entier positif ``176`` est ``10110000`` - -.. class:: negative - -- La représentation binaire du nombre entier positif ``90`` est ``1100011`` - - .. class:: comment - - La représentation binaire de ``90`` est ``1011010`` - -- La représentation binaire du nombre entier positif ``176`` est ``10110001`` - - .. class:: comment - - C'est la représentation de ``177``. - -- La représentation binaire du nombre entier positif ``166`` est ``10110001`` - - .. class:: comment - - C'est la représentation de ``177``. - -- La représentation binaire d'un nombre entier positif impair a toujours ``0`` comme bit de poids faible. - - .. class:: comment - - Ce sont les entiers positifs pairs (et zéro) qui ont ``0`` comme bit de poids faible. - - -Question 4. Notation binaire ----------------------------- - -Parmi les affirmations suivantes relatives aux nombres signés en représentation binaire, une seule est vraie. Laquelle ? - - -.. class:: positive - -- Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-17`` est ``11111111 11101111`` - -- Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-23`` est ``11111111 11101001`` - -.. class:: negative - -- Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-17`` est ``00000000 00010001`` - - .. class:: comment - - C'est la représentation de ``17`` mais en non-signé - - -- Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-17`` est ``10000000 00010001`` - - .. class:: comment - - C'est la représentation de ``-32751`` - -- Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-23`` est ``00000000 00010111`` - - - .. class:: comment - - C'est la représentation de ``23`` - - -- Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-23`` est ``11111111 11100110`` - - - .. class:: comment - - C'est la représentation de ``-26`` - - -.. http://www.binaryconvert.com/ pour des conversions sur le web - - - -Question 5. Manipulations de bits ---------------------------------- - - -Si la variable ``c`` est de type ``unsigned char`` sur 8 bits, laquelle des suites d'instructions ci-dessous permet d'en échanger les 4 bits de poids faible avec les 4 bits de poids fort ? - - -.. class:: positive - -- - .. code:: c - - unsigned char temp1, temp2; - temp1 = c & 0x0F; - temp2 = c & 0xF0; - temp1=temp1 << 4; - temp2=temp2 >> 4; - c= temp2|temp1; - -- - .. code:: c - - unsigned char temp1, temp2; - temp1=c << 4; - temp2=c >> 4; - c= temp2|temp1; - - -.. class:: negative - -- - .. code:: c - - unsigned char temp1, temp2; - temp1=c << 4; - temp2=c >> 4; - c= temp2||temp1; - - - .. class:: comment - - Ne confondez pas l'opérateur binaire ``|`` avec la disjonction logique ``||``. - - -- - .. code:: c - - unsigned char temp1, temp2; - temp1=4 << temp1; - temp2=4 >> temp2; - c= temp2|temp1; - - - .. class:: comment - - Cette utilisation de l'opérateur ``>>`` est incorrecte. Vous décalez de ``temp1`` bits (c'est-à -dire 0) la représentation binaire de ``4``. - -- - .. code:: c - - unsigned char temp1, temp2; - temp1 = c && 0x0F; - temp2 = c && 0xF0; - temp1=temp1 << 4; - temp2=temp2 >> 4; - c= temp2|temp1; - - - .. class:: comment - - Ne confondez pas la l'opérateur binaire ``&`` avec la conjonction logique ``&&``. - - -Question 6. Multiplication entière ----------------------------------- - - -Parmi les expressions suivantes, une seule permet de calculer ``x*7`` lorsque ``x`` est un nombre entier. Laquelle ? - - -.. class:: positive - -- - .. code:: c - - (x<<3)-x - - - .. class:: comment - - Cette expression calcule en effet ``x<<3=x*8`` puis retire ``x``. - -.. class:: negative - -- - .. code:: c - - (x>>3)-x - - - .. class:: comment - - Cette expression divise d'abord ``x`` par ``8`` puis retire x au résultat de cette division. - -- - .. code:: c - - (x<<3)+x - - .. class:: comment - - Cette expression multiplie ``x`` par ``8`` puis ajoute ``x`` au résultat. Elle multiple donc ``x`` par ``9``. - - -- - .. code:: c - - (x<<7) - - - .. class:: comment - - Cette expression multiplie ``x`` par :math:`2^7` - - -- - .. code:: c - - (x>>7) - - - .. class:: comment - - Cette expression divise ``x`` par :math:`2^7` - -Question 7. Extraction de bits ------------------------------- - - -Il est parfois nécessaire en C de manipuler directement la représentation binaire d'un nombre. Si ``f`` est un nombre de type ``float`` stocké sur 32 bits, laquelle des expressions ci-dessous peut-elle être intégrée dans ce code pour afficher positif ou négatif en fonction du signe de ce nombre ? - -.. code:: c - - if(<à compléter>) - printf("positif\n"); - else - printf("negatif\n"); - - -.. class:: positive - -- - .. code:: c - - !(((unsigned int) f) & 0x80000000) - -- - .. code:: c - - !(((unsigned int) f) >> 31) - -.. class:: negative - -- - .. code:: c - - !(((unsigned int) f) & 0x10000000) - - .. class:: comment - - En faisant ``& 0x10000000``, vous mettez tous les bits de ``f`` à ``0`` sauf le bit ``28`` alors que le bit de signe est le bit de poids fort (``31``). - -- - .. code:: c - - !(((unsigned int) f) << 31) - - .. class:: comment - - Cette opération décale la représentation binaire de ``f`` de 31 bits vers la gauche, c'est-à -dire que seul le bit de poids faible reste. Malheureusement, le signe se trouve dans le bit de poids faible et non dans le bit de poids fort. - - -- - .. code:: c - - !(((unsigned int) f) > 31) - - .. class:: comment - - Ne confondez pas ``>`` et ``>>``. - - -- - .. code:: c - - !(((unsigned int) f) & 31) - - .. class:: comment - - Cette opération masque le nombre ``f`` avec ``00000000 00000000 00000000 00011111`` - - - -Question 8. Chaînes de caractères ---------------------------------- - -Une seule des fonctions ci-dessous retourne correctement le nombre d'occurrences du caractère ``c`` dans la chaîne de caractères ``c``. Laquelle ? - -.. class:: positive - -- - .. code:: c - - int count1(char *s, char c) { - int i=0; - int count=0; - while(*(s+i)!='\0') { - if(*(s+i)==c) { - count++; - } - i++; - } - return(count); - } - - -- - .. code:: c - - int count(char *s, char c) { - int count=0; - while(*(s)!='\0') { - if(*(s)==c) { - count++; - } - s++; - } - return(count); - } - - -.. class:: negative - - -- - .. code:: c - - int count1(char *s, char c) { - int i=0; - int count=0; - while(i<s.length) { - if(*(s+i)==c) { - count++; - } - i++; - } - return(count); - } - - .. class:: comment - - ``s`` est un pointeur vers une chaînes de caractères et non une structure. Ce code ne compile pas. - -- - .. code:: c - - int count1(char *s, char c) { - int i=0; - int count=0; - while(*s!='\0') { - if(*(s+i)==c) { - count++; - } - i++; - } - return(count); - } - - .. class:: comment - - La boucle ``while`` se termine-t-elle ? Quelle est sa condition d'arrêt ? - -- - .. code:: c - - int count(char *s, char c) { - int count=0; - while(*(s)!='\0') { - s++; - if(*(s)==c) { - count++; - } - } - return(count); - } - - .. class:: comment - - Ce code compte-il correctement le caractère si il est présent en première position de la chaîne ? - - -- - .. code:: c - - int count(char *s, char c) { - int count=0; - while(s!='\0') { - if(s==c) { - count++; - } - s++; - } - return(count); - } - - .. class:: comment - - Ce code compare le pointeur ``s`` c'est-à -dire *l'adresse* du première caractère de la chaîne ``s`` en mémoire avec ``\0`` et ``c`` et non le caractère pointé par ``s``. - - -Question 9. Pointeurs ---------------------- - -Si ``ptr`` a été déclaré sous la forme ``int *ptr``, un seul des groupes d'affirmations suivantes est vrai, lequel ? - -.. class:: positive - -- - - l'expression ``*(ptr + 1)`` est une valeur entière - - l'expression ``ptr[1]`` est une valeur entière - - l'expression ``ptr`` est une adresse en mémoire - - -- - - l'expression ``*(ptr) + 1`` est une valeur entière - - l'expression ``ptr[2]`` est une valeur entière - - l'expression ``ptr++`` est une adresse en mémoire - - -.. class:: negative - -- - - l'expression ``&(ptr) + 1`` est un nombre entier - - l'expression ``ptr[2]`` est une valeur entière - - l'expression ``&ptr`` est une adresse en mémoire - -- - - l'expression ``*(ptr+1)==ptr[1]`` est syntaxiquement invalide - - l'expression ``ptr[2]`` est une valeur entière - - l'expression ``&ptr`` est une adresse en mémoire - -- - - l'expression ``*(ptr+1)==ptr[1]`` est toujours vraie - - l'expression ``ptr--`` est syntaxiquement invalide - - -Question 10. Pointeurs et tableaux ----------------------------------- - -Considérons le tableau ``tab`` déclaré comme suit : - - .. code:: c - - #define SIZE 30 - int tab[SIZE]; - int *ptr; - -Dans une architecture 32 bits, un seul des groupes d'affirmations ci-dessous est vrai. Lequel ? - - -.. class:: positive - -- - - l'expression ``tab[i]`` correspond à la même valeur dans le tableau que ``*(tab+i)`` lorsque ``0<=i<29`` - - l'assignation ``ptr=(tab+i)`` est valide et après cette assignation, ``*ptr`` retourne la même valeur que ``tab[i]`` lorsque ``0<=i<29`` - - -- - - l'expression ``tab[0]`` correspond à la même valeur dans le tableau que ``*(tab)`` - - l'assignation ``ptr=(tab+i)`` est valide et après cette assignation, ``*ptr`` retourne la même valeur que ``tab[i]`` lorsque ``0<=i<29`` - - -.. class:: negative - -- - - l'expression ``tab[i]`` correspond à la même valeur dans le tableau que ``*(tab+i)`` lorsque ``0<=i<29`` - - l'assignation ``tab=(tab+i)`` est valide et après cette assignation, ``*tab`` retourne le ième élément du tableau lorsque ``0<=i<29`` - - .. class:: comment - - Lorsque ``tab`` est déclaré comme étant un tableau, il est interdit de modifier sa valeur. - -- - - l'expression ``tab[0]`` correspond à la même valeur dans le tableau que ``&(tab)`` - - l'assignation ``tab=(tab+i)`` est valide et après cette assignation, ``*tab`` retourne le ième élément du tableau lorsque ``0<=i<29`` - - .. class:: comment - - Les deux affirmations sont fausses. - -- - - l'expression ``tab[i]`` correspond à la même valeur dans le tableau que ``*(tab)+i`` lorsque ``0<=i<29`` - - l'assignation ``ptr=(tab)`` est valide et après cette assignation, ``*(ptr+i)`` retourne le ième élément du tableau lorsque ``0<=i<29`` - - .. class:: comment - - La première affirmation est fausse, ``*(tab)+i`` équivaut à ``tab[0]+i`` - - -Question 11. Pointeurs ----------------------- - -Considérons le fragment de code ci-dessous. - -.. code:: c - - int tab[]={ 10, 20, 30, 40 }; - int *ptr1=&tab[1]; - int *ptr2=&tab[3]; - -Dans ce code, une seule des affirmations suivantes est vraie, laquelle ? - -.. class:: positive - -- l'expression ``ptr2-ptr1`` vaut ``2`` - -- les expressions ``*(ptr1-1)`` et ``*(ptr2-3)`` retournent toutes les deux la même valeur, ``10`` - -.. class:: negative - -- l'expression ``ptr2-ptr1`` vaut ``20`` - - .. class:: comment - - ``ptr2`` et ``ptr1`` sont des pointeurs vers des entiers. L'arithmétique des pointeurs s'applique pour cette opération. Vu leur initialisation, la différence vaut ``2``. - -- les expressions ``*(ptr1-1)`` et ``*(ptr2-3)`` retournent toutes les deux la même valeur, ``1`` - - .. class:: comment - - L'expression ``*(ptr1-1)`` équivaut à ``tab[0]`` et ``*(ptr2-3)`` à ``tab[0]``. Cet élément du tableau contient la valeur ``10``. - -- l'expression ``*(ptr2-ptr1)`` retourne la valeur ``20`` - - .. class:: comment - - ``ptr2`` et ``ptr1`` sont des pointeurs vers des entiers. L'arithmétique des pointeurs s'applique pour cette opération. Vu leur initialisation, la différence vaut ``2``. L'expression ``*(2)`` correspond à une donnée à une adresse dans le bas de la mémoire qui n'est normalement pas accessible au programme. - - - -Question 12. Pointeurs et fonctions ------------------------------------ - -En C, il est parfois nécessaire d'échanger le contenu de deux variables. Si ``a`` et ``b`` sont des variables de type ``int``, laquelle des fonctions ci-dessous permet de réaliser cette échange entre les contenu des variables ? - - -.. class:: positive - -- - .. code:: c - - void swap(int *i, int *j) { - int k; - k=*i; - *i=*j; - *j=k; - } - //échange - swap(&a,&b); - - -- - .. code:: c - - void swap(int *i, int *j) { - int k; - k=*j; - *j=*i; - *i=k; - } - //échange - swap(&a,&b); - -.. class:: negative - -- - .. code:: c - - void swap(int i, int j) { - int k; - k=i; - i=j; - j=k; - } - //échange - swap(a,b); - - .. class:: comment - - Cette fonction ne fait rien du tout d'utile. - -- - .. code:: c - - void swap(int i, int j) { - int k; - k=i; - i=j; - } - //échange - swap(&a,&b); - - .. class:: comment - - Cette fonction reçoit comme argument l'adresse de ``a`` et l'adresse de ``b`` mais ne modifie en rien le contenu de ces variables. - -- - .. code:: c - - void swap(int i, int j) { - int k; - int *i_ptr=&i; - int *j_ptr=&j; - k=i; - *(i_ptr)=j; - *(j_ptr)=k; - } - //échange - swap(a,b); - - .. class:: comment - - Lors de son exécution, la fonction ``swap`` ci-dessus reçoit les valeurs des variables ``a`` et ``b``, mais elle n'a aucune idée de l'endroit où ces variables sont stockées en mémoire. Elle ne peut donc pas modifier leur contenu. - -Question 13. Pointeurs et structures ------------------------------------- - - -Dans un programme de manipulation de fractions, on définit la structure suivante pour représenter une fraction entière : - - .. code:: c - - struct fract_t { - int num; - int denum; - }; - - On veut pouvoir facilement écrire une fonction de type ``void`` qui remplace la valeur stockée dans la fraction par le résultat de l'addition de la fraction et un nombre entier passé en fragment. La spécification de cette fonction pourrait être : - - .. code:: c - - /* - * augmente la fraction passé en argument de l'entier n et place - * la somme calculée dans la fraction - * Exemples - * Si f vaut 1/3, alors l'application de la fonction avec f et 2 comme - * arguments a comme résultat de stocker la valeur 7/3 dans f - * Si f vaut 2/1, alors l'application de la fonction avec f et 1 comme - * arguments a comme résultat de stocker la valeur 3/1 dans f - */ - - -Laquelle des signatures ci-dessous peut-elle être utilisée pour effectuer cette opération et modifier la fraction passé en argument ? - - -.. class:: positive - - -- - .. code:: c - - void scale(struct fract_t *f, int s); - // appel à la fonction : - // scale(&f,3); - -.. class:: negative - -- - .. code:: c - - void scale(struct fract_t f, int s); - // appel à la fonction : - // scale(f,3); -- - .. code:: c - - void scale(int num, int den, int s); - // appel à la fonction : - // scale(f.num, f.denum,3); - - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S2/src/charcount.c b/Exercices/QCM/S2/src/charcount.c deleted file mode 100644 index 5078502..0000000 --- a/Exercices/QCM/S2/src/charcount.c +++ /dev/null @@ -1,43 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int count1(char *s, char c) { - int i=0; - int count=0; - while(*(s+i)!='\0') { - if(*(s+i)==c) { - count++; - } - i++; - } - return(count); -} - - -int count2(char *s, char c) { - int count=0; - while(*(s)!='\0') { - if(*(s)==c) { - count++; - } - s++; - } - return(count); -} - - - -int main() { - - char* s1="absbbbsba"; - char* s2="xbbsjjjqiz"; - printf("%s -> %d\n",s1,count1(s1,'a')); - printf("%s -> %d\n",s2,count1(s2,'a')); - - printf("%s -> %d\n",s1,count2(s1,'a')); - printf("%s -> %d\n",s2,count2(s2,'a')); - - -} - - diff --git a/Exercices/QCM/S2/src/conversion.c b/Exercices/QCM/S2/src/conversion.c deleted file mode 100644 index 308daf6..0000000 --- a/Exercices/QCM/S2/src/conversion.c +++ /dev/null @@ -1,27 +0,0 @@ -// Conversion entre types de données - -#include <stdio.h> - -int main() { - - #define SIZE 5 - int tab[]={1,-7, 1025,234567890, -2345678901}; - - - int i; - - for(i=0; i<SIZE;i++) { - int n=tab[i]; - short s=(short) n; - long l=(long) n; - unsigned int ui=(unsigned int) n; - unsigned char uc=(unsigned char) n; - unsigned long ul=(unsigned long) n; - unsigned short us=(unsigned short) n; - printf("%d -> %d (short) %ld (long) %d (unsigned int) %d (unsigned char) %ld (unsigned long) %d (unsigned short)\n",n,s,l,ui,uc,ul,us); - } - - - -} - diff --git a/Exercices/QCM/S3/Makefile b/Exercices/QCM/S3/Makefile deleted file mode 100755 index 5fee1a1..0000000 --- a/Exercices/QCM/S3/Makefile +++ /dev/null @@ -1,29 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=3 - -DEST=../../../web/qcm - -EXNAME=$(DEST)/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S3/qcm-3.rst b/Exercices/QCM/S3/qcm-3.rst deleted file mode 100644 index 42b20c0..0000000 --- a/Exercices/QCM/S3/qcm-3.rst +++ /dev/null @@ -1,590 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 3</script> - - - -================= -Troisième semaine -================= - -Cette semaine, la matière porte sur l'organisation de la mémoire et l'utilisation des fonctions `malloc(3)`_ et `free(3)`_ - - - http://sites.uclouvain.be/SystInfo/notes/Theorie/html/C/malloc.html#organisation-de-la-memoire - - - -Question 1. Portée des variables --------------------------------- - -Lorsque l'on écrit un programme C, il est préférable d'éviter d'avoir deux variables qui ont le même nom et peuvent être utilisées dans une fonction. Un étudiant a écrit le programme ci-dessous : - - .. code-block:: c - - #include <stdio.h> - int i = 1; - int main(int argc, char * argv[]) - { - int k; - printf("A:%d\n", i); - for(k=0; k<1; k++) - { - int i = 2, j = 1252; - printf("B:%d %d\n", i, j); - { - int i = 0; - printf("C:%d %d\n", i, j); - } - printf("D:%d\n", i); - } - return 0; - } - -Lors de son exécution, ce programme affiche : - -.. class:: positive - -- - .. code-block:: console - - A:1 - B:2 1252 - C:0 1252 - D:2 - - -.. class:: negative - -- Le programme ne se compile pas, il est interdit de redéfinir la variable globale ``i``. - - .. class:: comment - - On peut redéfinir une variable dans plusieurs niveaux de portée différents, même si il vaut mieux l'éviter. - -- - .. code-block:: console - - A:1 - B:1 1252 - C:1 1252 - D:1 - -- - .. code-block:: console - - A:1 - B:2 1252 - C:2 1252 - D:2 - -- - .. code-block:: console - - A:1 - B:2 1252 - C:0 1252 - D:0 - -Question 2. Portée des variables --------------------------------- - -L'extrait ci-dessous provient d'un programme écrit par un étudiant. - - .. code-block:: c - - #include <stdio.h> - int i = 1252; - void f(int i) { - // code non fourni - } - void g(char* c) { - // code non fourni - } - int main(int argc, char * argv[]) - { - f(argc); - g(argv[0]); - } - -Parmi les affirmations suivantes, un seul groupe est correct. Lequel ? - -.. class:: positive - -- - - La fonction ``g`` peut accéder à la variable globale ``i`` et modifier sa valeur - - La fonction ``g`` ne peut lire la valeur de ``argc`` - - La fonction ``f`` ne peut modifier la valeur de la variable globale ``i`` - -.. class:: negative - -- - - La fonction ``g`` peut lire la variable globale ``i`` mais pas modifier sa valeur - - La fonction ``g`` ne peut lire la valeur de ``argc`` - - La fonction ``f`` peut modifier la valeur de la variable globale ``i`` - - .. class:: comment - - La fonction ``g`` peut accéder à la variable globale ``i`` et modifier sa valeur par contre la fonction ``f`` ne peut pas le faire car elle ne peut accéder qu'à son argument nommé également ``i``. - - -- - - La fonction ``f`` peut lire la variable globale ``i`` mais pas modifier sa valeur - - La fonction ``g`` peut lire la valeur de ``argc`` - - La fonction ``f`` peut modifier la valeur de la variable globale ``i`` - - .. class:: comment - - Aucune de ces affirmations n'est vraie - - -- - - La fonction ``f`` peut lire la variable globale ``i`` et modifier sa valeur - - La fonction ``g`` ne peut lire la valeur de ``argc`` - - La fonction ``f`` ne peut modifier la valeur de la variable globale ``i`` - - .. class:: comment - - La fonction ``f`` n'a pas accès à la variable globale ``i``. - - - -Question 3. Organisation de la mémoire --------------------------------------- - -Considérons le fragment de programme ci-dessous. - - .. code-block:: c - - #include <stdio.h> - int i,j,k = 1252; // ligne A - int tab[1000]; // ligne B - void f(int i) { // ligne C - int j; // ligne D - // code non fourni - } - void g(char c) { - int i; // ligne E - // code non fourni - } - int main(int argc, char * argv[]) - { - int k=1; // ligne F - - f(argc); - g('a'); - } - - -Lors de l'exécution de ce programme, les valeurs des différentes variables sont stockées en mémoire. Un seul des groupes d'affirmations ci-dessous est correct. Lequel ? - - -.. class:: positive - -- - - la variable ``i`` déclarée et initialisée en ``ligne A`` est stockée dans la zone des variable initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``j`` déclarée en ``ligne D`` est stockée sur la pile - - la variable ``k`` déclarée en ``ligne F`` est stockée sur la pile - - -- - - la variable ``i`` déclarée et initialisée en ``ligne A`` est stockée dans la zone des variable initialisées - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``i`` déclarée en ``ligne E`` est stockée sur la pile - - - -.. class:: negative - -- - - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``j`` déclarée en ``ligne D`` est stockée sur la pile - - la variable ``i`` déclarée en ``ligne E`` est stockée sur la pile - - la variable ``k`` déclarée en ``ligne F`` est stockée dans la zone des variables non-initialisées - -- - - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur le tas - - la variable ``k`` déclarée en ``ligne F`` est stockée sur la pile - - -- - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``j`` déclarée en ``ligne D`` est stockée sur la pile - - la variable ``i`` déclarée en ``ligne E`` est stockée sur le tas - - la variable ``k`` déclarée en ``ligne F`` est stockée sur la pile - - -- - - la variable ``i`` déclarée et initialisée en ``ligne A`` est stockée dans la zone des variable initialisées - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``k`` déclarée en ``ligne F`` est stockée sur le tas - - -Question 4. Initialisation des variables ----------------------------------------- - -En C, une règle de bonne pratique est d'initialiser toutes les variables avant leur utilisation. Utiliser une variable qui n'a pas été correctement initialisée pour être une source de problèmes. Un étudiant a écrit les déclarations ci-dessous : - - .. code-block:: c - - int k=0; - int i; - short j; - float f; - double d; - char c[10]; - char* string; - void* v; - int* ptr; - ptr=(int*) malloc(5*sizeof(int)); - - -Après exécution de ces lignes, un seul des groupes d'affirmations ci-dessous est correct. Lequel ? - -.. class:: positive - -- - - la variable ``i`` est initialisée à la valeur ``0`` - - le pointeur ``string`` est initialisé à la valeur ``NULL`` - - ``c[2]`` contient le caractère ``'\0'`` - - Après exécution de ``malloc``, le contenu de l'adresse ``ptr+1`` est indéterminé - - .. class:: comment - - Pour des raisons d'efficacité, `malloc(3)`_ n'initialise pas à zéro les zones mémoires allouées, contrairement à `calloc(3)`_ - -- - - la variable ``j`` est initialisée à la valeur ``0`` - - le pointeur ``v`` est initialisé à la valeur ``NULL`` - - ``c[4]`` contient le caractère ``'\0'`` - - Après exécution de ``malloc``, le contenu de l'adresse ``ptr+4`` est indéterminé - - .. class:: comment - - Pour des raisons d'efficacité, `malloc(3)`_ n'initialise pas à zéro les zones mémoires allouées, contrairement à `calloc(3)`_ - -.. class:: negative - -- - - la variable ``f`` est initialisée à la valeur ``0.0`` - - le pointeur ``string`` n'a aucune valeur et n'est pas utilisable - - ``c[2]`` contient le caractère espace - - Après exécution de ``malloc``, l'adresse ``ptr+1`` contient le caractère ``'\0'`` - - .. class:: comment - - `malloc(3)`_ n'initialise pas la zone mémoire allouée. ``string`` contient ``NULL`` et ``c[2]`` le caractère ``'\0'`` - -- - - la variable ``f`` est initialisée à la valeur ``0.0`` - - le pointeur ``v`` n'a aucune valeur et n'est pas utilisable - - ``c[2]`` contient le caractère espace - - Après exécution de ``malloc``, l'adresse ``ptr`` contient le caractère ``'\0'`` - -- - - la variable ``f`` est initialisée à la valeur ``0.0`` - - le pointeur ``string`` est initialisé à ``NULL`` - - ``c[10]`` contient le caractère espace - - Après exécution de ``malloc``, l'adresse ``ptr+3`` contient le caractère ``'\0'`` - - .. class:: comment - - ``c[10]`` est hors du tableau ``c``. `malloc(3)`_ n'initialise pas la zone mémoire allouée. - -- - - la variable ``f`` est initialisée à la valeur ``0.0`` - - le pointeur ``v`` est initialisé à ``NULL`` - - ``c[6]`` contient le caractère ``'\0'`` - - Après exécution de ``malloc``, l'adresse ``ptr+5`` contient le caractère ``'\0'`` - - .. class:: comment - - `malloc(3)`_ n'initialise pas la zone mémoire allouée. De plus, ``ptr+5`` se trouve en dehors de la zone mémoire allouée par `malloc(3)`_ - - -Question 5. `malloc(3)`_ et compagnie -------------------------------------- - - -Les fonctions `malloc(3)`_ et `free(3)`_ sont importantes pour la manipulation de la mémoire sur le tas. Parmi les groupes d'affirmation suivants, un seul est correct. Lequel ? - -.. class:: positive - -- - - la fonction `malloc(3)`_ retourne un pointeur de type ``void *`` - - la fonction `free(3)`_ prend comme argument un pointeur de type ``void *`` qui a été précédemment alloué par la fonction `malloc(3)`_ - - si l'appel à `calloc(3)`_ a retourné un pointeur différent de ``NULL``, alors la zone mémoire demandée a été allouée et est initialisée à zéro - - une implémentation possible (non efficace) de `realloc(3)`_ est : - - .. code-block:: c - - void *realloc(void *ptr, size_t len) - { - void *r; - - r = malloc(len); - if(r!=NULL) - { - memcpy(r, ptr, len); - free(ptr); - } - return r; - } - - - -.. class:: negative - -- - - la fonction `malloc(3)`_ retourne un pointeur de type ``void *`` - - la fonction `free(3)`_ prend comme argument n'importe quel type de pointeur - - si l'appel à `malloc(3)`_ a retourné un pointeur différent de ``NULL``, alors la zone mémoire demandée a été allouée mais n'est pas initialisée à zéro - - une implémentation possible (non efficace) de `realloc(3)`_ est : - - .. code-block:: c - - void *realloc(void *ptr, size_t len) - { - void *r; - r = malloc(len); - memcpy(r, ptr, len); - return r; - } - - - -- - - la fonction `calloc(3)`_ retourne un pointeur de type ``void *`` - - la fonction `free(3)`_ prend comme argument un pointeur de type ``void *`` qui a été précédemment alloué par la fonction `malloc(3)`_ - - si l'appel à `malloc(3)`_ a retourné un pointeur différent de ``NULL``, alors la zone mémoire demandée a été allouée et est initialisée - - une implémentation possible (non efficace) de `realloc(3)`_ est : - - .. code-block:: c - - void *realloc(void *ptr, size_t len) - { - return malloc(len); - } - - -- - - la fonction `calloc(3)`_ retourne un pointeur de type ``void *`` - - la fonction `free(3)`_ prend comme argument un pointeur de type ``void *`` qui a été précédemment alloué par la fonction `malloc(3)`_ - - si l'appel à `malloc(3)`_ a retourné un pointeur différent de ``NULL``, alors la zone mémoire demandée a été allouée et est initialisée - - une implémentation possible (non efficace) de `realloc(3)`_ est : - - .. code-block:: c - - void *realloc(void *ptr, size_t len) - { - void *r; - - r = malloc(len); - if(r) - { - return r; - } - else - { - return NULL; - } - } - - - -Question 6. Stack ------------------ - -Considérons le programme `stack.c` présenté dans le syllabus. Cette implémentation d'une pile permet d'ajouter et de retirer un élément de la pile. Laquelle des implémentations ci-dessous est-elle une implémentation correcte d'une fonction ``size`` permettant de calculer le nombre d'éléments stockés dans la pile ? - -.. class:: positive - -- - .. code-block:: c - - int size(struct node_t* stack) - { - struct node_t *curr = stack; - int count = 0; - while (curr!=NULL) { - count ++; - curr = curr->next; - } - return count; - } - - -- - .. code-block:: c - - int size(struct node_t* stack) - { - int count = 0; - while (stack!=NULL) { - count ++; - stack = stack->next; - } - return count; - } - - - -.. class:: negative - -- - .. code-block:: c - - int size(struct node_t* stack) - { - int count = 0; - while (stack!=NULL) { - count ++; - stack++; - } - return count; - } - - -- - .. code-block:: c - - int size(struct node_t* stack) - { - return sizeof(stack); - } - - - -- - .. code-block:: c - - int size(struct node_t* stack) - { - struct node_t *curr = stack; - int count = 0; - while (curr) { - count ++; - curr++; - } - return count; - } - -- - .. code-block:: c - - int size(struct node_t stack) - { - struct node_t curr = stack; - int count = 0; - while (curr) { - count ++; - curr = stack->next; - } - return count; - } - - -Question 7. `strdup(3)`_ ------------------------- - -La librairie standard contient la fonction `strdup(3)`_. Laquelle des fonctions ci-dessous est-elle -une implémentation de `strdup(3)`_ ? - -.. class:: positive - -- - .. code-block:: c - - char *strdup(const char *s) - { - char *new = (char *) malloc ((strlen(s)+1) * sizeof(char)); - if (new == NULL) - return NULL; - return memcpy(new, s, (strlen(s)+1) * sizeof(char)); - } - -- - .. code-block:: c - - char *strdup(const char *s) - { - char *new = (char *) malloc ((strlen(s)+1) * sizeof(char)); - if (!new) - return NULL; - return memcpy(new, s, (strlen(s)+1) * sizeof(char)); - } - - -.. class:: negative - -- - .. code-block:: c - - char *strdup(const char s) - { - void *new = malloc (strlen(s)); - if (new == NULL) - return NULL; - return memcpy(new, s, strlen(s)); - } - -- - .. code-block:: c - - char *strdup(const char *s) - { - char new [strlen(s)+1]; - return memcpy(new, s, (strlen(s)+1) * sizeof(char)); - } - - -- - .. code-block:: c - - char *strdup(const char * s) - { - void *new = malloc (strlen(s+1)); - return memcpy(new, s, strlen(s+1)); - } - -- - .. code-block:: c - - char *strdup(const char *s) - { - char *new = (char *) calloc (strlen(s) * sizeof(char)); - if (new == NULL) - return NULL; - return memcpy(new, s, (strlen(s) * sizeof(char))); - } - -- - .. code-block:: c - - char *strdup(const char *s) - { - char *new = (char *) malloc (strlen(s) * sizeof(char)); - return memcpy(new, s, (strlen(s) * sizeof(char)); - } - - - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S4/Makefile b/Exercices/QCM/S4/Makefile deleted file mode 100755 index d1c8d36..0000000 --- a/Exercices/QCM/S4/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=4 - -DEST=../../../web/qcm - -EXNAME=$(DEST)/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S4/qcm-4.rst b/Exercices/QCM/S4/qcm-4.rst deleted file mode 100644 index ce764e2..0000000 --- a/Exercices/QCM/S4/qcm-4.rst +++ /dev/null @@ -1,1536 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 3</script> - - - -================= -Quatrième semaine -================= - -Cette semaine, la matière porte sur l'organisation de la mémoire et sur le langage assembleur IA32. La matière couverte se trouve dans les sections suivantes du syllabus : - - - `Organisation des ordinateurs <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Assembleur/memory.html>`_ - - `Etude de cas : IA32 <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Assembleur/memory.html#etude-de-cas-architecture-ia32>`_ - -Question 1. Instruction ``mov`` -------------------------------- - -Les instructions de la famille ``mov`` permettent de déplacer des données entre registres ou d'initialiser des registres. Considérons le fragment de code C suivant (dans lequel ``g``, ``g2`` et ``s`` sont des variables globales de type ``int``) : - -.. code-block:: c - - g=1234; - g2=5678; - s=g; - g=g2; - g2=s; - -Parmi les traductions en assembleur ci-dessus, une seule est correcte. Laquelle ? - - -.. class:: positive - - -- - .. code-block:: nasm - - movl $1234, g - movl $5678, g2 - movl g, %ecx - movl %ecx, s - movl g2, %ecx - movl %ecx, g - movl s, %ecx - movl %ecx, g2 - -- - .. code-block:: nasm - - movl $1234, g - movl $5678, g2 - movl g, %eax - movl %eax, s - movl g2, %eax - movl %eax, g - movl s, %eax - movl %eax, g2 - - -.. class:: negative - -- - .. code-block:: nasm - - movl g, $1234 - movl g2, $5678 - movl %eax, g - movl s, %eax - movl %eax, g2 - movl g, %eax - movl s, %eax - movl g2, %eax - - .. class:: comment - - L'instruction ``mov`` prend comme premier argument la source et comme second la destination. - -- - .. code-block:: nasm - - movl $1234, g - movl $5678, g2 - movl g2, %eax - movl %edx, s - movl g, %eax - movl %edx, g2 - movl s, %eax - movl %eax, g2 - - .. class:: comment - - Ce code utilise les registres ``%edx`` et ``%eax``. ``%edx`` est utilisé sans être initialisé. - - -- - .. code-block:: nasm - - movw $1234, g - movw $5678, g2 - movb g2, %eax - movb %eax, s - movb g, %eax - movb %eax, g2 - movb s, %eax - movb %eax, g2 - - .. class:: comment - - L'instruction ``movb`` déplace un ``byte`` et non le contenu complet d'un registre de 32 bits. - -- - .. code-block:: nasm - - movw $1234, g - movw $5678, g2 - movb g2, %edx - movb %edx, s - movb g, %edx - movb %edx, g2 - movb s, %edx - movb %edx, g2 - - - .. class:: comment - - L'instruction ``movb`` déplace un ``byte`` et non le contenu complet d'un registre de 32 bits. - -Question 2. Opérations arithmétiques ------------------------------------- - -Considérons le fragment de programme C ci-dessous : - - .. code-block:: c - - a=a+b; - b=b+b; - c=b-a; - -Une seule des séquences d'instructions assembleur ci-dessous est une traduction correcte de cette séquence d'instructions. Laquelle ? - -.. class:: positive - -- - .. code-block:: nasm - - movl a, %eax - addl b, %eax - movl %eax, a - movl b, %eax - addl b, %eax - movl %eax, b - movl b, %eax - subl a, %eax - movl %eax, c - -- - .. code-block:: nasm - - movl b, %eax - addl a, %eax - movl %eax, a - movl b, %eax - addl b, %eax - movl %eax, b - movl b, %eax - subl a, %eax - movl %eax, c - - -.. class:: negative - -- - .. code-block:: nasm - - movl b, %eax - addl a, %eax - movl %eax, a - movl b, %eax - movl %eax, %ecx - addl $1, %ecx - movl %ecx, b - movl %eax, b - movl a, %eax - subl b, %eax - movl %eax, c - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - a=b+a; - b=b++; - c=a-b; - -- - .. code-block:: nasm - - movl b, %eax - addl a, %eax - movl %eax, c - movl b, %eax - movl %eax, %ecx - addl $1, %ecx - movl %ecx, b - movl %eax, b - movl a, %eax - subl b, %eax - movl %eax, a - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - c=b+a; - b=b++; - a=a-b; - -- - .. code-block:: nasm - - movl b, %eax - addl a, %eax - movl %eax, b - movl b, %eax - movl %eax, %ecx - addl $1, %ecx - movl %ecx, b - movl %eax, a - movl b, %eax - subl a, %eax - movl %eax, c - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - b=b+a; - a=b++; - c=b-a; - -Question 3. Instructions conditionnelles ----------------------------------------- - -Les instructions conditionnelles sont fréquemment utilisées en langage C et en assembleur. Considérons le fragment de programme C ci-dessous (``a`` et ``b`` sont des variables globales de type ``int``): - - .. code-block:: c - - if(b<4) - a++; - -Une seule des séquences d'instructions assembleur ci-dessous est une traduction correcte de cette séquence d'instructions. Laquelle ? - -.. class:: positive - -- - .. code-block:: nasm - - begin: - cmpl $4, b - jge end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - -- - .. code-block:: nasm - - begin: - cmpl $4, b - jl next - jmp end - next: - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if((b>=4)) - {} - else - a++; - - -.. class:: negative - -- - .. code-block:: nasm - - begin: - cmpl $4, b - jg end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(b<=4) - a++; - - -- - .. code-block:: nasm - - begin: - cmpl $4, b - je end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(b!=4) - a++; - -- - .. code-block:: nasm - - begin: - cmpl $4, b - jl end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(!(b<4)) - a++; - -- - .. code-block:: nasm - - begin: - cmpl $4, b - jl end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(b>=4) - a++; - - -Question 4. Instructions conditionnelles ----------------------------------------- - -Les instructions conditionnelles sont fréquemment utilisées en langage C et en assembleur. Considérons le fragment de programme C ci-dessous : - - .. code-block:: c - - if(a<=b) - c++; - - -Une seule des séquences d'instructions en assembleur ci-dessous correspond à ce fragment de code C. Laquelle ? - - -.. class:: positive - -- - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - jg next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - -- - .. code-block:: nasm - - if: - movl b, %eax - cmpl a, %eax - jl next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. class:: comment - - Ceci est en fait l'implémentation de : - - .. code-block:: c - - if(b>=a) - c++; - - -.. class:: negative - -- - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - jne next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. class:: comment - - Ceci est l'implémentation de : - - .. code-block:: c - - if(a==b) - c++; - -- - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - jle next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. class:: comment - - Ceci est l'implémentation de : - - .. code-block:: c - - if(a>b) - c++; - -- - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - jge next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. class:: comment - - Ceci est l'implémentation de : - - .. code-block:: c - - if(a<b) - c++; - -- - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - je next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. class:: comment - - Ceci est l'implémentation de : - - .. code-block:: c - - if(a!=b) - c++; - -Question 5. Instructions conditionnelles ----------------------------------------- - -L'instruction conditionnelle ``if() ... else `` se retrouve dans de nombreux programmes en langage C. Considérons l'instruction ``if() ... else`` simple ci-dessous dans laquelle ``a`` et ``b`` sont des variables globales de type ``int`` : - -.. code-block:: c - - if(a>=b) - a++; - else - b++; - -Parmi les séquences d'assembleur ci-dessous, une seule est une traduction correcte de cette instruction conditionnelle. Laquelle ? - -.. class:: positive - -- - .. code-block:: nasm - - movl a, %eax - cmpl b, %eax - jl label - movl a, %eax - addl $1, %eax - movl %eax, a - jmp end - label: - movl b, %eax - addl $1, %eax - movl %eax, b - end: - -- - .. code-block:: nasm - - movl b, %eax - cmpl a, %eax - jg label - movl a, %eax - addl $1, %eax - movl %eax, a - jmp end - label: - movl b, %eax - addl $1, %eax - movl %eax, b - end: - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(b<=a) - a++; - else - b++; - - -.. class:: negative - - -- - .. code-block:: nasm - - - movl a, %eax - cmpl b, %eax - jl label - movl b, %eax - addl $1, %eax - movl %eax, b - jmp end - label: - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(a>=b) - b++; - else - a++; - -- - .. code-block:: nasm - - - movl b, %eax - cmpl a, %eax - jge label - movl a, %eax - addl $1, %eax - movl %eax, a - jmp end - label: - movl b, %eax - addl $1, %eax - movl %eax, b - end: - - - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(b<a) - a++; - else - b++; - -- - .. code-block:: nasm - - movl b, %eax - cmpl a, %eax - jle label - movl b, %eax - addl $1, %eax - movl %eax, b - jmp .LBB4_3 - label: - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(b>a) - b++; - else - a++; - -- - .. code-block:: nasm - - movl a, %eax - cmpl b, %eax - jl label - movl a, %eax - addl $1, %eax - movl %eax, a - label: - movl b, %eax - addl $1, %eax - movl %eax, b - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - if(a>=b) { - a++; - } - b++; - - - -Question 6. Boucles ``while`` ------------------------------ - -Les boucles ``while`` sont fréquemment utilisées dans des programmes C. Considérons la boucle suivante qui utilise des variables globales (toutes de type ``int``): - - .. code-block:: c - - while(a!=c) - { - a++; - b=b+c; - } - - -Parmi les séquences d'assembleur ci-dessous, une seule est une traduction correcte de cette boucle ``while``. Laquelle ? - -.. class:: positive - -- - .. code-block:: nasm - - begin: - movl a, %eax - cmpl c, %eax - je end - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - jmp begin - end: - -- - .. code-block:: nasm - - begin: - movl c, %eax - cmpl a, %eax - je end - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - jmp begin - end: - - -.. class:: negative - -- - .. code-block:: nasm - - begin: - movl c, %eax - cmpl a, %eax - jle end - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - jmp begin - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - while(c>a) - { - a++; - b=b+c; - } - -- - .. code-block:: nasm - - begin: - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - movl c, %eax - cmpl a, %eax - jne begin - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - do - { - a++; - b=b+c; - } - while(c!=a); - -- - .. code-block:: nasm - - begin: - movl c, %eax - cmpl a, %eax - jne end - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - jmp begin - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - while(c==a) - { - a++; - b=b+c; - } - - -Question 7. Boucles ``for`` ---------------------------- - -Rares sont les programmes C qui ne contiennent pas de boucles ``for``. Considérons la boucle ci-dessous qui utilise uniquement des variables globales (de type ``int``) : - -.. code-block:: c - - for(a=0;a<c;a++) { - b=b-c; - } - -Parmi les séquences d'instructions en assembleur ci-dessous, une seule traduit correctement la boucle ``for`` ci-dessus. Laquelle ? - - -.. class:: positive - -- - .. code-block:: nasm - - begin: - movl $0, a - loop: - movl a, %eax - cmpl c, %eax - jge end - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - jmp loop - end: - -- - .. code-block:: nasm - - begin: - movl $0, a - loop: - movl c, %eax - cmpl a, %eax - jle end - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - jmp loop - end: - -.. class:: negative - -- - .. code-block:: nasm - - begin: - movl a, %eax - addl $1, %eax - movl %eax, a - loop: - movl c, %eax - cmpl a, %eax - jle end - movl b, %eax - subl c, %eax - movl %eax, b - movl $0, a - jmp loop - end: - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - for(a=a+1;c>a;a=0) { - b=b-c; - } - -- - .. code-block:: nasm - - begin: - movl $0, a - loop: - movl a, %eax - cmpl c, %eax - jg end - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - jmp loop - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - for(a=0;a<=c;a++) { - b=b-c; - } - -- - .. code-block:: nasm - - begin: - movl $0, a - movl a, %eax - cmpl c, %eax - jge end - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - a=0; - if(a<c) { - b=b-c; - a++; - } - -- - .. code-block:: nasm - - begin: - loop: - movl a, %eax - cmpl c, %eax - jge end - movl $0, a - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - jmp loop - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - for(;a<c;a++) { - a=0; - b=b-c; - } - - -Question 8. Fonctions ---------------------- - -Un programme C contient en général de nombreuses fonctions. Considérons une fonction simple qui effectue un calcul en utilisant un argument et une variable globale (``a``) : - -.. code-block:: c - - - int f(int i) - { - return i+a; - } - - -Parmi les séquences d'instructions en assembleur ci-dessous, une seule traduit correctement la fonction ci-dessus. Laquelle ? - -.. class:: positive - -- - .. code-block:: nasm - - pushl %eax - movl 8(%esp), %eax - movl %eax, (%esp) - movl (%esp), %eax - addl a, %eax - popl %edx - ret - - - -- - .. code-block:: nasm - - subl $8, %esp - movl 12(%esp), %eax - movl %eax, 4(%esp) - movl a, %eax - movl %eax, (%esp) - movl (%esp), %eax - addl 4(%esp), %eax - addl $8, %esp - ret - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) - { - int j=a; - return j+i; - } - - -.. class:: negative - -- - .. code-block:: nasm - - subl $8, %esp - movl 12(%esp), %eax - movl %eax, 4(%esp) - movl 4(%esp), %eax - addl a, %eax - movl %eax, (%esp) - addl $8, %esp - ret - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - void f3(int i) // incorrect - { - int j=i+a; - } - -- - .. code-block:: nasm - - pushl %eax - movl (%esp), %eax - addl a, %eax - popl %edx - ret - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - - int f() - { - int i; - return i+a; - } - - -- - .. code-block:: nasm - - pushl %eax - movb 8(%esp), %al - movb %al, 3(%esp) - movsbl 3(%esp), %ecx - addl a, %ecx - movl %ecx, %eax - popl %edx - ret - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int f(char c) - { - return c+a; - } - -- - .. code-block:: nasm - - pushl %eax - movb 8(%esp), %al - movb %al, 3(%esp) - movsbl 3(%esp), %ecx - addl a, %ecx - movb %cl, %al - movsbl %al, %eax - popl %edx - ret - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - char f(char c) - { - return c+a; - } - - - - - -Question 9. Fonction ``max`` ----------------------------- - -Considérons la fonction C qui calcule le maximum entre deux entiers : - -.. code-block:: c - - int max(int i, int j) { - if (i>j) - return i; - else - return j; - } - -Parmi les groupes d'instructions ci-dessous, un seul est la traduction de cette fonction. Lequel ? - -.. class:: positive - -- - .. code-block:: nasm - - - max: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax - cmpl (%esp), %eax - jle next - movl 4(%esp), %eax - movl %eax, 8(%esp) - jmp label - next: - movl (%esp), %eax - movl %eax, 8(%esp) - label: - movl 8(%esp), %eax - addl $12, %esp - ret - - -- - .. code-block:: nasm - - max2: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax - cmpl (%esp), %eax - jge label1 - movl (%esp), %eax - movl %eax, 8(%esp) - jmp label2 - label1: - movl 4(%esp), %eax - movl %eax, 8(%esp) - label2: - movl 8(%esp), %eax - addl $12, %esp - ret - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int max(int i, int j) { - if (i<j) - return j; - else - return i; - } - - -.. class:: negative - -- - .. code-block:: nasm - - max: - subl $8, %esp - movl 12(%esp), %eax - movl %eax, (%esp) - movl (%esp), %eax - cmpl (%esp), %eax - jge label1 - movl (%esp), %eax - movl %eax, 4(%esp) - jmp label2 - label1: - movl (%esp), %eax - movl %eax, 4(%esp) - label2: - movl 4(%esp), %eax - addl $8, %esp - ret - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - - int max(int i) { - if (i<i) - return i; - else - return i; - } - -- - .. code-block:: nasm - - max: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax - cmpl (%esp), %eax - jge label1 - movl (%esp), %eax - movl %eax, 8(%esp) - jmp label2 - label1: - movl (%esp), %eax - movl %eax, 8(%esp) - label2: - movl 8(%esp), %eax - addl $12, %esp - ret - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int max4(int i, int j) { //incorrect - if (i<j) - return j; - else - return j; - } - - -- - .. code-block:: nasm - - max: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax - cmpl (%esp), %eax - jge label1 - movl 4(%esp), %eax - movl %eax, 8(%esp) - jmp label2 - label1: - movl (%esp), %eax - movl %eax, 8(%esp) - label2: - movl 8(%esp), %eax - addl $12, %esp - ret - - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int max5(int i, int j) { //incorrect - if (i<j) - return i; - else - return j; - } - -Question 10. Fonctions récursives ---------------------------------- - -Les fonctions récursives sont parfois utilisées en langage C. Lors de leur exécution, la pile permet de stocker temporairement les valeurs des variables et les adresses de retour. Considérons la fonction récursive suivante (où ``a`` est une variable globale) : - -.. code-block:: c - - int f(int i) - { - return a+f(i-1); - } - -Parmi les séquences d'instructions assembleur ci-dessous, une seule est une traduction correctement de cette fonction. Laquelle ? - -.. class:: positive - -- - .. code-block:: nasm - - - f: - pushl %ebp - movl %esp, %ebp - subl $12, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl a, %eax - movl -4(%ebp), %ecx - subl $1, %ecx - movl %ecx, (%esp) - movl %eax, -8(%ebp) - calll f - movl -8(%ebp), %ecx - addl %eax, %ecx - movl %ecx, %eax - addl $12, %esp - popl %ebp - ret - - -- - .. code-block:: nasm - - f: - pushl %ebp - movl %esp, %ebp - subl $12, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl -4(%ebp), %eax - subl $1, %eax - movl %eax, (%esp) - calll f - movl %eax, -8(%ebp) - movl -8(%ebp), %eax - addl a, %eax - addl $12, %esp - popl %ebp - ret - - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) - { - int j=f(i-1); - return j+a; - } - - -.. class:: negative - -- - .. code-block:: nasm - - f: - pushl %ebp - movl %esp, %ebp - subl $12, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl a, %eax - movl -4(%ebp), %ecx - movl %ecx, (%esp) - movl %eax, -8(%ebp) - calll f - movl -8(%ebp), %ecx - addl %eax, %ecx - movl %ecx, %eax - addl $12, %esp - popl %ebp - ret - - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) - { - return a+f(i); - } - -- - .. code-block:: nasm - - f: - pushl %ebp - movl %esp, %ebp - subl $8, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl -4(%ebp), %eax - addl a, %eax - movl %eax, (%esp) - calll f - addl $8, %esp - popl %ebp - ret - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) // incorrect - { - return f(i+a); - } - -- - .. code-block:: nasm - - pushl %ebp - movl %esp, %ebp - subl $12, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl -4(%ebp), %eax - subl $1, %eax - movl %eax, (%esp) - calll f - movl %eax, -8(%ebp) - movl a, %eax - addl $12, %esp - popl %ebp - ret - - .. class:: comment - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) - { - int j=f(i-1); - return a; - } - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S4/src/Makefile b/Exercices/QCM/S4/src/Makefile deleted file mode 100644 index d0cdb18..0000000 --- a/Exercices/QCM/S4/src/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -#################################################################### -# -# Makefile for assembler -# OB, Feb 2013 -# -#################################################################### - -CC=~/local/clang+llvm-3.2-x86_64-apple-darwin11/bin/clang - -CFLAGS=-target i386 -S -Wdisabled-optimization -O0 -fverbose-asm - -all: - @for file in *.c ; do \ - ($(CC) $(CFLAGS) $${file}; ) ; done diff --git a/Exercices/QCM/S4/src/asm1.c b/Exercices/QCM/S4/src/asm1.c deleted file mode 100644 index e29f2f9..0000000 --- a/Exercices/QCM/S4/src/asm1.c +++ /dev/null @@ -1,18 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int g; -int g2; -int s; - -int main() { - - g=1234; - g2=5678; - s=g; - g=g2; - g2=s; - -} - - diff --git a/Exercices/QCM/S4/src/asm2.c b/Exercices/QCM/S4/src/asm2.c deleted file mode 100644 index ceb0993..0000000 --- a/Exercices/QCM/S4/src/asm2.c +++ /dev/null @@ -1,52 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -void f1() -{ - if(a==b) - c++; -} - -void f2() -{ - if(a>b) - c++; -} - -void f3() -{ - if(a<b) - c++; -} - -void f4() -{ - if(a!=b) - c++; -} - -void f5() -{ - if(a<=b) - c++; -} - -void f6() -{ - if(b>=a) - c++; -} - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S4/src/asm3.c b/Exercices/QCM/S4/src/asm3.c deleted file mode 100644 index 1478e0e..0000000 --- a/Exercices/QCM/S4/src/asm3.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -void f1() -{ - a=a+b; - b=b+b; - c=b-a; -} - -void f2() -{ - a=b+a; - b=b+b; - c=b-a; -} - -void f3() -{ - a=b+a; - b=b++; - c=a-b; -} - -void f4() -{ - c=b+a; - b=b++; - a=a-b; -} - -void f5() -{ - - b=b+a; - a=b++; - c=b-a; - -} - - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S4/src/asm_comp.c b/Exercices/QCM/S4/src/asm_comp.c deleted file mode 100644 index 6ee427e..0000000 --- a/Exercices/QCM/S4/src/asm_comp.c +++ /dev/null @@ -1,58 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -void f1() // correct -{ - if(b<4) - a++; - -} - -void f2() // correct -{ - if((b>=4)) - {} - else - a++; -} - -void f3() // incorrect -{ - if(b<=4) - a++; - -} - -void f4() // incorrect -{ - if(b!=4) - a++; - -} - -void f5() // incorrect -{ - if(!(b<4)) - a++; - -} - -void f6() // incorrect -{ - if(b>=4) - a++; -} - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S4/src/asm_fct1.c b/Exercices/QCM/S4/src/asm_fct1.c deleted file mode 100644 index 998bb3c..0000000 --- a/Exercices/QCM/S4/src/asm_fct1.c +++ /dev/null @@ -1,51 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -int f1(int i) // correct -{ - return i+a; -} - -int f2(int i) // correct -{ - int j=a; - return j+i; - -} - -void f3(int i) // incorrect -{ - int j=i+a; - -} - -int f4() // incorrect -{ - int i; - return i+a; -} - -int f5(char c) // incorrect -{ - return c+a; - -} - -char f6(char c) // incorrect -{ - return c+a; -} - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S4/src/asm_fct2.c b/Exercices/QCM/S4/src/asm_fct2.c deleted file mode 100644 index 20c1d6d..0000000 --- a/Exercices/QCM/S4/src/asm_fct2.c +++ /dev/null @@ -1,51 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -int f1(int i) // correct -{ - return a+f1(i-1); -} - -int f2(int i) // correct -{ - int j=f2(i-1); - return j+a; - -} - -int f3(int i) // incorrect -{ - return a+f3(i); - -} - -int f4(int i) // incorrect -{ - return f4(i+a); -} - -int f5(int i) // incorrect -{ - int j=f5(i-1); - return a; -} - -char f6(char c) // incorrect -{ - return a+f6(c-1); - -} - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S4/src/asm_for.c b/Exercices/QCM/S4/src/asm_for.c deleted file mode 100644 index 6948783..0000000 --- a/Exercices/QCM/S4/src/asm_for.c +++ /dev/null @@ -1,68 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -void f1() // correct -{ - for(a=0;a<c;a++) { - b=b-c; - } - -} - -void f2() // correct -{ - for(a=0;c>a;a=a+1) { - b=b-c; - } - -} - -void f3() // incorrect -{ - - for(a=a+1;c>a;a=0) { - b=b-c; - } -} - -void f4() // incorrect -{ - for(a=0;a<=c;a++) { - b=b-c; - } - -} - -void f5() // incorrect -{ - a=0; - if(a<c) { - b=b-c; - a++; - } - -} - -void f6() // incorrect -{ - for(;a<c;a++) { - a=0; - b=b-c; - } - - -} - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S4/src/asm_ifelse.c b/Exercices/QCM/S4/src/asm_ifelse.c deleted file mode 100644 index 4833fd3..0000000 --- a/Exercices/QCM/S4/src/asm_ifelse.c +++ /dev/null @@ -1,68 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -void f1() // correct -{ - if(a>=b) - a++; - else - b++; - -} - -void f2() // correct -{ - if(b<=a) - a++; - else - b++; -} - -void f3() // incorrect -{ - if(a>=b) - b++; - else - a++; - -} - -void f4() // incorrect -{ - if(b<a) - a++; - else - b++; -} - -void f5() // incorrect -{ - if(b>a) - b++; - else - a++; - -} - -void f6() // incorrect -{ - if(a>=b) { - a++; - } - b++; - -} - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S4/src/asm_max.c b/Exercices/QCM/S4/src/asm_max.c deleted file mode 100644 index 491092a..0000000 --- a/Exercices/QCM/S4/src/asm_max.c +++ /dev/null @@ -1,52 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -int max(int i, int j) { //correct - if (i>j) - return i; - else - return j; -} - -int max2(int i, int j) { //correct - if (i<j) - return j; - else - return i; -} - -int max3(int i) { //incorrect - if (i<i) - return i; - else - return i; -} - -int max4(int i, int j) { //incorrect - if (i<j) - return j; - else - return j; -} - - -int max5(int i, int j) { //incorrect - if (i<j) - return i; - else - return j; -} - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S4/src/asm_sumpair.c b/Exercices/QCM/S4/src/asm_sumpair.c deleted file mode 100644 index 44ff95c..0000000 --- a/Exercices/QCM/S4/src/asm_sumpair.c +++ /dev/null @@ -1,25 +0,0 @@ -/************************************** - * sumn.c - * - * Programme d'exemple pour un calcul récursif - * de la somme des n premiers nombres impairs - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - - -///AAA -int ndiv(int n) { - if(n%2==0) - return sumn(n-1); - else - return n+sumn(n-1); -} -///BBB -int main(int argc, char *argv[]) { - g=sumn(3); - h=sumn_iter(3); - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S4/src/asm_while.c b/Exercices/QCM/S4/src/asm_while.c deleted file mode 100644 index aabab04..0000000 --- a/Exercices/QCM/S4/src/asm_while.c +++ /dev/null @@ -1,68 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int b=2; -int c=3; - -void f1() // correct -{ - while(a!=c) - { - a++; - b=b+c; - } - -} - -void f2() // correct -{ - while(c!=a) - { - a++; - b=b+c; - } - -} - -void f3() // incorrect -{ - while(c>a) - { - a++; - b=b+c; - } -} - -void f4() // incorrect -{ - do - { - a++; - b=b+c; - } - while(c!=a); - -} - -void f5() // incorrect -{ - - while(c==a) - { - a++; - b=b+c; - } - -} - - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S5/Makefile b/Exercices/QCM/S5/Makefile deleted file mode 100755 index 6ba4c41..0000000 --- a/Exercices/QCM/S5/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=5 - -DEST=../../../web/qcm - -EXNAME=$(DEST)/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S5/qcm-5.rst b/Exercices/QCM/S5/qcm-5.rst deleted file mode 100644 index 417e02a..0000000 --- a/Exercices/QCM/S5/qcm-5.rst +++ /dev/null @@ -1,613 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 3</script> - - -================= -Cinquième Semaine -================= - -Cette semaine porte sur deux modules de théorie. Le premier est la fin du chapitre consacré aux bases du langage C : - - - :ref:`complementsC` - -Le second est le début du chapitre consacré aux systèmes multiprocesseurs et l'utilisation de threads en particulier : - - - :ref:`thread` - -Question 1. Pointeurs en assembleur ------------------------------------ - -Pour comprendre le fonctionnement des pointeurs en C, il est parfois utile de se ramener à la traduction en assembleur de fragments de code C. Considérons les lignes suivantes : - - .. code-block:: c - - int a=1252; - int * ptr; - - int main(int argc, const char *argv[]) { - ptr=&a; - } - -Parmi les séquences d'instructions en assembleur ci-dessous, une seule est la traduction de l'assignation de l'adresse de ``a`` au pointeur ``ptr``. Laquelle - -.. class:: positive - -- - .. code-block:: nasm - - leal a, %eax - movl %eax, ptr - -.. class:: negative - -- - .. code-block:: nasm - - movl a, %eax - movl ptr, %ecx - movl %eax, (%ecx) - - .. class:: comment - - Cette séquence d'instructions est la traduction de ``*ptr=a``. - -- - .. code-block:: nasm - - movl a, %eax - movl %eax, ptr - - .. class:: comment - - Cette séquence d'instructions est la traduction de ``ptr=(int )a;``. - -- - .. code-block:: nasm - - pushl %eax - leal (%esp), %eax - movl a, %ecx - movl %ecx, (%esp) - movl %eax, ptr - popl %eax - - .. class:: comment - - Cette séquence d'instructions est la traduction de : - - .. code-block:: c - - int b=a; - ptr=&(b); - -- - .. code-block:: nasm - - leal a, %eax - addl $4, %eax - movl %eax, ptr - - .. class:: comment - - Cette séquence d'instructions est la traduction de ``ptr=&a+1;``. - - -Question 2. Pointeurs et tableaux ---------------------------------- - -Les pointeurs peuvent être utilisés pour accéder à des tableaux. Considérons un fragment de code C utilisant un tableau d'entiers à une dimension : - -.. code-block:: c - - int a[]={2,4,3,4,8}; - int * ptr; - - printf("%d %d %d %d\n",a[0],a[1],a[2],a[a[3]]); - - -Lors de son exécution, ce programme affiche ``2 4 3 8`` sur sa sortie standard. - -Après exécution de ``ptr=&(a[0]);``, une seule des instructions ci-dessous affiche la même séquence de chiffres. Laquelle ? - -.. class:: positive - -- - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*(ptr+1),*(ptr+2),*(ptr+*(ptr+3))); - - -.. class:: negative - -- - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*ptr+1,*ptr+2,*(ptr+*(ptr+3))); - - .. class:: comment - - Cette ligne affiche ``2 3 4 8``. Sur base des règles de précédence entre les opérations, l'expression ``*ptr+1`` équivaut en fait à ``(*ptr)+1``. En cas de doute, utilisez les parenthèses. - - -- - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*(ptr++),(*ptr++),*(ptr+*(ptr++))); - - .. class:: comment - - Cette ligne affiche ``4 3 4 3`` - -- - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*(ptr+0),*(ptr+1),*ptr+*(ptr+2)); - - .. class:: comment - - Cette ligne affiche ``2 2 4 5``. ``*(ptr+0)`` est ``a[0]`` et non ``a[1]``. - -- - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*ptr+1,(*ptr+1),*(ptr+(ptr+3))); - - .. class:: comment - - Cette ligne est syntaxiquement invalide. L'expression ``ptr+(ptr+3)`` est invalide. On ne peut pas additionner deux pointeurs. - - - -Question 3. Traitement de ``argv`` ----------------------------------- - -Un programme C doit souvent pouvoir manipuler les arguments qui lui sont passés. Les variables ``argc`` et ``argv`` qui sont passées à la fonction ``main`` permettent d'accéder à ces arguments. Le fragment de programme ci-dessous affiche sur la sortie standard ses différents arguments. - -.. code-block:: c - - while(i<argc) { - printf("%d %p %s\n",i,&(argv[i]),argv[i]); - i++; - } - -Un exemple d'exécution de ce fragment de programme est présenté ci-dessous : - -.. code-block:: console - - #./a.out a b cd - 0 0x7fff5fbff788 ./a.out - 1 0x7fff5fbff790 a - 2 0x7fff5fbff798 b - 3 0x7fff5fbff7a0 cd - - -A côté de la notation ``argv[i]``, il est aussi possible d'accéder à ``argv`` en utilisant des pointeurs. Parmi les fragments de programme ci-dessous, un seul est correct et affiche le même résultat que ci-dessus. - -.. class:: positive - -- - .. code-block:: c - - char **ptr; - int i=0; - ptr=argv; - while(i<argc) { - printf("%d %p %s\n",i,&(*ptr),*ptr); - i++; - ptr++; - } - - -.. class:: negative - -- - .. code-block:: c - - char **ptr; - int i=0; - ptr=argv; - while(i<argc) { - printf("%d %p %s\n",i,&(ptr),*ptr); - i++; - ptr++; - } - - - .. class:: comment - - ``&(ptr)`` est l'adresse à laquelle le pointeur ``ptr`` est stocké. Notez que ce n'est pas l'adresse à laquelle la chaîne de caractère argument ``i`` est stockée. Ce programme affiche : - - .. code-block:: console - - 0 0x7fff5fbff738 ./a.out - 1 0x7fff5fbff738 a - 2 0x7fff5fbff738 b - 3 0x7fff5fbff738 cd - -- - .. code-block:: c - - char *ptr; - int i=0; - ptr=*argv; - while(i<argc) { - printf("%d %p %s\n",i,&(ptr),*ptr); - i++; - ptr++; - } - - .. class:: comment - - Notez dans ce code que ``ptr`` est déclaré comme ``char *``, alors que ``argv`` est un ``char **``. Si vous tenez d'exécutez ce code, il provoquera un segmentation fault. - -- - .. code-block:: c - - int i=0; - while(i<argc) { - printf("%d %p %s\n",i,&(argv+i),*(argv+i)); - i++; - } - - .. class:: comment - - La compilation de ce fragment de programme provoque un warning. L'expression ``&(argv+i)`` est invalide car ``argv`` est un pointeur (de type ``char **``) et donc ``argv+i`` est également une adresse en mémoire et l'opérateur ``&`` ne peut pas s'y appliquer. - -- - .. code-block:: c - - int i=0; - while(i<argc) { - printf("%d %p %s\n",i,&(*(argv+i)),(argv+i)); - i++; - } - - - .. class:: comment - - Dans ce fragment de code, ``argv+i`` est de type ``char **`` alors qu'il faut un ``char *`` pour passer un string à `printf(3)`_. - - - -Question 4. Pointeurs et tableaux à deux dimensions ---------------------------------------------------- - -En C, il est possible d'accéder aux données stockées dans un tableau à deux dimensions via la notation ``a[i][j]`` mais aussi en utilisant des pointeurs. Considérons le fragment de code ci-dessous : - -.. code-block:: c - - int m[3][4]= { { 1, 2, 3, 4} , - { 5, 6, 7, 8} , - { 9, 10, 11, 12} }; - - printf("%p %d %d %d\n",m, m[1][2], m[0][5], m[2][2]); - - -Un compilateur Java n'accepterait pas de compiler ce programme qui tente d'accéder à l'élément ``m[0][5]`` de la matrice, élément qui n'existe pas sur base de l'initialisation du tableau ``m``. De nombreux compilateurs C acceptent ce fragment de code sans contrainte. Lorsque le programme s'exécute il affiche : - -.. code-block:: console - - 0x7fff5fbff750 7 6 11 - -Parmi les fragments de programme ci-dessous, un seul utilisant la notation avec les pointeurs est correct et affiche la même sortie. Lequel ? - -.. class:: positive - -- - .. code-block:: c - - int *ptr; - - ptr=&(m[0][0]); - printf("%p %d %d %d\n",ptr, *(ptr+4*1+2), *(ptr+4*0+5), *(ptr+2*4+2)); - - -.. class:: negative - -- - .. code-block:: c - - int **ptr=m; - printf("%p %d %d %d\n",ptr, *(ptr+4*1+2), *(ptr+4*0+5), *(ptr+2*4+2)); - - .. class:: comment - - La déclaration ``int **ptr=m`` est invalide. - -- - .. code-block:: c - - int *ptr=m; - printf("%p %d %d %d\n",ptr, *(ptr+4*1+2), *(ptr+4*0+5), *(ptr+2*4+2)); - - - .. class:: comment - - La déclaration ``int *ptr=m;`` est invalide, ``m`` n'est pas de type ``int *``. - -Question 5. Variable ``errno`` ------------------------------- - - -En C, la variable ``errno`` est utilisée par le système pour fournir une indication sur une erreur qui s'est produite lors de l'exécution d'un appel système ou d'une fonction de la librairie. Parmi les fonctions ci-dessous, une seule ne modifie pas ``errno`` en cas d'erreur. Laquelle ? - -.. class:: positive - -- `getpid(2)`_ - - .. class:: comment - - Voir page de manuel. - -- `malloc(3)`_ - - .. class:: comment - - Notez que `malloc(3)`_ retourne ``NULL`` en cas d'erreur d'allocation. - -- `exit(2)`_ - - .. class:: comment - - Comme cette fonction ne se termine jamais, elle ne peux pas modifier ``errno``. - -.. class:: negative - -- `setenv(3)`_ - - .. class:: comment - - Voir page de manuel. - - -- `unsetenv(3)`_ - - .. class:: comment - - Voir page de manuel. - -- `pthread_join(3)`_ - - .. class:: comment - - Voir page de manuel. - - -Question 6. Utilisation de `pthread_create(3)`_ ------------------------------------------------- - -La fonction `pthread_create(3)`_ permet de créer un thread. Parmi les fragments de code ci-dessous, un seul crée correctement un thread qui appelle la fonction ``f`` en lui passant la chaîne de caractères ``s`` comme argument. Lequel ? - -.. class:: positive - -- - .. code-block:: c - - void * f( void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char *s; - err=pthread_create(&t,NULL,&(f),(void *) s); - } - -.. class:: negative - -- - .. code-block:: c - - void * f (void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char *s; - err=pthread_create(&t,NULL,&(f),(void *) &s); - } - - .. class:: comment - - - Ce fragment contient une erreur. La fonction ``f`` a la bonne signature, mais le dernier argument à `pthread_create(3)`_ doit être de type ``void *``, or ``s`` est un ``char *`` et donc ce dernier argument doit être ``(void *) s``. - -- - .. code-block:: c - - void f(void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t *t; - int err; - char *s; - err=pthread_create(t,NULL,*f,(void *) *s); - } - - .. class:: comment - - Ce fragment contient plusieurs erreurs. La fonction ``f`` n'a pas la bonne signature (d'ailleurs ``return NULL;`` pour une fonction ``void`` est incorrect). Ensuite, l'appel à `pthread_create(3)`_ doit prendre comme premier argument l'adresse vers une structure de type ``pthread_t`` qui est stockée en mémoire. Ce n'est pas le cas ici. Les troisième et quatrième arguments sont également incorrects. - -- - .. code-block:: c - - - void *f(void ** param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char s; - err=pthread_create(&t,NULL,&(f),(void *) s); - } - - .. class:: comment - - Dans ce fragment de code, la signature de la fonction ``f`` ainsi que l'appel à `pthread_create(3)`_ sont incorrects. - - - -Question 7. Passage d'arguments à un thread -------------------------------------------- - -Considérons un thread qui a pour objectif de convertir une fraction en un nombre en virgule flottante. Ce n'est pas une bonne utilisation de threads puisque le calcul à effectuer est très simple, mais cela nous permettra de voir comment un thread peut recevoir des arguments directement. En dehors des threads, cette fonction de conversion pourrait s'écrire : - -.. code-block:: c - - struct fraction { - int num; - int denum; - }; - - typedef struct fraction Fraction_t; - - float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - } - - -Parmi les programmes ci-dessous, un seul calcule correctement la valeur attendue (le test des valeurs de retour des fonctions n'est pas présenté pour garder le code concis). Lequel ? - - -.. class:: positive - -- - .. code-block:: c - - void *mythread(void * param) { - Fraction_t *f=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) f->num/ (float) f->denum; - return((void *) r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void **) &r); - - } - -.. class:: negative - -- - .. code-block:: c - - void *mythread(void * param) { - Fraction_t f= *param; - float r; - r=(float) f.num/ (float) f.denum; - return((void *) &r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void **) &r); - - } - - .. class:: comment - - La fonction ``mythread`` est incorrect. L'initialisation de ``f`` ne fonctionne pas et en plus le résultat de la fonction est une variable locale (``r``) qui disparaît après son exécution. L'adresse de cette variable, même en étant castée en ``void *`` ne peut pas être retournée à la fonction ``main``. - -- - .. code-block:: c - - - void *mythread(void * param) { - Fraction_t *t=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) t->num/ (float) t->denum; - return((void *) r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float r; - int err; - - err=pthread_create(&t,NULL,&mythread,&f); - r=pthread_join(t,NULL); - - } - - .. class:: comment - - Dans cette variable, l'appel à `pthread_join(3)`_ est incorrect. - -- - .. code-block:: c - - float mythread(Fraction_t param) { - float *r=(float *)malloc(sizeof(float)); - *r=(float) param->num/ (float) param->denum; - return(r); - } - - int main (int argc, char *argv[]) { - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void *) &r); - } - - .. class:: comment - - Cette variante contient deux erreurs. La première est le prototype de la fonction ``mythread``. Celle-ci doit obligatoirement être de type ``void * fct(void * param)``, il n'est pas possible d'utiliser un autre prototype. Ensuite, l'appel à `pthread_join(3)`_ est incorrect puisque le deuxième argument de `pthread_join(3)`_ doit être de type ``void **`` et non ``void *``. - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S5/src/Makefile b/Exercices/QCM/S5/src/Makefile deleted file mode 100644 index dc0d5d1..0000000 --- a/Exercices/QCM/S5/src/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -#################################################################### -# -# Makefile for assembler -# OB, Feb 2013 -# -#################################################################### - -CC=~/local/clang+llvm-3.2-x86_64-apple-darwin11/bin/clang - -CFLAGS=-target i386 -S -Wdisabled-optimization -O0 -fverbose-asm - -all: - @for file in *.c ; do \ - ($(CC) $(CFLAGS) $${file}; ) ; done - @for file in *.c ; do \ - ($(CC) $${file}; ) ; done diff --git a/Exercices/QCM/S5/src/pthread_create.c b/Exercices/QCM/S5/src/pthread_create.c deleted file mode 100644 index 5edcc3c..0000000 --- a/Exercices/QCM/S5/src/pthread_create.c +++ /dev/null @@ -1,63 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourne %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} -// correct -void *f(void * param) { - // incomplet - return NULL; -} - -// incorrect -void *f1(void * param) { - // incomplet - return NULL; -} -// incorrect -void *f2(void param) { - // incomplet - return NULL; -} -// incorrect -void f3(void * param) { - // incomplet - return NULL; -} -// incorrect -void *f4(void ** param) { - // incomplet - return NULL; -} - - -int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char *s; - char s1; - // correct - err=pthread_create(&t,NULL,&(f),(void *) s); - // incorrect - err=pthread_create(&t,NULL,&(f1),(void *) &(s)); - err=pthread_create(t,NULL,f2,s); - err=pthread_create(*t,NULL,*f3,(void *) *s); - err=pthread_create(&t,NULL,&(f),s1); - if(err!=0) - error(err,"pthread_create"); - - err=pthread_join(t,(void **) &r); - if(err!=0) - error(err,"pthread_join"); - - printf("%f \n",(float) (*r)); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S5/src/ptr1.c b/Exercices/QCM/S5/src/ptr1.c deleted file mode 100644 index f0c4a83..0000000 --- a/Exercices/QCM/S5/src/ptr1.c +++ /dev/null @@ -1,46 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a=1; -int * ptr; -int b=2; -int c=3; - -void f1() // correct -{ - ptr=&a; - -} - -void f3() // incorrect -{ - *ptr=a; - -} - -void f4() // incorrect -{ - ptr=(int) a; -} - -void f5() // incorrect -{ - int b=a; - ptr=&(b); - -} - -void f6() // incorrect -{ - ptr=&a+1; -} - - - -int main() { - - - -} - - diff --git a/Exercices/QCM/S5/src/ptr2.c b/Exercices/QCM/S5/src/ptr2.c deleted file mode 100644 index c6cc5c0..0000000 --- a/Exercices/QCM/S5/src/ptr2.c +++ /dev/null @@ -1,36 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int a[]={2,4,3,4,8}; -int * ptr; -int b; - -int main() { - int c; - - ptr=&(a[0]); - - f0: // correct - printf("%d %d %d %d\n",a[0],a[1],a[2],a[a[3]]); - - f1: // correct - printf("%d %d %d %d\n",*ptr,*(ptr+1),*(ptr+2),*(ptr+*(ptr+3))); - - f2: // incorrect - printf("%d %d %d %d\n",*ptr,*ptr+1,*ptr+2,*(ptr+*(ptr+3))); - - f3: // incorrect - printf("%d %d %d %d\n",*ptr,*(ptr++),(*ptr++),*(ptr+*(ptr++))); - - f4: // incorrect - printf("%d %d %d %d\n",*ptr,*(ptr+0),*(ptr+1),*ptr+*(ptr+2)); - - - f5: // incorrect - printf("%d %d %d %d\n",*ptr,*ptr+1,(*ptr+1),*(ptr+*(ptr+3))); - - - -} - - diff --git a/Exercices/QCM/S5/src/ptr3.c b/Exercices/QCM/S5/src/ptr3.c deleted file mode 100644 index 3e608e8..0000000 --- a/Exercices/QCM/S5/src/ptr3.c +++ /dev/null @@ -1,74 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int main() { - int c; - - int a[3][4]={ {0, 1, 2, 3} , - {4, 5, 6, 7} , - {8, 9, 10, 11} }; - - - int *ptr; - ptr=&(a[0][0]); - - int (*p_ptr)[4]; - p_ptr=a; - - /* - int a2[][]= { {0, 1} , - {2, 3, 4} , - {5, 6, 7 , 8} }; - */ - - - int* a1[3]; - int l0[]={0, 1}; - int l1[]={2, 3, 4}; - int l2[]={5, 6, 7, 9}; - a1[0]=l0; - a1[1]=l1; - a1[2]=l2; - - /* - int *a2=(int *) malloc(9*sizeof(int)); - int val=0; - for(int i=0;i<3;i++) { - for(int j=0;j<3+j++) { - *(a2+ - - int* a1[3]; - int l0[]={0, 1, 2}; - int l1[]={3, 4, 5}; - int l2[]={6, 7, 8}; - a1[0]=&(l0[0]); - a1[1]=&(l1[0]); - a1[2]=&(l2[0]); - */ - - - f0: // correct - printf("%d %d %d \n", a[0][2], a[2][1], a[1][3]); - - f1: // correct - printf("%d %d %d \n", *(ptr+2), *(ptr+2*4+1), *(*(p_ptr+1)+3)); - - f2: // incorrect - printf("%d %d %d \n", *(ptr+2), *(ptr+2*4+1), *(*(p_ptr+4*1)+3)); - - f3: // incorrect - printf("%d %d %d \n", *(ptr+2), *(ptr+2*3+1), *(*(p_ptr+3*1)+3)); - - - f4: // incorrect - compile pas - printf("%d %d %p \n", *ptr+2, *(ptr+2*4+1), *((p_ptr+1)+3)); - - - f5: // incorrect - printf("%d %d %d \n", *(ptr+2), *(ptr+2*4+1), *(*(p_ptr+1+3))); - - - -} - - diff --git a/Exercices/QCM/S5/src/ptr4.c b/Exercices/QCM/S5/src/ptr4.c deleted file mode 100644 index d0ad1f1..0000000 --- a/Exercices/QCM/S5/src/ptr4.c +++ /dev/null @@ -1,78 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char **argv) { - - int i=0; - - f0: // correct - while(i<argc) { - printf("%d %p %s\n",i,&(argv[i]),argv[i]); - i++; - } - - - i=0; - char **ptr3; - ptr3=argv; - while(i<argc) { - printf("%d %p %s\n",i,&(*ptr3),*ptr3); - i++; - ptr3++; - } - - i=0; - char **ptr; - ptr=argv; - while(i<argc) { - printf("%d %p %s\n",i,&(ptr),*ptr); - i++; - ptr++; - } - - - - // provoque un segmentation fault - /* - i=0; - char *ptr2; - ptr2=*argv; - while(i<argc) { - printf("%d %p %s\n",i,&(ptr2),*ptr2); - i++; - ptr2++; - } - */ - - /* ptr4.c:50:27: error: address expression must be an lvalue or a function - designator - printf("%d %p %s\n",i,&(argv+i),*(argv+i)); - - - i=0; - while(i<argc) { - printf("%d %p %s\n",i,&(argv+i),*(argv+i)); - i++; - } - - */ - /* -ptr4.c:61:40: warning: format specifies type 'char *' but the argument has type - 'char **' [-Wformat] - printf("%d %p %s\n",i,&(*(argv+i)),(argv+i)); - ~~ ^~~~~~~~ - - i=0; - while(i<argc) { - printf("%d %p %s\n",i,&(*(argv+i)),(argv+i)); - i++; - } - - */ - - - - -} - - diff --git a/Exercices/QCM/S5/src/ptr5.c b/Exercices/QCM/S5/src/ptr5.c deleted file mode 100644 index 615fc21..0000000 --- a/Exercices/QCM/S5/src/ptr5.c +++ /dev/null @@ -1,61 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char **argv) { - - int m[3][4]= { { 1, 2, 3, 4} , - { 5, 6, 7, 8} , - { 9, 10, 11, 12} }; - - printf("%p %d %d %d\n",m, m[1][2], m[0][5], m[2][2]); - - int *ptr; - - ptr=&(m[0][0]); - printf("%p %d %d %d\n",ptr, *(ptr+4*1+2), *(ptr+4*0+5), *(ptr+2*4+2)); - - /* invalide - int **ptr=m; - printf("%p %d %d %d\n",ptr, *(ptr+4*1+2), *(ptr+4*0+5), *(ptr+2*4+2)); - */ - - /* invalide - int *ptr1=m; - printf("%p %d %d %d\n",ptr1, *(ptr1+4*1+2), *(ptr1+4*0+5), *(ptr1+2*4+2)); - */ - - - /* - -ptr5.c:28:26: warning: format specifies type 'void *' but the argument has type - 'int' [-Wformat] - printf("%p %d %d %d\n",*ptr, ptr+4*1+2, ptr+4*0+5, ptr+2*4+2); - ~~ ^~~~ - %d -ptr5.c:28:32: warning: format specifies type 'int' but the argument has type - 'int *' [-Wformat] - printf("%p %d %d %d\n",*ptr, ptr+4*1+2, ptr+4*0+5, ptr+2*4+2); - ~~ ^~~~~~~~~ -ptr5.c:28:43: warning: format specifies type 'int' but the argument has type - 'int *' [-Wformat] - printf("%p %d %d %d\n",*ptr, ptr+4*1+2, ptr+4*0+5, ptr+2*4+2); - ~~ ^~~~~~~~~ -ptr5.c:28:54: warning: format specifies type 'int' but the argument has type - 'int *' [-Wformat] - printf("%p %d %d %d\n",*ptr, ptr+4*1+2, ptr+4*0+5, ptr+2*4+2); - ~~ ^~~~~~~~~ - - ptr=&(m[0][0]); - printf("%p %d %d %d\n",*ptr, ptr+4*1+2, ptr+4*0+5, ptr+2*4+2); - */ - - /* - ptr=&(m); - printf("%p %d %d %d\n",&ptr, *ptr+4*1+2, *ptr+4*0+5, *ptr+2*4+2); - */ - - - -} - - diff --git a/Exercices/QCM/S5/src/thread1.c b/Exercices/QCM/S5/src/thread1.c deleted file mode 100644 index d2c85d8..0000000 --- a/Exercices/QCM/S5/src/thread1.c +++ /dev/null @@ -1,68 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -struct Array { - int length; - int *tab; -}; - -typedef struct Array Array_t; - - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourne %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -void *thread_min(void * param) { - Array_t *a=(Array_t *) param; - int *r=(int *)malloc(sizeof(int)); - *r=a->tab[0]; - for(int i=1;i<a->length;i++) { - if(a->tab[i]<*r) - *r=a->tab[i]; - } - - return((void *) r); -} - -void *thread_max(void * param) { - Array_t *a=(Array_t *) param; - int *r=(int *)malloc(sizeof(int)); - *r=a->tab[0]; - for(int i=1;i<a->length;i++) { - if(a->tab[i]>*r) - *r=a->tab[i]; - } - - return((void *) r); -} - -int main (int argc, char *argv[]) { - - int tab[]={12, 4, 3, 7, 8 , 9 , 10}; - Array_t array = {.length=7, .tab=tab}; - pthread_t first; - pthread_t second; - int *r_min; - int *r_max; - - int err; - int min; - int max; - err=pthread_create(&first,NULL,&thread_min,&(array)); - if(err!=0) - error(err,"pthread_create"); - - err=pthread_join(first,(void **) &r_min); - if(err!=0) - error(err,"pthread_join"); - - printf("min:%ld \n",(long) (*r_min)); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S5/src/thread_create.c b/Exercices/QCM/S5/src/thread_create.c deleted file mode 100644 index 1f747f1..0000000 --- a/Exercices/QCM/S5/src/thread_create.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -struct fraction { - int num; - int denum; -}; - -typedef struct fraction Fraction_t; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourne %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - -} - - -void *mythread(void * param) { - Fraction_t f=(Fraction_t ) param; - float r; - r=(float) f->num/ (float) f->denum; - return((void *) r); -} - -int main (int argc, char *argv[]) { - - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - if(err!=0) - error(err,"pthread_create"); - - err=pthread_join(t,(void **) &r); - if(err!=0) - error(err,"pthread_join"); - - printf("%f \n",(float) (*r)); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S5/src/thread_create2.c b/Exercices/QCM/S5/src/thread_create2.c deleted file mode 100644 index b6ff190..0000000 --- a/Exercices/QCM/S5/src/thread_create2.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -struct fraction { - int num; - int denum; -}; - -typedef struct fraction Fraction_t; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourne %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - -} - - -void *mythread(void * param) { - Fraction_t *f=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) f->num/ (float) f->denum; - return((void *) r); -} - -int main (int argc, char *argv[]) { - - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - if(err!=0) - error(err,"pthread_create"); - - err=pthread_join(t,(void **) &r); - if(err!=0) - error(err,"pthread_join"); - - printf("%f \n",(float) (*r)); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S5/src/thread_create3.c b/Exercices/QCM/S5/src/thread_create3.c deleted file mode 100644 index ba9cb48..0000000 --- a/Exercices/QCM/S5/src/thread_create3.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -struct fraction { - int num; - int denum; -}; - -typedef struct fraction Fraction_t; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourne %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - -} - - -void *mythread(void * param) { - Fraction_t f= *param; - float r; - r=(float) f.num/ (float) f.denum; - return((void *) &r); -} - -int main (int argc, char *argv[]) { - - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - if(err!=0) - error(err,"pthread_create"); - - err=pthread_join(t,(void **) &r); - if(err!=0) - error(err,"pthread_join"); - - printf("%f \n",(float) (*r)); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S5/src/thread_create4.c b/Exercices/QCM/S5/src/thread_create4.c deleted file mode 100644 index eeb3899..0000000 --- a/Exercices/QCM/S5/src/thread_create4.c +++ /dev/null @@ -1,55 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -struct fraction { - int num; - int denum; -}; - -typedef struct fraction Fraction_t; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourne %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - -} - - -void *mythread(void * param) { - Fraction_t *t=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) t->num/ (float) t->denum; - return((void *) r); -} - -int main (int argc, char *argv[]) { - - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&f); - if(err!=0) - error(err,"pthread_create"); - - r=pthread_join(t,NULL); - - if(err!=0) - error(err,"pthread_join"); - - printf("%f \n",(float) (*r)); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S5/src/thread_create5.c b/Exercices/QCM/S5/src/thread_create5.c deleted file mode 100644 index 5e617db..0000000 --- a/Exercices/QCM/S5/src/thread_create5.c +++ /dev/null @@ -1,53 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -struct fraction { - int num; - int denum; -}; - -typedef struct fraction Fraction_t; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourne %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - -} - - -float mythread(Fraction_t param) { - float *r=(float *)malloc(sizeof(float)); - *r=(float) param->num/ (float) param->denum; - return(r); -} - -int main (int argc, char *argv[]) { - - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - if(err!=0) - error(err,"pthread_create"); - - err=pthread_join(t,(void *) &r); - if(err!=0) - error(err,"pthread_join"); - - printf("%f \n",(float) (*r)); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S5/src/thread_createok.c b/Exercices/QCM/S5/src/thread_createok.c deleted file mode 100644 index b6ff190..0000000 --- a/Exercices/QCM/S5/src/thread_createok.c +++ /dev/null @@ -1,54 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -struct fraction { - int num; - int denum; -}; - -typedef struct fraction Fraction_t; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourne %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - -} - - -void *mythread(void * param) { - Fraction_t *f=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) f->num/ (float) f->denum; - return((void *) r); -} - -int main (int argc, char *argv[]) { - - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - if(err!=0) - error(err,"pthread_create"); - - err=pthread_join(t,(void **) &r); - if(err!=0) - error(err,"pthread_join"); - - printf("%f \n",(float) (*r)); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S6/Makefile b/Exercices/QCM/S6/Makefile deleted file mode 100755 index 927fa5b..0000000 --- a/Exercices/QCM/S6/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=6 - -DEST=../../../web/qcm - -EXNAME=$(DEST)/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S6/qcm-6.rst b/Exercices/QCM/S6/qcm-6.rst deleted file mode 100644 index 3448586..0000000 --- a/Exercices/QCM/S6/qcm-6.rst +++ /dev/null @@ -1,501 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 3</script> - - -=============== -Sixième Semaine -=============== - -Cette semaine porte sur la communication et la synchronisation entre threads. Plus précisément, la matière est décrite dans les deux sections suivantes : - - -.. - :ref:`complementsC` - -- `Communication entre threads <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Threads/threads2.html>`_ -- `Coordination entre threads <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Threads/threads2.html#coordination-entre-threads>`_ - -.. - :ref:`thread` - -Question 1. Algorithme de Peterson ----------------------------------- - -L'algorithme de Peterson peut s'écrire de différentes façons. Pour bien comprendre son fonctionnement, il est utile de réfléchir à d'autres formulations que celle utilisées dans le syllabus. Parmi les fragments de code ci-dessous, un seul implémente correctement l'algorithme de Peterson. Lequel ? - - -.. class:: positive - -- - .. code-block:: console - - /* initialisation */ - bool in1 = false; - bool in2 = false; - int last = 1; - // thread 1 - while (true) { - in1 = true; - last = 1; - while ( in2 && (last==1)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - in2 = true; - last = 2; - while ( in1 && (last==2)) {}; - section_critique(); - in2=false; - // ... - } - -- - .. code-block:: console - - /* initialisation */ - bool in1 = false; - bool in2 = false; - int last = 2; - // thread 1 - while (true) { - in1 = true; - last = 1; - while ( in2 && (last==1)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - in2 = true; - last = 2; - while ( in1 && (last==2)) {}; - section_critique(); - in2=false; - // ... - } - -.. class:: negative - -- - .. code-block:: console - - // initialisation - bool in1 = false; - bool in2 = false; - int last = 1; - // thread 1 - while (true) { - in1 = true; - last = 1; - while ( in1 && (last==1)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - in2 = true; - last = 2; - while ( in2 && (last==2)) {}; - section_critique(); - in2=false; - // ... - } - - .. class:: comment - - Cette solution ne fonctionne pas. Si un des deux threads est seul, il n'entrera jamais en section critique. - -- - .. code-block:: console - - // initialisation - bool in1 = false; - bool in2 = false; - int last = 2; - // thread 1 - while (true) { - in1 = true; - last = 1; - while ( in2 && (last==2)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - in2 = true; - last = 2; - while ( in1 && (last==1)) {}; - section_critique(); - in2=false; - // ... - } - - .. class:: comment - - Cette solution ne fonctionne pas. Il est possible que le thread 1 rentre en section critique puis le thread 2 met ``last`` à 2 et peut également y entrer sans que thread 1 n'en soit sorti. - -- - .. code-block:: console - - // initialisation - bool in1 = false; - bool in2 = false; - int last = 1; - // thread 1 - while (true) { - last = 1; - in1 = true; - while ( in2 && (last==1)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - last = 2; - in2 = true; - while ( in1 && (last==2)) {}; - section_critique(); - in2=false; - // ... - } - - .. class:: comment - - Cette solution ne fonctionne pas. Il y a un risque de violation de section critique. Si le thread 1 fait ``last=1;`` puis est interrompu avant de faire ``in1=true;``. Le thread 2 exécute alors ``last=2;`` suivi de ``in2=true;``. A cet instant, ``in2==false`` et le thread 2 rentre en section critique puisque ``in1==false``. Le thread 1 se réveille et exécute ``in1=true;``. Il peut ensuite immédiatement entre en section critique puisque ``last`` vaut ``2`` à cet instant. - -Question 2. Initialisation de mutex ------------------------------------ - -Avant de pouvoir utiliser un mutex POSIX, il est nécessaire de déclarer la structure correspondante et initialiser le mutex. Parmi les fragments de code ci-dessous, lequel est celui qui déclare et initialise correctement un mutex ? - -.. class:: positive - -- - .. code-block:: console - - pthread_mutex_t mutex; - pthread_mutexattr_t attr; - - err= pthread_mutexattr_init(&attr); - if(err!=0) - error(err,"pthread_mutexattr_init"); - - err=pthread_mutex_init( &mutex, &attr); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. class:: comment - - Notez que dans ce cas, le mutex est initialisé avec les attributs par défaut. - - -- - .. code-block:: console - - pthread_mutex_t mutex; - - err=pthread_mutex_init( &mutex, NULL); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. class:: comment - - Notez que dans ce cas, le mutex est initialisé avec les attributs par défaut. - -.. class:: negative - -- - .. code-block:: console - - pthread_mutex_t mutex; - pthread_mutexattr_t attr; - - err= pthread_mutexattr_init(attr); - if(err!=0) - error(err,"pthread_mutexattr_init"); - - err=pthread_mutex_init(mutex, attr); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. class:: comment - - Tant `pthread_mutexattr_init(3posix)`_ que `pthread_mutex_init(3posix)`_ prennent comme arguments un *pointeur* vers une structure de type ``pthread_mutex_t``. Ces deux fonctions modifient le contenu de cette structure et doivent donc en recevoir l'adresse comme argument. - - - -- - .. code-block:: console - - pthread_mutex_t mutex; - pthread_mutexattr_t attr; - - err= pthread_mutexattr_init(&attr); - if(err!=0) - error(err,"pthread_mutexattr_init"); - - err=pthread_mutex_init(&mutex, attr); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. class:: comment - - Tant `pthread_mutexattr_init(3posix)`_ que `pthread_mutex_init(3posix)`_ prennent comme arguments un *pointeur* vers une structure de type ``pthread_mutex_t``. Ces deux fonctions modifient le contenu de cette structure et doivent donc en recevoir l'adresse comme argument. - - -- - .. code-block:: console - - pthread_mutex_t *mutex; - pthread_mutexattr_t *attr; - - err= pthread_mutexattr_init(attr); - if(err!=0) - error(err,"pthread_attr_init"); - - err=pthread_mutex_init(mutex, attr); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. class:: comment - - Tant `pthread_mutexattr_init(3posix)`_ que `pthread_mutex_init(3posix)`_ prennent comme arguments un *pointeur* vers une structure de type ``pthread_mutex_t``. La mémoire permettant de stocker ces deux structures doit avoir été réservée en utilisant `malloc(3)`_ avant de faire appel à ces deux fonctions. - - - -Question 3. Utilisation de `pthread_mutex_lock(3posix)`_ et `pthread_mutex_unlock(3posix)`_ -------------------------------------------------------------------------------------------- - -Un programme utilisant plusieurs threads doit mettre à jour une variable globale partagée entre tous les threads. Pour cela, le développeur écrit une fonction ``update`` qui prend comme arguments la variable à mettre à jour et le mutex qui y est associé. Parmi les extraits ci-dessous, lequel permet de mettre à jour la variable sans risque de contention entre les threads qui y accèdent ? - -.. class:: positive - -- - .. code-block:: console - - void update(int * val, pthread_mutex_t * mutex) { - - err=pthread_mutex_lock(mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - - // mise à jour de la variable globale - - err=pthread_mutex_unlock(mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - } - - -.. class:: negative - -- - .. code-block:: console - - void update(int * val, pthread_mutex_t * mutex) { - - err=pthread_mutex_unlock(mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - // mise à jour de la variable globale - - err=pthread_mutex_lock(mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - - } - - .. class:: comment - - Ce code est incorrect. Un mutex s'utilise en faisant d'abord ``pthread_mutex_lock`` et ensuite ``pthread_mutex_unlock``. - -- - .. code-block:: console - - void update(int val, pthread_mutex_t mutex) { - - err=pthread_mutex_lock(mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - - // mise à jour de la variable globale - - err=pthread_mutex_unlock(mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - } - - .. class:: comment - - L'utilisation de cette fonction implique que la structure ``pthread_mutex_t`` doit être copiée sur le stack avant de pouvoir être utilisée par la fonction. Cette solution ne peut fonctionner car la structure de données qui contient toute l'information relative à un mutex et placée à un endroit donné en mémoire et ne peut pas être copiée. - - - -- - .. code-block:: console - - void update(int * val, pthread_mutex_t mutex) { - - err=pthread_mutex_lock(&mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - - // mise à jour de la variable globale - - err=pthread_mutex_unlock(&mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - } - - .. class:: comment - - L'utilisation de cette fonction implique que la structure ``pthread_mutex_t`` doit être copiée sur le stack avant de pouvoir être utilisée par la fonction. Cette solution ne peut fonctionner car la structure de données qui contient toute l'information relative à un mutex et placée à un endroit donné en mémoire et ne peut pas être copiée. - - - -Question 4. Utilisation de plusieurs mutex ------------------------------------------- - -Dans certains programmes, il est nécessaire de définir plusieurs mutex qui sont utilisés par différents threads pour gérer l'accès à des variables partagées. Considérons un programme qui utilise trois variables globales et est découpé en plusieurs threads. - -.. code-block:: console - - long a=5; // variable globale partagée - long b=7; // variable globale partagée - long c=9; // variable globale partagée - - pthread_mutex_t x; // variable globale associée à a - pthread_mutex_t y; // variable globale associée à b - pthread_mutex_t z; // variable globale associée à c - - - void update(int * val1, int * val2, pthread_mutex_t * mutex1, pthread_mutex_t * mutex2) { - - err=pthread_mutex_lock(mutex1); - if(err!=0) - error(err,"pthread_mutex_lock"); - err=pthread_mutex_lock(mutex2); - if(err!=0) - error(err,"pthread_mutex_lock"); - - // mise à jour val1 - // mise à jour val2 - - err=pthread_mutex_unlock(mutex1); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - err=pthread_mutex_unlock(mutex2); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - } - -Ce programme utilise plusieurs threads qui modifient les variables ``a``, ``b`` et ``c``. Parmi les fragments de code ci-dessous qui utilisent plusieurs threads, un seul est correct. Lequel ? - -.. class:: positive - -- - .. code-block:: console - - // thread A - - update(&a,&b,&x,&y); - update(&a,&c,&x,&z); - - // thread B - - update(&b,&c,&y,&z); - update(&a,&c,&x,&z); - - -- - .. code-block:: console - - // thread A - - update(&a,&b,&x,&y); - update(&b,&c,&y,&z); - - // thread B - - update(&b,&c,&y,&z); - update(&a,&c,&x,&z); - - -.. class:: negative - -- - .. code-block:: console - - // thread A - - update(&a,&b,&x,&y); - update(&c,&a,&z,&x); - - // thread B - - update(&b,&c,&y,&z); - update(&a,&c,&x,&z); - - .. class:: comment - - Lorsqu'un thread utilise plusieurs ressources protégées par un mutex, il est important que les accès à ces mutex se fassent chaque fois dans le même ordre. Dans cet exemple, il faut toujours accéder à ``x`` puis à ``y`` puis à ``z`` (ou un autre ordre). Accéder à ``z`` puis à ``x`` dans le thread A et à ``x`` puis à ``z`` dans le thread B est une source de deadlocks potentiels. - - -- - .. code-block:: console - - // thread A - - update(&a,&b,&x,&y); - update(&a,&c,&x,&z); - - // thread B - - update(&b,&c,&y,&z); - update(&c,&a,&z,&x); - - .. class:: comment - - Lorsqu'un thread utilise plusieurs ressources protégées par un mutex, il est important que les accès à ces mutex se fassent chaque fois dans le même ordre. Dans cet exemple, il faut toujours accéder à ``x`` puis à ``y`` puis à ``z`` (ou un autre ordre). Accéder à ``z`` puis à ``x`` dans le thread B et à ``x`` puis à ``z`` dans le thread A est une source de deadlocks potentiels. - -- - .. code-block:: console - - // thread A - - update(&a,&b,&x,&y); - update(&a,&b,&x,&y); - - // thread B - - update(&b,&a,&y,&x); - update(&a,&c,&x,&z); - - .. class:: comment - - Lorsqu'un thread utilise plusieurs ressources protégées par un mutex, il est important que les accès à ces mutex se fassent chaque fois dans le même ordre. Dans cet exemple, il faut toujours accéder à ``x`` puis à ``y`` puis à ``z`` (ou un autre ordre). Accéder à ``a`` puis à ``y`` dans le thread A et à ``y`` puis à ``x`` dans le thread B est une source de deadlocks potentiels. - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S6/src/pthread-mutex.c b/Exercices/QCM/S6/src/pthread-mutex.c deleted file mode 100644 index 2a925f6..0000000 --- a/Exercices/QCM/S6/src/pthread-mutex.c +++ /dev/null @@ -1,135 +0,0 @@ -/************************************** - * pthread-mutex.c - * - * Programme d'exemple de pthread avec - * utilisation de mutex pour éviter une - * violation de section critique - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA -#include <pthread.h> -#define NTHREADS 4 - -long a=5; -long b=7; -long c=9; - -pthread_mutex_t x; -pthread_mutex_t y; -pthread_mutex_t z; - - -void update(int * val, pthread_mutex_t * mutex) { - - err=pthread_mutex_lock(mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - *val=(*val)+1; - err=pthread_mutex_unlock(mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - return NULL; -} - -void update2(int * val1, int * val2, pthread_mutex_t * mutex1, pthread_mutex_t * mutex2) { - - err=pthread_mutex_lock(mutex1); - if(err!=0) - error(err,"pthread_mutex_lock"); - err=pthread_mutex_lock(mutex2); - if(err!=0) - error(err,"pthread_mutex_lock"); - - *val1=(*val2)+1; - *val2=(*val1)+1; - - err=pthread_mutex_unlock(mutex1); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - err=pthread_mutex_unlock(mutex2); - if(err!=0) - error(err,"pthread_mutex_unlock"); - -} - - -void update3(int * val1, int * val2, int * val3, pthread_mutex_t * mutex1, pthread_mutex_t * mutex2, pthrad_mutex_t * mutex3) { - - err=pthread_mutex_lock(mutex1); - if(err!=0) - error(err,"pthread_mutex_lock"); - err=pthread_mutex_lock(mutex2); - if(err!=0) - error(err,"pthread_mutex_lock"); - - *val1=(*val2)+1; - *val2=(*val1)+1; - - err=pthread_mutex_unlock(mutex1); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - err=pthread_mutex_unlock(mutex2); - if(err!=0) - error(err,"pthread_mutex_unlock"); - -} - - -void *func(void * param) { - int err; - for(int j=0;j<1000000;j++) { - err=pthread_mutex_lock(&mutex_global); - if(err!=0) - error(err,"pthread_mutex_lock"); - global=increment(global); - err=pthread_mutex_unlock(&mutex_global); - if(err!=0) - error(err,"pthread_mutex_unlock"); - } - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - err=pthread_mutex_init( &mutex_global, NULL); - if(err!=0) - error(err,"pthread_mutex_init"); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&func,NULL); - if(err!=0) - error(err,"pthread_create"); - } - for(int i=0; i<1000000000;i++) { /*...*/ } - - for(int i=NTHREADS-1;i>=0;i--) { - err=pthread_join(thread[i],NULL); - if(err!=0) - error(err,"pthread_join"); - } - - err=pthread_mutex_destroy(&mutex_global); - if(err!=0) - error(err,"pthread_mutex_destroy"); - - printf("global: %ld\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S7/Makefile b/Exercices/QCM/S7/Makefile deleted file mode 100755 index 54ca347..0000000 --- a/Exercices/QCM/S7/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=7 - -DEST=../../../web/qcm - -EXNAME=$(DEST)/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S7/qcm-7.rst b/Exercices/QCM/S7/qcm-7.rst deleted file mode 100644 index fca3b49..0000000 --- a/Exercices/QCM/S7/qcm-7.rst +++ /dev/null @@ -1,424 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 4</script> - - -================ -Septième semaine -================ - - -Question 1. Utilisation des sémaphores --------------------------------------- - -Avant d'être utilisé, un sémaphore doit être déclaré et initialisé. Après son utilisation, il doit être détruit. Parmi les séquences d'instructions ci-dessous, une seule initialise correctement un sémaphore à la valeur 1. Laquelle ? - -.. class:: positive - -- - .. code-block:: console - - sem_t semaphore; - - sem_init(&semaphore, 0,1); - - // ... - - sem_destroy(&semaphore); - - -- - .. code-block:: console - - sem_t *semaphore; - semaphore=(sem_t *)malloc(sizeof(struct sem_t)); - if (semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 0,1); - - // ... - - sem_destroy(semaphore); - - -.. class:: negative - -- - .. code-block:: console - - sem_t semaphore; - - sem_init(semaphore, 1,0); - - // ... - - sem_destroy(semaphore); - - .. class:: comment - - `sem_init(3)`_ et `sem_destroy(3)`_ prennent comme premier argument un pointeur vers une structure ``sem_t``. `sem_init(3)`_ prend comme troisième argument la valeur initiale du sémaphore. - -- - .. code-block:: console - - sem_t semaphore; - - sem_init(&semaphore, 1,0); - - // ... - - sem_destroy(&semaphore); - - .. class:: comment - - `sem_init(3)`_ prend comme troisième argument la valeur initiale du sémaphore. - -- - .. code-block:: console - - sem_t *semaphore; - semaphore=(sem_t *)malloc(sizeof(struct sem_t)); - if (semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 1, 0); - - // ... - - sem_destroy(semaphore); - - .. class:: comment - - `sem_init(3)`_ prend comme troisième argument la valeur initiale du sémaphore. - - -- - .. code-block:: console - - sem_t *semaphore; - semaphore=(sem_t *)malloc(sizeof(struct sem_t)); - if (semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 1, 0); - - // ... - - sem_destroy(&semaphore); - - .. class:: comment - - `sem_init(3)`_ prend comme troisième argument la valeur initiale du sémaphore. `sem_destroy(3)`_ prend comme premier argument un pointeur vers une structure ``sem_t``. - - - -Question 2. Exclusion mutuelle ------------------------------- - -Les sémaphores peuvent être utilisés tout comme les mutex pour résoudre des problèmes d'exclusion mutuelle. Parmi les extraits de programmes ci-dessous, une seule est une solution correcte au problème de l'exclusion mutuelle en utilisant des sémaphores. Laquelle ? - -.. class:: positive - -- - .. code-block:: console - - - static sem_t semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(&semaphore); - global=increment(global); - sem_post(&semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - sem_init(&semaphore, 0,1); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } -- - .. code-block:: console - - - sem_t * semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(semaphore); - global=increment(global); - sem_post(semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - semaphore=(sem_t *)malloc(sizeof(sem_t)) - if(semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 0,1); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - -.. class:: negative - -- - .. code-block:: console - - - static sem_t semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(&semaphore); - global=increment(global); - sem_post(&semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - sem_init(&semaphore, 0,0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. class:: comment - - Pour résoudre un problème d'exclusion mutuelle, il faut initialiser le sémaphore à ``1`` avec `sem_init(3)`_ et non à ``0`` comme dans cet exemple. - -- - .. code-block:: console - - - static sem_t semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_post(&semaphore); - global=increment(global); - sem_wait(&semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - sem_init(&semaphore, 0,0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. class:: comment - - Pour résoudre un problème d'exclusion mutuelle, il faut initialiser le sémaphore à ``1`` avec `sem_init(3)`_ et non à ``0`` comme dans cet exemple. En outre, l'accès à la section critique doit être précédée par un appel à `sem_wait(3)`_ et suivie par un appel à `sem_post(3)`_ et non l'inverse comme dans cet exemple. - -- - .. code-block:: console - - - sem_t * semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(semaphore); - global=increment(global); - sem_post(semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - semaphore=(sem_t *)malloc(sizeof(sem_t)) - if(semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 0,0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. class:: comment - - Pour résoudre un problème d'exclusion mutuelle, il faut initialiser le sémaphore à ``1`` avec `sem_init(3)`_ et non à ``0`` comme dans cet exemple. - -- - .. code-block:: console - - - sem_t * semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_post(semaphore); - global=increment(global); - sem_wait(semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - semaphore=(sem_t *)malloc(sizeof(sem_t)) - if(semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 0,0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. class:: comment - - Pour résoudre un problème d'exclusion mutuelle, il faut initialiser le sémaphore à ``1`` avec `sem_init(3)`_ et non à ``0`` comme dans cet exemple. En outre, l'accès à la section critique doit être précédée par un appel à `sem_wait(3)`_ et suivie par un appel à `sem_post(3)`_ et non l'inverse comme dans cet exemple. - - - -Question 3. Fonctions 'thread-safe' ------------------------------------ - -La plupart des fonctions de la librairie standard sont des fonctions thread-safe, c'est-à -dire des fonctions que l'on peut utiliser dans plusieurs threads distincts sans risquer de problèmes d'accès concurrent. Cependant, certaines fonctions, souvent parmi les plus anciennes, ne sont pas thread-safe. Parmi les fonctions ci-dessous, une seule est thread-safe. Laquelle ? - -.. class:: positive - -- `gettimeofday(2)`_ - - .. class:: comment - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - -- `strsep(3)`_ - - .. class:: comment - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - -.. class:: negative - -- `getenv(3)`_ - - .. class:: comment - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - -- `getopt(3)`_ - - .. class:: comment - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - -- `asctime(3)`_ - - .. class:: comment - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - -- `strtok(3)`_ - - .. class:: comment - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - -- `strerror(3)`_ - - .. class:: comment - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - -- `getopt(3)`_ - - .. class:: comment - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S7/src/pthread-mutex-perf.c b/Exercices/QCM/S7/src/pthread-mutex-perf.c deleted file mode 100644 index 05f3448..0000000 --- a/Exercices/QCM/S7/src/pthread-mutex-perf.c +++ /dev/null @@ -1,131 +0,0 @@ -/************************************** - * pthread-mutex.c - * - * Programme d'exemple de pthread avec - * utilisation de mutex pour éviter une - * violation de section critique - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <sys/time.h> - -/* Return t2-t1 in microseconds */ -long timeval_diff(struct timeval *t2, struct timeval *t1) -{ - long diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); - return (diff); -} - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -void usage(char *arg) { - printf("Usage : %s percent nthreads\n\n",arg); - printf(" percent: 0-100 pourcentage de temps en section critique\n"); - printf(" nthreads : nombre de threads à lancer\n"); -} -///AAA -#define LOOP 40000 -#define LOOP_CRITIQUE 40000 -#define N 4 - -int percent; // pourcentage de temps en section critique -int nthreads; // nombre de threads -pthread_mutex_t mutex; - -void critique() { - long j=0; - for(int i=0;i<(LOOP_CRITIQUE*percent)/100;i++) { - j+=i; - // ... - } -} - -void noncritique() { - int j=0; - for(int i=0;i<(LOOP_CRITIQUE*(100-percent))/100;i++) { - j-=i; - // ... - } -} - - -void *func(void * param) { - for(int j=0;j<LOOP/nthreads;j++) { - pthread_mutex_lock(&mutex); - critique(); - pthread_mutex_unlock(&mutex); - noncritique(); - } - return(NULL); -} - -int main (int argc, char *argv[]) { - int err; - struct timeval tvStart, tvEnd; - long mesures[N]; - long sum=0; - - if(argc!=3) { - usage(argv[0]); - return(EXIT_FAILURE); - } - - char *endptr; - percent=strtol(argv[1],&endptr,10); - if(percent<1 || percent >100) { - usage(argv[0]); - return(EXIT_FAILURE); - } - nthreads=strtol(argv[2],&endptr,10); - - if(nthreads<0) { - usage(argv[0]); - return(EXIT_FAILURE); - } - pthread_t thread[nthreads]; - - err=pthread_mutex_init( &mutex, NULL); - if(err!=0) - error(err,"pthread_mutex_init"); - - for (int j=0;j<N;j++) { - - err=gettimeofday(&tvStart, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - for(int i=0;i<nthreads;i++) { - err=pthread_create(&(thread[i]),NULL,&func,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - for(int i=nthreads-1;i>=0;i--) { - err=pthread_join(thread[i],NULL); - if(err!=0) - error(err,"pthread_join"); - } - err=gettimeofday(&tvEnd, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - mesures[j]=timeval_diff(&tvEnd, &tvStart); - sum+=mesures[j]; - - } - printf("%d, %d, %ld\n",nthreads,percent,sum/N); - - err=pthread_mutex_destroy(&mutex); - if(err!=0) - error(err,"pthread_destroy"); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S7/src/pthread-sem.c b/Exercices/QCM/S7/src/pthread-sem.c deleted file mode 100644 index 322b802..0000000 --- a/Exercices/QCM/S7/src/pthread-sem.c +++ /dev/null @@ -1,61 +0,0 @@ -/************************************** - * pthread-semt.c - * - * Programme d'exemple de sémaphores - * - **************************************/ - -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -#define NTHREADS 4 - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -static sem_t semaphore; -long global=0; - -int increment(int i) { - return i+1; -} - -void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(&semaphore); - global=increment(global); - sem_post(&semaphore); - } - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - sem_init(&semaphore, 0,1); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) { - error(err,"pthread_create"); - } - } - - for(int i=0;i<NTHREADS;i++) { - err=pthread_join(thread[i],NULL); - if(err!=0) { - error(err,"pthread_join"); - } - } - sem_destroy(&semaphore); - printf("global: %ld\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Exercices/QCM/S8/Makefile b/Exercices/QCM/S8/Makefile deleted file mode 100755 index e350e08..0000000 --- a/Exercices/QCM/S8/Makefile +++ /dev/null @@ -1,30 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=8 - -DEST=../../../web/qcm - -EXNAME=$(DEST)/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S8/qcm-8.rst b/Exercices/QCM/S8/qcm-8.rst deleted file mode 100644 index 36078ea..0000000 --- a/Exercices/QCM/S8/qcm-8.rst +++ /dev/null @@ -1,455 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <Script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 4</script> - - -================ -Huitième semaine -================ - -La matière couverte cette semaine couvre les processus. Elle est décrite dans les sections suivantes des notes : - - - `Les processus <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Threads/processus.html>`_ - -Question 1. `fork(2)`_ ------------------------ - -L'appel système `fork(2)`_ permet de créer une copie du processus courant. Un étudiant a écrit le fragment de code ci-dessous se trouvant dans la fonction ``main``: - -.. code-block:: c - - int n=... - for(int i=0; i<n ; i++) { - printf("i=%d\n",i); - pid_t pid; - pid=fork(); - if (pid==-1) { - perror("fork"); - exit(EXIT_FAILURE); - } - else { - if(pid!=0) { - printf("Running in %d\n",pid); - } - } - } - return(EXIT_SUCCESS); - -Lors de l'exécution de ce programme, combien de processus sont créés en fonction de la valeur de ``n`` ? - -.. class:: positive - -- Lorsque ``n`` est initialisé à ``2``, quatre processus sont créés. - - .. class:: comment - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Ces deux processus exécutent à leur tour `fork(2)`_ et deux processus supplémentaires sont donc créés. - -- Lorsque ``n`` est initialisé à ``3``, huit processus sont créés. - - .. class:: comment - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Ces deux processus exécutent à leur tour `fork(2)`_ et deux processus supplémentaires sont donc créés. Chacun de ces quatre processus exécute à son tour `fork(2)`_ et il y a donc huit processus au total. - -.. class:: negative - -- Lorsque ``n`` est initialisé à ``2``, deux processus sont créés. - - .. class:: comment - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Chacun de ces deux processus poursuit son exécution et la valeur de ``i`` est incrémentée. - -- Lorsque ``n`` est initialisé à ``2``, trois processus sont créés. - - .. class:: comment - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Chacun de ces deux processus poursuit son exécution et la valeur de ``i`` est incrémentée. - - -- Lorsque ``n`` est initialisé à ``3``, trois processus sont créés. - - .. class:: comment - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Chacun de ces deux processus poursuit son exécution et la valeur de ``i`` est incrémentée. - -- Lorsque ``n`` est initialisé à ``3``, quatre processus sont créés. - - .. class:: comment - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Chacun de ces deux processus poursuit son exécution et la valeur de ``i`` est incrémentée. - -Question 2. `execve(2)`_ ------------------------- - -Parmi les extraits de programme ci-dessous, lequel est un appel correct à `execve(2)`_ pour lancer le programme ``/bin/echo`` avec comme arguments ``-n`` et ``SINF1252`` ? - -.. class:: positive - -- - .. code-block:: c - - char *arguments[]={"echo", "-n", "SINF1252", NULL}; - char *environnement[]={"LANG=fr",NULL}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - -- - .. code-block:: c - - - char prog[]="echo"; - char param1[]="-n"; - char param2[]="SINF1252"; - char *arguments[4]; - arguments[0]=prog; - arguments[1]=param1; - arguments[2]=param2; - arguments[3]=NULL; - char *environnement[]={"LANG=fr", NULL}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - -.. class:: negative - -- - .. code-block:: c - - char arguments[]={"echo", "-n", "SINF1252", NULL}; - char environnement[]={"LANG=fr",NULL}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - - .. class:: comment - - Les deuxième et troisième arguments à `execve(2)`_ doivent être de type ``char *arg[]``. - -- - .. code-block:: c - - - char prog[]="echo"; - char param1[]="-n"; - char param2[]="SINF1252"; - char *arguments[4]; - arguments[0]=prog; - arguments[1]=param1; - arguments[2]=param2; - arguments[3]=NULL; - char *environnement[]={"LANG=fr"}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - .. class:: comment - - Les deuxième et troisième arguments à `execve(2)`_ doivent être de type ``char *arg[]``. - -- - .. code-block:: c - - - char prog[]="echo"; - char param1[]="-n"; - char param2[]="SINF1252"; - char *arguments[3]; - arguments[0]=prog; - arguments[1]=param1; - arguments[2]=param2; - char *environnement[]={"LANG=fr"}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - .. class:: comment - - Le dernier élément des tableaux de pointeurs ``argv` et ``environnement`` doivent obligatoirement contenir ``NULL``. Sans cela, il n'est pas possible de déterminer le nombre d'éléments dans ces tableaux. - -- - .. code-block:: c - - char *arguments[]={"echo", "-n", "SINF1252"}; - char *environnement[]={"LANG=fr"}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - .. class:: comment - - Le dernier élément des tableaux de pointeurs ``argv` et ``environnement`` doivent obligatoirement contenir ``NULL``. Sans cela, il n'est pas possible de déterminer le nombre d'éléments dans ces tableaux. - - -Question 3. `execve(2)`_ ------------------------- - -L'appel système `execve(2)`_ permet d'exécuter un programme en remplaçant le programme en cours d'exécution par celui se trouvant sur disque dont le nom est spécifié. Un étudiant a écrit le programme ci-dessous pour tester `execve(2)`_ : - -.. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> - - extern char **environ; - - int main (int argc, char *argv[]) { - - int n=... - int i=0; - for(i=0;i<n;i++) { - sleep(1); - printf("%d\n",i); - int err=execve(argv[0], argv, environ); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - } - return(EXIT_SUCCESS); - } - -.. class:: positive - -- Lorsque ``n`` est initialisé à ``3``, le programme ne s'arrête jamais et affiche : - - .. code-block:: console - - 0 - 0 - 0 - ... - - .. class:: comment - - Lors de l'exécution de `execve(2)`_, le programme est remplacé par lui-même puisque ``argv[0]`` contient toujours le nom de l'exécutable qui est en train d'être exécuté. Ce programme redémarre son exécution au début de la fonction ``main``... - - -- Lorsque ``n`` est initialisé à ``2``, le programme ne s'arrête jamais et affiche : - - .. code-block:: console - - 0 - 0 - 0 - ... - - - .. class:: comment - - Lors de l'exécution de `execve(2)`_, le programme est remplacé par lui-même puisque ``argv[0]`` contient toujours le nom de l'exécutable qui est en train d'être exécuté. Ce programme redémarre son exécution au début de la fonction ``main``... - - - -.. class:: negative - -- Lorsque ``n`` est initialisé à ``3``, le programme affiche : - - .. code-block:: console - - 0 - 1 - 2 - - - .. class:: comment - - Lors de l'exécution de `execve(2)`_, le programme est remplacé par lui-même puisque ``argv[0]`` contient toujours le nom de l'exécutable qui est en train d'être exécuté. Ce programme redémarre son exécution au début de la fonction ``main``... - -- Lorsque ``n`` est initialisé à ``2``, le programme affiche : - - .. code-block:: console - - 0 - 1 - - - .. class:: comment - - Lors de l'exécution de `execve(2)`_, le programme est remplacé par lui-même puisque ``argv[0]`` contient toujours le nom de l'exécutable qui est en train d'être exécuté. Ce programme redémarre son exécution au début de la fonction ``main``... - -- Lorsque ``n`` est initialisé à ``2``, l'appel à `execve(2)`_ est erroné et le programme s'arrête. - - .. class:: comment - - L'appel à `execve(2)`_ est tout à fait correct, même si il n'est pas recommandé d'utiliser `execve(2)`_ de cette façon... - - -- Lorsque ``n`` est initialisé à ``3``, l'appel à `execve(2)`_ est erroné et le programme s'arrête. - - .. class:: comment - - L'appel à `execve(2)`_ est tout à fait correct, même si il n'est pas recommandé d'utiliser `execve(2)`_ de cette façon... - - - -Question 4. Utilisation de `waitpid(2)`_ ----------------------------------------- - -L'appel système `waitpid(2)`_ permet à un processus d'attendre les valeurs de retour de ses processus fils. Un étudiant a écrit un programme qui lance de nombreux processus et veut faire une boucle qui permet de récupérer tous les processus fils qu'il a créé. Parmi les fragments de code ci-dessous, un seul est correct. Lequel ? - - -.. class:: positive - - -- - .. code-block:: c - - - int fils; - int done=false; - while(!done) { - int status; - fils=waitpid(0,&status,0); - if( (fils==-1) && (errno==ECHILD) ) - done=true; - } - -- - .. code-block:: c - - - int fils; - int done=false; - while(!done) { - int status; - if( (waitpid(0,&status,0)==-1) && (errno==ECHILD) ) - done=true; - } - - - -.. class:: negative - -- - .. code-block:: c - - - int fils; - int done=false; - int status; - while(waitpid(0,status,0)!=0) { - if( (fils==-1) && (errno==ECHILD) ) - done=true; - } - - - .. class:: comment - - Le second argument de `waitpid(2)`_ est un pointeur vers un entier et non un entier. - -- - .. code-block:: c - - - int fils; - int done=false; - while(!done) { - int status; - fils=waitpid(getpid(),&status,0); - if( (fils==-1) && (errno==ECHILD) ) - done=true; - } - - .. class:: comment - - Lorsque le premier argument de `waitpid(2)`_ est un entier positif, il s'agit de l'identifiant du processus pour lequel `waitpid(2)`_ attend. Dans ce cas, `getpid(2)`_ retourne l'identifiant du processus qui existe `waitpid(2)`_ et un processus ne peut pas être un fils de lui-même. - -Question 5. Récupération du résultat d'un processus avec `waitpid(2)`_ ----------------------------------------------------------------------- - -Un étudiant souhaite récupérer le résultat du processus ``pid`` qu'il a créé en faisant `fork(2)`_ et l'afficher sur ``stdout``. Parmi les fragments de programmes ci-dessous, un seul est correct. Lequel ? - -.. class:: positive - -- - .. code-block:: c - - int status; - int p=waitpid(pid,&status,0); - if(p==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(WIFEXITED(status)) { - printf("Le processus a retourne %d\n",WEXITSTATUS(status)); - } - - -.. class:: negative - -- - .. code-block:: c - - int status; - int p=waitpid(pid,status,0); - if(p==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - printf("Le processus a retourne %d\n",WEXITSTATUS(status)); - - .. class:: comment - - L'appel système `waitpid(2)`_ prend comme second argument un pointeur vers un ``int`` et non un `ìnt``. - - -- - .. code-block:: c - - int status; - int p=waitpid(pid,&status,0); - if(p==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - printf("Le processus a retourne %d\n",p); - - .. class:: comment - - La valeur de retour de `waitpid(2)`_ indique si l'appel système s'est exécuté correctement ou non. Pour récupérer le statut du processus fils ``pid``, il faut utiliser la macro ``WEXITSTATUS``. - - -- - .. code-block:: c - - int *status; - int p=waitpid(pid,status,0); - if(p==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - printf("Le processus a retourne %d\n",p); - - .. class:: comment - - La valeur de retour de `waitpid(2)`_ indique si l'appel système s'est exécuté correctement ou non. Pour récupérer le statut du processus fils ``pid``, il faut utiliser la macro ``WEXITSTATUS``. Le pointeur ``int * status`` doit pointer vers une zone mémoire allouée par malloc. Ici, il pointe vers ``NULL``. - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S8/src/execbomb.c b/Exercices/QCM/S8/src/execbomb.c deleted file mode 100644 index 828bac5..0000000 --- a/Exercices/QCM/S8/src/execbomb.c +++ /dev/null @@ -1,29 +0,0 @@ -/************************************** - * execbomb.c - * - * Programme qui ne se termine jamais - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -extern char **environ; - -int main (int argc, char *argv[]) { - - int n=2; - int i=0; - for(i=0;i<n;i++) { - sleep(1); - printf("%d\n",i); - int err=execve(argv[0], argv, environ); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - } - return(EXIT_SUCCESS); -} - diff --git a/Exercices/QCM/S8/src/execswap.c b/Exercices/QCM/S8/src/execswap.c deleted file mode 100644 index e69de29..0000000 diff --git a/Exercices/QCM/S8/src/execve.c b/Exercices/QCM/S8/src/execve.c deleted file mode 100644 index 52b29d3..0000000 --- a/Exercices/QCM/S8/src/execve.c +++ /dev/null @@ -1,50 +0,0 @@ -/************************************** - * execbomb.c - * - * Programme qui ne se termine jamais - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -void f1() { - /* ok - char *arguments[]={"echo", "-n", "SINF1252", NULL}; - char *environnement[]={"LANG=fr",NULL}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - */ - - /* ok - char prog[]="echo"; - char param1[]="-n"; - char param2[]="SINF1252"; - char *arguments[4]; - arguments[0]=prog; - arguments[1]=param1; - arguments[2]=param2; - arguments[3]=NULL; - char *environnement[]={"LANG=fr"}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - */ - -} - - -extern char **environ; - -int main (int argc, char *argv[]) { - - f1(); -} - diff --git a/Exercices/QCM/S8/src/fork-wait.c b/Exercices/QCM/S8/src/fork-wait.c deleted file mode 100644 index b18df42..0000000 --- a/Exercices/QCM/S8/src/fork-wait.c +++ /dev/null @@ -1 +0,0 @@ -List directory (brief): ~/Documents/Cours/SINF1252/SystemesInformatiques/Exercices/QCM/S8/src/ diff --git a/Exercices/QCM/S8/src/fork-wait2.c b/Exercices/QCM/S8/src/fork-wait2.c deleted file mode 100644 index 9fcb9ba..0000000 --- a/Exercices/QCM/S8/src/fork-wait2.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************** - * fork-wait.c - * - * Programme d'exemple d'utilisation de - * wait - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> -#include <errno.h> -#include <stdbool.h> - -int main (int argc, char *argv[]) { - - pid_t pid; - - for(int i=0;i<2;i++) { - pid=fork(); - if (pid==-1) { - perror("fork"); - exit(EXIT_FAILURE); - } - if (pid==0) { - sleep(8); - return(42); - } - } - - int fils; - int done=false; - while(!done) { - int status; - fils=waitpid(0,&status,0); - if( (fils==-1) && (errno==ECHILD) ) - done=true; - } -} diff --git a/Exercices/QCM/S8/src/nfork.c b/Exercices/QCM/S8/src/nfork.c deleted file mode 100644 index 085a0dd..0000000 --- a/Exercices/QCM/S8/src/nfork.c +++ /dev/null @@ -1,33 +0,0 @@ -/************************************** - * nfork.c - * - * Programme lançant plusieurs copies - * de lui même - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - - -int main (int argc, char *argv[]) { - - int n=2; - for(int i=0; i<n ; i++) { - printf("i=%d\n",i); - pid_t pid; - pid=fork(); - if (pid==-1) { - perror("fork"); - exit(EXIT_FAILURE); - } - else { - if(pid!=0) { - printf("Running in %d\n",pid); - } - } - } - return(EXIT_SUCCESS); -} - diff --git a/Exercices/QCM/S8/src/waitpid.c b/Exercices/QCM/S8/src/waitpid.c deleted file mode 100644 index 92eb83e..0000000 --- a/Exercices/QCM/S8/src/waitpid.c +++ /dev/null @@ -1,21 +0,0 @@ -/************************************** - * nfork.c - * - * Programme lançant plusieurs copies - * de lui même - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <errno.h> -#include <string.h> - -int main (int argc, char *argv[]) { - - int status; - int err=waitpid(getpid(),&status,0); - printf("%s\n",strerror(errno)); -} - diff --git a/Exercices/QCM/S9/Makefile b/Exercices/QCM/S9/Makefile deleted file mode 100755 index f1117bf..0000000 --- a/Exercices/QCM/S9/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -#################################################################### -# -# Makefile for SINF1252 QCM -# OB, Jan 2013 -# -#################################################################### - -MISSION=9 - -EXNAME=../../../_static/Mission-$(MISSION)-qcm.html - -RST_FILES=qcm-$(MISSION).rst - -CSS=../rst-form/css/html4css1.css,../rst-form/css/rst-form.css,../rst-form/css/pygments.css - -.PHONY : qcm all - -qcm: $(EXNAME) - -$(EXNAME): $(RST_FILES) - @for i in $(RST_FILES); do\ - ( rst2html.py --stylesheet-path=$(CSS) $$i > $(EXNAME) ; ) ; done - - -all: qcm - -clean: - -rm -r $(EXNAME) diff --git a/Exercices/QCM/S9/qcm-9.rst b/Exercices/QCM/S9/qcm-9.rst deleted file mode 100644 index 1bc476b..0000000 --- a/Exercices/QCM/S9/qcm-9.rst +++ /dev/null @@ -1,505 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 4</script> - - -================ -Neuvième semaine -================ - - -La matière couverte cette semaine porte sur le système de fichiers et sa manipulation par les processus. - -Question 1. Accès aux fichiers ------------------------------- - -Les bits de permissions permettent de contrôler l'accès aux fichiers. Considérons le répertoire ci-dessous : - -.. code-block:: console - - -rw-r--r-- 1 obo obo 0 23 mar 21:57 a - -r-xr-x--x 1 obo obo 0 23 mar 21:57 b - -rw------- 1 obo obo 0 23 mar 21:57 c - -rw------x 1 obo obo 0 23 mar 21:57 d - --w-----w- 1 obo obo 0 23 mar 21:57 e - - -Un seul des groupes d'affirmations ci-dessous est vrai. Lequel ? - -.. class:: positive - -- - - l'utilisateur ``obo`` peut lire le fichier ``c``, exécuter le fichier ``b`` et modifier le contenu du fichier ``d`` - - -- - - l'utilisateur ``obo`` peut lire le fichier ``a``, exécuter le fichier ``b`` et modifier le contenu du fichier ``c`` - - -.. class:: negative - -- - - l'utilisateur ``obo`` peut lire le fichier ``e``, exécuter le fichier ``b`` et modifier le contenu du fichier ``e`` - - .. class:: comment - - Le fichier ``e`` n'est pas lisible par cet utilisateur. - -- - - l'utilisateur ``obo`` peut lire le fichier ``c``, exécuter le fichier ``d`` et modifier le contenu du fichier ``b`` - - .. class:: comment - - Le fichier ``b`` n'est pas modifiable par cet utilisateur. - -- - - l'utilisateur ``obo`` peut lire le fichier ``c``, exécuter le fichier ``a`` et modifier le contenu du fichier ``d`` - - .. class:: comment - - Le fichier ``a`` n'est pas exécutable par cet utilisateur. - - -Question 2. Fichiers et répertoires ------------------------------------ - -Les permissions associées aux répertoires ont un rôle un peu différent de celles qui sont associées aux fichiers. Considérons le répertoire ci-dessous qui contient 4 sous-répertoires. - -.. code-block:: console - - drw------- 2 obo obo 68 23 mar 22:25 a - dr-x------ 2 obo obo 68 23 mar 22:25 b - d-wx------ 3 obo obo 102 23 mar 22:27 c - drwx------ 3 obo obo 102 23 mar 22:26 d - -Chacun de ces répertoires contient un fichier qui a comme nom ``f``. La commande `touch(1)`_ peut être utilisée pour créer un fichier vide. Ainsi, dans ce répertoire, la commande ``touch f`` va créer le fichier ``f`` - -.. code-block:: console - - ls -l f - -rw-r--r-- 1 obo obo 0 23 mar 22:30 f - -Dans le répertoire ci-dessus, une seule séquence de commandes fonctionne sans erreur. Laquelle ? - -.. class:: positive - -- - .. code-block:: console - - ls -l d - touch c/x - cd b - -- - .. code-block:: console - - ls -l b - cat c/f - cd d - - -.. class:: negative - -- - .. code-block:: console - - ls -l c - touch d/x - cd a - - .. class:: comment - - Il n'est pas possible d'aller dans le répertoire ``a``. En outre, le contenu du répertoire ``c`` ne peut pas être lu avec `ls(1)`_ - -- - .. code-block:: console - - ls -l c - touch a/x - cd c - - .. class:: comment - - Il n'est pas possible de créer un fichier dans le répertoire ``a``. - -- - .. code-block:: console - - ls -l b - touch b/x - cd b - - .. class:: comment - - Il n'est pas possible de créer un fichier dans le répertoire ``b``. - - - -Question 3. Permissions sur les fichiers ----------------------------------------- - -La page de manuel de `chmod(1posix)`_ décrit en détails les permissions relatives aux fichiers et répertoires. Ces permissions peuvent être représentées sous une forme numérique ou textuelle. Parmi les affirmations suivantes, relatives à des permissions pour des `fichiers`, un seul groupe est vrai. Lequel ? - - -.. class:: positive - -- - - Le fichier ayant ``00467`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00777`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00600`` ne peut être lu que par son propriétaire - -- - - Le fichier ayant ``00647`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00700`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00421`` comme permissions ne peut être lu que par son propriétaire - -.. class:: negative - -- - - Le fichier ayant ``00476`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00747`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00601`` comme permissions ne peut être lu que par son propriétaire - - .. class:: comment - - Le fichier ayant ``00476`` comme permissions ne peut être exécuté que par un membre du groupe correspondant à ce fichier. - -- - - Le fichier ayant ``00677`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00017`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00400`` comme permissions ne peut être lu que par son propriétaire - - .. class:: comment - - Le fichier ayant ``00017`` comme permissions n'est pas lisible par son propriétaire - - -- - - Le fichier ayant ``00755`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00417`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00222`` comme permissions ne peut être lu que par son propriétaire - - .. class:: comment - - Le fichier ayant ``00222`` comme permissions n'est pas lisible par son propriétaire - - -- - - Le fichier ayant ``00666`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00400`` comme permissions est modificale par son propriétaire - - Le fichier ayant ``00400`` comme permissions ne peut être lu que par son propriétaire - - .. class:: comment - - Le fichier ayant ``00666`` comme permissions n'est pas exécutable - - - -Question 4. Permissions sur les fichiers ----------------------------------------- - -Les bits de permissions associés à un fichiers sont généralement représentés sous forme textuelle lorsque la commande `ls(1)`_ affiche le contenu d'un répertoire. Considérons le répertoire ci-dessous : - - .. code-block:: console - - -rw-r--r-- 1 obo obo 0 23 mar 21:57 a - -rwxr-x--x 1 obo obo 0 23 mar 21:57 b - -rw------- 1 obo obo 0 23 mar 21:57 c - -rw------x 1 obo obo 0 23 mar 21:57 d - --w-r--rw- 1 obo obo 0 23 mar 21:57 e - - -Parmi les commandes suivantes, un seul groupe permet d'obtenir les mêmes permissions que ci-dessous. Lequel ? - -.. class:: positive - -- - .. code-block:: console - - chmod 644 a - chmod 751 b - chmod 600 c - chmod 601 d - chmod 246 e - -.. class:: negative - - -- - .. code-block:: console - - chmod 446 a - chmod 157 b - chmod 006 c - chmod 106 d - chmod 642 e - - .. class:: comment - - Relisez la page de manuel de `chmod(1)`_ - -- - .. code-block:: console - - chmod 444 a - chmod 751 b - chmod 600 c - chmod 604 d - chmod 123 e - - .. class:: comment - - Relisez la page de manuel de `chmod(1)`_ - -- - .. code-block:: console - - chmod 322 a - chmod 364 b - chmod 300 c - chmod 301 d - chmod 123 e - - .. class:: comment - - Relisez la page de manuel de `chmod(1)`_ - - -Question 5. Système de fichiers -------------------------------- - - -Le système de fichiers Unix utilise des `inode` pour stocker les meta-données relatives à un fichier/répertoire. Parmi les groupes d'affirmations suivants, un seul est correct. Lequel ? - -.. class:: positive - -- - - deux fichiers se trouvant dans des répertoires différents sur le même disque peuvent avoir le même `inode` - - le champ ``nlinks`` est toujours positif - - un accès au fichier modifie le ``atime`` associé à ce fichier - - -.. class:: negative - -- - - deux fichiers ont toujours des `inode` différents - - l'`inode` contient le nom du fichier - - une écriture dans un fichier modifie le ``mtime`` associé à ce fichier - - .. class:: comment - - Les deux premières affirmations sont fausses. - - -- - - un fichier et un répertoire se trouvant sur le même disque peuvent avoir le même `inode` - - une lecture dans un fichier modifie le ``mtime`` associé à ce fichier - - l'`inode` contient le nom du fichier - - .. class:: comment - - Toutes les affirmations sont fausses. - - -- - - une copie d'un fichier incrémente la valeur du champ ``nlinks`` de son `inode` - - une lecture dans un fichier modifie le ``atime`` associé à ce fichier - - il n'y a jamais deux fichiers qui ont le même `inode` - - .. class:: comment - - La première et la troisième affirmation sont fausses. - -Question 6. Manipulation des répertoires ----------------------------------------- - -Les répertoires sont des fichiers spéciaux. Pour les utiliser, il faut faire appel aux fonctions `opendir(3)`_, `readdir(3)`_ et `closedir(3)`_. Parmi les séquences d'instructions ci-dessous, laquelle permet de compter le nombre de fichiers se trouvant dans le répertoire courant ? - -.. code-block:: c - - /* - * name!=NULL - * retourne le nombre de fichiers dans le répertoire name - * et -1 en cas d'erreur - */ - -.. class:: positive - -- - .. code-block:: c - - int nfiles(char * name) { - - DIR *dirp; - struct dirent *dp; - dp=malloc(sizeof(struct dirent)); - if(dp==NULL) { - return -1; - } - dirp = opendir(name); - if(dirp==NULL) { - return -1; - } - int count=0; - while ((dp = readdir(dirp)) != NULL) { - if (dp->d_type==DT_REG) { - count++; - } - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); - } - - -- - -.. class:: negative - -- - .. code-block:: c - - int nfiles(char * name) { - - DIR *dirp; - struct dirent *dp; - dirp = opendir(name); - if(dirp==NULL) { - return -1; - } - int count=0; - while (readdir(dirp) != NULL) { - count++; - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); - } - - .. class:: comment - - Ce code compte toutes les entrées dans le répertoire et pas seulement le fichiers. - -- - .. code-block:: c - - int nfiles2(char * name) { - - DIR dirp; - struct dirent dp; - dirp = opendir(name); - if(dirp==-1) { - return -1; - } - int count=0; - while ((dp = readdir(dirp)) != -1) { - count++; - } - - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); - } - - .. class:: comment - - Ce code est erroné. `opendir(3)`_ retourne un pointeur et `readdir(3)`_ également. - -- - .. code-block:: c - - int nfiles(char * name) { - - DIR dirp; - struct dirent dp; - dirp = opendir(name); - int count=0; - while ((dp = readdir(dirp)) != NULL) { - if (dp->d_type==DT_REG) { - count++; - } - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); - } - - .. class:: comment - - Ce code est erroné. `opendir(3)`_ retourne un pointeur et `readdir(3)`_ également. - - - - -Question 7. Liens symboliques ------------------------------ - -Considérons un répertoire dans lequel les commandes suivantes sont exécutées : - -.. code-block:: console - - touch a - cp a b - ln a c - ln b d - echo "test" > c - ln -s d e - echo essai > e - -Après exécution de ces commandes, un seul des groupes d'affirmations suivant est correct. Lequel ? - -.. class:: positive - -- - - les fichiers ``a`` et ``c`` ont le même `inode` - - les fichiers ``b`` et ``d`` ont la même taille - - l'`inode` correspondant au fichier ``d`` indique qu'il y a deux liens vers lui - - -- - - les fichiers ``d`` et ``e`` ont des `inode` différents - - les fichiers ``a`` et ``c`` ont la même taille - - l'`inode` correspondant au fichier ``b`` indique qu'il y a deux liens vers lui - - -.. class:: negative - -- - - les fichiers ``a`` et ``c`` ont des `inodes` différents - - les fichiers ``e`` et ``d`` ont la même taille - - l'`inode` correspondant au fichier ``d`` indique qu'il y a trois liens vers lui - -- - - les fichiers ``a`` et ``d`` ont des `inode` différents - - les fichiers ``b`` et ``d`` ont la même taille - - l'`inode` correspondant au fichier ``b`` indique qu'il y a trois liens vers lui - - .. class:: comment - - Il y a deux liens (hard) vers le fichier ``b``. Le fichier ``e`` est un lien symbolique vers ce fichier et non un lien `hard`. - -- - - les fichiers ``b``, ``d`` et ``e`` ont le même `inode` - - les fichiers ``a`` et ``c`` ont la même taille - - l'`inode` correspondant au fichier ``a`` indique qu'il y a deux liens vers lui - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst diff --git a/Exercices/QCM/S9/src/readdir.c b/Exercices/QCM/S9/src/readdir.c deleted file mode 100644 index ce16a4d..0000000 --- a/Exercices/QCM/S9/src/readdir.c +++ /dev/null @@ -1,89 +0,0 @@ -/************************************** - * readdir.c - * - * Programme d'exemple d'utilisation de - * répertoires - * - *************************************/ -///AAA -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <dirent.h> - -void exit_on_error(char *s) { - perror(s); - exit(EXIT_FAILURE); -} - -/* - * name!=NULL - * retourne le nombre de fichiers dans le répertoire name - * et -1 en cas d'erreur - */ - -int nfiles(char * name) { - - DIR *dirp; - struct dirent *dp; - dirp=malloc(sizeof(DIR)); - if(dirp==NULL) { - return(-1); - } - dp=malloc(sizeof(struct dirent)); - if(dp==NULL) { - return -1; - } - dirp = opendir(name); - if(dirp==NULL) { - return -1; - } - int count=0; - while ((dp = readdir(dirp)) != NULL) { - if (dp->d_type==DT_REG) { - count++; - } - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); -} - - -int main (int argc, char *argv[]) { - - - - - DIR *dirp; - struct dirent *dp; - dirp=malloc(sizeof(DIR)); - if(dirp==NULL) { - exit_on_error("malloc"); - } - dp=malloc(sizeof(struct dirent)); - if(dp==NULL) { - exit_on_error("malloc"); - } - char name[]="."; - dirp = opendir(name); - if(dirp==NULL) { - exit_on_error("opendir"); - } - int count=0; - while ((dp = readdir(dirp)) != NULL) { - if (dp->d_type==DT_REG) { - count++; - } - } - printf ("%d fichiers - int err = closedir(dirp); - if(err<0) { - exit_on_error("closedir"); - } - - -} -///BBB diff --git a/Exercices/QCM/S9/src/readdir2.c b/Exercices/QCM/S9/src/readdir2.c deleted file mode 100644 index 4b1ba58..0000000 --- a/Exercices/QCM/S9/src/readdir2.c +++ /dev/null @@ -1,76 +0,0 @@ -/************************************** - * readdir.c - * - * Programme d'exemple d'utilisation de - * répertoires - * - *************************************/ -///AAA -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <dirent.h> - -void exit_on_error(char *s) { - perror(s); - exit(EXIT_FAILURE); -} - -/* - * name!=NULL - * retourne le nombre de fichiers dans le répertoire name - * et -1 en cas d'erreur - */ - -int nfiles(char * name) { - - DIR *dirp; - struct dirent *dp; - dirp = opendir(name); - if(dirp==NULL) { - return -1; - } - int count=0; - while ((dp = readdir(dirp)) != NULL) { - if (dp->d_type==DT_REG) { - count++; - } - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); -} - -/* -int nfiles2(char * name) { - - DIR dirp; - struct dirent dp; - dirp = opendir(name); - if(dirp==-1) { - return -1; - } - int count=0; - while ((dp = readdir(dirp)) != -1) { - if (dp->d_type==DT_REG) { - count++; - } - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); -} -*/ - -int main (int argc, char *argv[]) { - - - - printf("%d \n",nfiles(".")); - -} -///BBB diff --git a/Exercices/QCM/qcm.rst.old b/Exercices/QCM/qcm.rst.old deleted file mode 100644 index 102313c..0000000 --- a/Exercices/QCM/qcm.rst.old +++ /dev/null @@ -1,45 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript" src="js/prettify.js"></script> - <script type="text/javascript">$nmbr_prop = 4</script> - - -=================== -Semaine -=================== - -Question ---------- - -Considérons le programme C ci-dessous qui permet de manipuler les arguments passés en ligne de commande. - - .. code-block:: c - - #include <stdlio.h> - #include <stdlib.h> - int main(int argc, const char *argv[]) - { - int a = atoi(argv[1]); - printf("%d\n", a); - } - -Parmi les groupes d'affirmations ci-dessous, un seul ne contient que des affirmations qui sont toutes vraies. Lequel ? - - -.. class:: positive - - - -.. class:: negative - - .. class:: comment - - - diff --git a/Exercices/QCM/rst-form/css/html4css1.css b/Exercices/QCM/rst-form/css/html4css1.css deleted file mode 100644 index 8160506..0000000 --- a/Exercices/QCM/rst-form/css/html4css1.css +++ /dev/null @@ -1,303 +0,0 @@ -/* -:Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 7056 2011-06-17 10:50:48Z milde $ -:Copyright: This stylesheet has been placed in the public domain. - -Default cascading style sheet for the HTML output of Docutils. - -See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to -customize this style sheet. -*/ - -/* used to remove borders from tables and images */ -.borderless, table.borderless td, table.borderless th { - border: 0 } - -table.borderless td, table.borderless th { - /* Override padding for "table.docutils td" with "! important". - The right padding separates the table cells. */ - padding: 0 0.5em 0 0 ! important } - -.first { - /* Override more specific margin styles with "! important". */ - margin-top: 0 ! important } - -.last, .with-subtitle { - margin-bottom: 0 ! important } - -.hidden { - display: none } - -a.toc-backref { - text-decoration: none ; - color: black } - -blockquote.epigraph { - margin: 2em 5em ; } - -dl.docutils dd { - margin-bottom: 0.5em } - -object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] { - overflow: hidden; -} - -/* Uncomment (and remove this text!) to get bold-faced definition list terms -dl.docutils dt { - font-weight: bold } -*/ - -div.abstract { - margin: 2em 5em } - -div.abstract p.topic-title { - font-weight: bold ; - text-align: center } - -div.admonition, div.attention, div.caution, div.danger, div.error, -div.hint, div.important, div.note, div.tip, div.warning { - margin: 2em ; - border: medium outset ; - padding: 1em } - -div.admonition p.admonition-title, div.hint p.admonition-title, -div.important p.admonition-title, div.note p.admonition-title, -div.tip p.admonition-title { - font-weight: bold ; - font-family: sans-serif } - -div.attention p.admonition-title, div.caution p.admonition-title, -div.danger p.admonition-title, div.error p.admonition-title, -div.warning p.admonition-title { - color: red ; - font-weight: bold ; - font-family: sans-serif } - -/* Uncomment (and remove this text!) to get reduced vertical space in - compound paragraphs. -div.compound .compound-first, div.compound .compound-middle { - margin-bottom: 0.5em } - -div.compound .compound-last, div.compound .compound-middle { - margin-top: 0.5em } -*/ - -div.dedication { - margin: 2em 5em ; - text-align: center ; - font-style: italic } - -div.dedication p.topic-title { - font-weight: bold ; - font-style: normal } - -div.figure { - margin-left: 2em ; - margin-right: 2em } - -div.footer, div.header { - clear: both; - font-size: smaller } - -div.line-block { - display: block ; - margin-top: 1em ; - margin-bottom: 1em } - -div.line-block div.line-block { - margin-top: 0 ; - margin-bottom: 0 ; - margin-left: 1.5em } - -div.sidebar { - margin: 0 0 0.5em 1em ; - border: medium outset ; - padding: 1em ; - background-color: #ffffee ; - width: 40% ; - float: right ; - clear: right } - -div.sidebar p.rubric { - font-family: sans-serif ; - font-size: medium } - -div.system-messages { - margin: 5em } - -div.system-messages h1 { - color: red } - -div.system-message { - border: medium outset ; - padding: 1em } - -div.system-message p.system-message-title { - color: red ; - font-weight: bold } - -div.topic { - margin: 2em } - -h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, -h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { - margin-top: 0.4em } - -h1.title { - text-align: center } - -h2.subtitle { - text-align: center } - -hr.docutils { - width: 75% } - -img.align-left, .figure.align-left, object.align-left { - clear: left ; - float: left ; - margin-right: 1em } - -img.align-right, .figure.align-right, object.align-right { - clear: right ; - float: right ; - margin-left: 1em } - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left } - -.align-center { - clear: both ; - text-align: center } - -.align-right { - text-align: right } - -/* reset inner alignment in figures */ -div.align-right { - text-align: inherit } - -/* div.align-center * { */ -/* text-align: left } */ - -ol.simple, ul.simple { - margin-bottom: 1em } - -ol.arabic { - list-style: decimal } - -ol.loweralpha { - list-style: lower-alpha } - -ol.upperalpha { - list-style: upper-alpha } - -ol.lowerroman { - list-style: lower-roman } - -ol.upperroman { - list-style: upper-roman } - -p.attribution { - text-align: right ; - margin-left: 50% } - -p.caption { - font-style: italic } - -p.credits { - font-style: italic ; - font-size: smaller } - -p.label { - white-space: nowrap } - -p.rubric { - font-weight: bold ; - font-size: larger ; - color: maroon ; - text-align: center } - -p.sidebar-title { - font-family: sans-serif ; - font-weight: bold ; - font-size: larger } - -p.sidebar-subtitle { - font-family: sans-serif ; - font-weight: bold } - -p.topic-title { - font-weight: bold } - -pre.address { - margin-bottom: 0 ; - margin-top: 0 ; - font: inherit } - -pre.literal-block, pre.doctest-block, pre.math { - margin-left: 2em ; - margin-right: 2em } - -span.classifier { - font-family: sans-serif ; - font-style: oblique } - -span.classifier-delimiter { - font-family: sans-serif ; - font-weight: bold } - -span.interpreted { - font-family: sans-serif } - -span.option { - white-space: nowrap } - -span.pre { - white-space: pre } - -span.problematic { - color: red } - -span.section-subtitle { - /* font-size relative to parent (h1..h6 element) */ - font-size: 80% } - -table.citation { - border-left: solid 1px gray; - margin-left: 1px } - -table.docinfo { - margin: 2em 4em } - -table.docutils { - margin-top: 0.5em ; - margin-bottom: 0.5em } - -table.footnote { - border-left: solid 1px black; - margin-left: 1px } - -table.docutils td, table.docutils th, -table.docinfo td, table.docinfo th { - padding-left: 0.5em ; - padding-right: 0.5em ; - vertical-align: top } - -table.docutils th.field-name, table.docinfo th.docinfo-name { - font-weight: bold ; - text-align: left ; - white-space: nowrap ; - padding-left: 0 } - -h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, -h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { - font-size: 100% } - -ul.auto-toc { - list-style-type: none } diff --git a/Exercices/QCM/rst-form/css/prettify.css b/Exercices/QCM/rst-form/css/prettify.css deleted file mode 100644 index d44b3a2..0000000 --- a/Exercices/QCM/rst-form/css/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} \ No newline at end of file diff --git a/Exercices/QCM/rst-form/css/pygments.css b/Exercices/QCM/rst-form/css/pygments.css deleted file mode 100644 index 2c5a906..0000000 --- a/Exercices/QCM/rst-form/css/pygments.css +++ /dev/null @@ -1,62 +0,0 @@ -.highlight .hll { background-color: #ffffcc } -.highlight { background: #f8f8f8; } -.highlight .c { color: #408080; font-style: italic } /* Comment */ -.highlight .err { border: 1px solid #FF0000 } /* Error */ -.highlight .k { color: #008000; font-weight: bold } /* Keyword */ -.highlight .o { color: #666666 } /* Operator */ -.highlight .cm { color: #408080; font-style: italic } /* Comment.Multiline */ -.highlight .cp { color: #BC7A00 } /* Comment.Preproc */ -.highlight .c1 { color: #408080; font-style: italic } /* Comment.Single */ -.highlight .cs { color: #408080; font-style: italic } /* Comment.Special */ -.highlight .gd { color: #A00000 } /* Generic.Deleted */ -.highlight .ge { font-style: italic } /* Generic.Emph */ -.highlight .gr { color: #FF0000 } /* Generic.Error */ -.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ -.highlight .gi { color: #00A000 } /* Generic.Inserted */ -.highlight .go { color: #808080 } /* Generic.Output */ -.highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ -.highlight .gs { font-weight: bold } /* Generic.Strong */ -.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ -.highlight .gt { color: #0040D0 } /* Generic.Traceback */ -.highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ -.highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ -.highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ -.highlight .kp { color: #008000 } /* Keyword.Pseudo */ -.highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ -.highlight .kt { color: #B00040 } /* Keyword.Type */ -.highlight .m { color: #666666 } /* Literal.Number */ -.highlight .s { color: #BA2121 } /* Literal.String */ -.highlight .na { color: #7D9029 } /* Name.Attribute */ -.highlight .nb { color: #008000 } /* Name.Builtin */ -.highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */ -.highlight .no { color: #880000 } /* Name.Constant */ -.highlight .nd { color: #AA22FF } /* Name.Decorator */ -.highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */ -.highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ -.highlight .nf { color: #0000FF } /* Name.Function */ -.highlight .nl { color: #A0A000 } /* Name.Label */ -.highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ -.highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */ -.highlight .nv { color: #19177C } /* Name.Variable */ -.highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ -.highlight .w { color: #bbbbbb } /* Text.Whitespace */ -.highlight .mf { color: #666666 } /* Literal.Number.Float */ -.highlight .mh { color: #666666 } /* Literal.Number.Hex */ -.highlight .mi { color: #666666 } /* Literal.Number.Integer */ -.highlight .mo { color: #666666 } /* Literal.Number.Oct */ -.highlight .sb { color: #BA2121 } /* Literal.String.Backtick */ -.highlight .sc { color: #BA2121 } /* Literal.String.Char */ -.highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ -.highlight .s2 { color: #BA2121 } /* Literal.String.Double */ -.highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ -.highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */ -.highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ -.highlight .sx { color: #008000 } /* Literal.String.Other */ -.highlight .sr { color: #BB6688 } /* Literal.String.Regex */ -.highlight .s1 { color: #BA2121 } /* Literal.String.Single */ -.highlight .ss { color: #19177C } /* Literal.String.Symbol */ -.highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */ -.highlight .vc { color: #19177C } /* Name.Variable.Class */ -.highlight .vg { color: #19177C } /* Name.Variable.Global */ -.highlight .vi { color: #19177C } /* Name.Variable.Instance */ -.highlight .il { color: #666666 } /* Literal.Number.Integer.Long */ diff --git a/Exercices/QCM/rst-form/css/rst-form.css b/Exercices/QCM/rst-form/css/rst-form.css deleted file mode 100644 index cd42025..0000000 --- a/Exercices/QCM/rst-form/css/rst-form.css +++ /dev/null @@ -1,62 +0,0 @@ -/* -:Author: 3.14r -:Contact: 3@14r.com -:Copyright: This stylesheet has been placed in the public domain. - -Stylesheet for use with Docutils. - -*/ - -/* @import url(html4css1.css); */ - - -/* Your customizations go here. For example: */ - -body { - padding: 2% 5% 0 5%; -} - -h1, h2, h3 { - background-color: #2c5aa0; - padding: 3px 0 3px 40px; - color: white; - border-radius: 10px 0 0 10px; - -moz-border-radius: 10px 0 0 10px; - -webkit-border-radius: 10px 0 0 10px; - font-size: 150%; -} -h1.title { - text-align: left; -} - -div.section { - margin-top: 35px; - margin-bottom: 10px; -} - -.checker>h1, div.section>h1 { - font-size: 100%; -} - -li p.first { - display: inline; -} - -li>img.checkmark { - margin-left: -50px; -} - -ul { - list-style-type: none; -} - -input[type=radio] { - margin-right: 15px; - vertical-align: center; -} - -.result { - display: inline; - margin-left: 30px; - font-weight: bold; -} diff --git a/Exercices/QCM/rst-form/images/correct.png b/Exercices/QCM/rst-form/images/correct.png deleted file mode 100644 index 7f6e8675d08f0744d3839536a2d6004ce92e90f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1870 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 IM6N<$g0CN2r~m)} diff --git a/Exercices/QCM/rst-form/images/false.png b/Exercices/QCM/rst-form/images/false.png deleted file mode 100644 index c2ea1ab74e1a161151754adf7d2055e5e1b0c897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1099 zcmV-R1ho5!P)<h;3K|Lk000e1NJLTq001%o001-y1^@s6$YyJ-00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2iyn& z2^1hZ^_D^a000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000A~Nkl<Z zXx{CbPlyyp6vltg(L^JdLnH>tqF!ns27>4+D*j_##ES@m8pJ=B9Lzz~qj>ZpB;JyM z7Y`~b!5kvF$rAM<A|fhi)x||bP$Y;*4z8KXp=#*avAe9E=^A@s9}La(bamBN@B3c8 zS2Zwg(>86Dm;v$EhyGeCn-TMn2C=Z!fCZGl&Y4m`3?Q&Z;IFPW`|1QlB57sw?yJc5 zwV_slSq&R1(%(!C4Fipj0Yn7e^doxhK>TW9Lf{?lgB~ytEZkQ8@%prdgOa_^8n6Oi z=oDfH?iUHnz;KV=I05`1li%0=`m$Ly5I^H%0k5nz<v|=0I5zO86^dMCqnClBz)zvR zEi3`Xn~5}XwxClCT#ga8hEu@L0T33TSrSB9Aaj9Mo=YuE=nw1coWPNA>~P*SDXA5r zmvyr!fp%wr0}*-@lj$;zM~ut2_6L67pGPMTbT=Pz1$^Hth*Ch5>+fa2ttZX<Iob@r zE_@mSAr9yzHHfIyF~C-!-2w$K+A|x9bRD)4xYiGdUNi!*0=Sja)&ioky2WM_UhIsj z63?Dq5*nm+S-=u;QLYe#1!;n47bpe~q}{Q0-0v|(<DG&}`Vn_k9+_p~t%Rvl1mYhB z^J`I$SeWqZMp+PVQh?|gNHbd_#v&24g*~r!6`~htBa*+Oys&Er#1CpB^6^nBicTpi z#1p{g2wJ^TaJ6=u4;}P4980U(?V=b@51&7M7TK)P>xM$A3b9Q7lq?mgvK}eB2)5CD zBk)kwz$5<xvm@K&f=%g_sO=yF;~@~9YkO5jp+`B7wG7<(m}1`sEDCu-;Gl)`9k+fd z=<7QJf0{v4%fLDd*CouMJpvb0M-cF5DLa7Q3pn>V@LHt?5)q*+u7+PPa6=UrVXJ_f zd79~GqoI^Xj7vWn1;rD<vL@V(SU|r8?&owguG~gkI*n-93Ct`gX8}fHK=}OXfxxDm z$yltNw~~r|nD;m1S{5EFcbqU*rV|B!1IN3mAh6P8Ct=B`WxL$)v<X9fWXmG33%Jnb znU=s+1zS>33k$1(=fE?8h5dl=6tloZV5D<?#EoIpz`c$jQF-_!MM_~ZAl=dIxq`1M zUl3E}MK()UzP6L^FVLV33{`$&mBKnI#b>~33xC)w04U&zz;a!qQ{yth;7bF)8F!A@ z^4A}k%4Xn(2VxDpGO(tW)QYfm%B4Wtf&YLj29|1=#Z)&9bNcy1!L$w9{s;OG5|!dY RQYHWZ002ovPDHLkV1j2J;XnWY diff --git a/Exercices/QCM/rst-form/js/jquery-1.7.2.min.js b/Exercices/QCM/rst-form/js/jquery-1.7.2.min.js deleted file mode 100644 index 16ad06c..0000000 --- a/Exercices/QCM/rst-form/js/jquery-1.7.2.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.2 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( -a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f -.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1></$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]==="<table>"&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[k];k++){h=j[k];if(e&&f.nodeName(h,"script")&&(!h.type||be.test(h.type)))e.push(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.grep(h.getElementsByTagName("script"),g);j.splice.apply(j,[k+1,0].concat(v))}d.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\([^)]*\)/i,bq=/opacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,bu=/^([\-+])=([\-+.\de]+)/,bv=/^margin/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Top","Right","Bottom","Left"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(ct("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks[g])&&"expand"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(h)?(q=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),q?(f._data(this,"toggle"+i,q==="show"?"hide":"show"),j[q]()):j[h]()):(m=cn.exec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?"":"px"),p!=="px"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&&(o=(m[1]==="-="?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct("show",1),slideUp:ct("hide",1),slideToggle:ct("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){f._data(e.elem,"fxshow"+e.prop)===b&&(e.options.hide?f._data(e.elem,"fxshow"+e.prop,e.start):e.options.show&&f._data(e.elem,"fxshow"+e.prop,e.end))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf("margin")&&(f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?cv=function(a,b,c,d){try{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTop||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scrollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scrollLeft,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.currentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){if(f.support.fixedPosition&&j.position==="fixed")break;d=i?i.getComputedStyle(a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),j=d}if(j.position==="relative"||j.position==="static")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position==="fixed"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=this[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.bodyOffset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/Exercices/QCM/rst-form/js/jquery-shuffle-another.js b/Exercices/QCM/rst-form/js/jquery-shuffle-another.js deleted file mode 100644 index 4d816f2..0000000 --- a/Exercices/QCM/rst-form/js/jquery-shuffle-another.js +++ /dev/null @@ -1,15 +0,0 @@ -/** - * jQuery Shuffle (http://mktgdept.com/jquery-shuffle) - * A jQuery plugin for shuffling a set of elements - * - * v0.0.1 - 13 November 2009 - * - * Copyright (c) 2009 Chad Smith (http://twitter.com/chadsmith) - * Dual licensed under the MIT and GPL licenses. - * http://www.opensource.org/licenses/mit-license.php - * http://www.opensource.org/licenses/gpl-license.php - * - * Shuffle elements using: $(selector).shuffle() or $.shuffle(selector) - * - **/ -(function(d){d.fn.shuffle=function(c){c=[];return this.each(function(){c.push(d(this).clone(true))}).each(function(a,b){d(b).replaceWith(c[a=Math.floor(Math.random()*c.length)]);c.splice(a,1)})};d.shuffle=function(a){return d(a).shuffle()}})(jQuery); \ No newline at end of file diff --git a/Exercices/QCM/rst-form/js/jquery-shuffle.js b/Exercices/QCM/rst-form/js/jquery-shuffle.js deleted file mode 100644 index ec707c0..0000000 --- a/Exercices/QCM/rst-form/js/jquery-shuffle.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * jQuery shuffle - * - * Copyright (c) 2008 Ca-Phun Ung <caphun at yelotofu dot com> - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://yelotofu.com/labs/jquery/snippets/shuffle/ - * - * Shuffles an array or the children of a element container. - * This uses the Fisher-Yates shuffle algorithm <http://jsfromhell.com/array/shuffle [v1.0]> - */ - -(function($){ - - $.fn.shuffle = function() { - return this.each(function(){ - var items = $(this).children().clone(true); - return (items.length) ? $(this).html($.shuffle(items)) : this; - }); - } - - $.shuffle = function(arr) { - for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x); - return arr; - } - -})(jQuery); diff --git a/Exercices/QCM/rst-form/js/prettify.js b/Exercices/QCM/rst-form/js/prettify.js deleted file mode 100644 index eef5ad7..0000000 --- a/Exercices/QCM/rst-form/js/prettify.js +++ /dev/null @@ -1,28 +0,0 @@ -var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; -(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= -[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c< -f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&& -(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r= -{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length, -t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b=== -"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), -l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, -q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, -q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, -"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), -a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} -for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value", -m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m= -a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue= -j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], -"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], -H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], -J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ -I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), -["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", -/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), -["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", -hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b= -!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m, -250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit", -PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})(); diff --git a/Exercices/QCM/rst-form/js/random_selector.js b/Exercices/QCM/rst-form/js/random_selector.js deleted file mode 100644 index cad1d8f..0000000 --- a/Exercices/QCM/rst-form/js/random_selector.js +++ /dev/null @@ -1,25 +0,0 @@ -/* Code from http://blog.mastykarz.nl/jquery-random-filter/ */ - -jQuery.jQueryRandom = 0; -jQuery.extend(jQuery.expr[":"], -{ - random: function(a, i, m, r) { - if (i == 0) { - jQuery.jQueryRandom = Math.floor(Math.random() * r.length); - }; - return i == jQuery.jQueryRandom; - } -}); -/* - * <ul> - * <li>First</li> - * <li>Second</li> - * <li>Third</li> - * </ul> - * <script type="text/javascript"> - * $().ready(function() { - * alert($("li:random").text()); - * }); - * </script> - * - */ diff --git a/Exercices/QCM/rst-form/js/rst-form.js b/Exercices/QCM/rst-form/js/rst-form.js deleted file mode 100644 index 7e6e8d8..0000000 --- a/Exercices/QCM/rst-form/js/rst-form.js +++ /dev/null @@ -1,43 +0,0 @@ - -$(function() { - if (typeof $nmbr_prop == 'undefined') { - $nmbr_prop = Infinity; - } - $('.comment').not('.preproc').hide(); - $('ul.positive').before('<ul class="proposals"></ul>'); - $('ul.positive').each(function(index) { - $(this).shuffle().children('li').first() - .prependTo($(this).parent().children('ul.proposals')) - .attr('class', 'correct'); - }); - $('ul.negative').each(function(index) { - $(this).shuffle(); - $(this).children('li').slice(0, $nmbr_prop-1).each(function(index) { - $(this) - .prependTo($(this).parent().parent().children('ul.proposals')) - .attr('class', 'false'); - }); - }); - $('ul.proposals').each(function(index) { - $(this).shuffle(); - $('<input type="radio" name="' + $(this).parent().attr('id') + '">').prependTo($(this).children('li')); - }); - $('ul.positive').hide(); - $('ul.negative').hide(); - $('body').append('<div id="checker" class="checker"><h1>Vérifiez vos réponses</h1><input type="submit" value="Vérifier" id="verifier"></div>'); - $('#verifier').click(function () { - $('.comment').not('.preproc').hide(); - $('.checkmark').remove(); - $('.result').remove(); - $('li.false input:checked').parent().prepend('<img class="checkmark" src="images/false.png" style="display: none;"></img>'); - $('li.correct input:checked').parent().prepend('<img class="checkmark" src="images/correct.png" style="display: none;"></img>'); - $('.checkmark').show(); - $('input:checked').parent().children('.comment').show('slow'); - $('#checker').append('<div class="result">Votre score est de ' + - $('li.correct input:checked').length + '/' + - $('ul.proposals').length + '</div>'); - }); - $('pre.literal-block').addClass('prettyprint'); - prettyPrint(); -}); - diff --git a/Exercices/QCM/rst-form/readme.txt b/Exercices/QCM/rst-form/readme.txt deleted file mode 100644 index 7ad79b2..0000000 --- a/Exercices/QCM/rst-form/readme.txt +++ /dev/null @@ -1,5 +0,0 @@ -Pour compiler -------------- - -:: - rst2html --stylesheet css/rst-form.css --link-stylesheet test.rst > test.html diff --git a/Exercices/QCM/rst-form/test.rst b/Exercices/QCM/rst-form/test.rst deleted file mode 100644 index e201f57..0000000 --- a/Exercices/QCM/rst-form/test.rst +++ /dev/null @@ -1,112 +0,0 @@ - -.. raw:: html - - <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> - <script type="text/javascript" src="js/jquery-shuffle.js"></script> - <script type="text/javascript" src="js/rst-form.js"></script> - <script type="text/javascript">$nmbr_prop = 4</script> - -================= -Questionnaire RST -================= - -Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor -incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis -nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu -fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in -culpa qui officia deserunt mollit anim id est laborum. - -Question 1. 'Dérivées de polynomes' -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Lorsque l'on dérive le polynome :math:`x^4+3 \times x^2 +5 \times x+12`, on -obtient notamment le terme : - -.. class:: positive - -- :math:`4 \times x^3` -- :math:`5` -- :math:`6 \times x` - -.. class:: negative - -- :math:`4 \times x^2` - - .. class:: comment - - La dérivée de :math:`a \times x^n` est :math:`a \times n \times x^{n-1}` -- :math:`5 \times x` - - .. class:: comment - - La dérivée de :math:`a \times x^n` est :math:`a \times n \times x^{n-1}` -- :math:`12` - - .. class:: comment - - La dérivée d'un entier est :math:`0` - -Question 2. 'Dérivées de polynomes' -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Lorsque l'on dérive le polynome :math:`x^4+3 \times x^2 +5 \times x+12`, on -obtient notamment le terme : - -.. class:: positive - -- :math:`4 \times x^3` -- :math:`5` -- :math:`6 \times x` - -.. class:: negative - -- :math:`4 \times x^2` - - .. class:: comment - - La dérivée de :math:`a \times x^n` est :math:`a \times n \times x^{n-1}` -- :math:`5 \times x` - - .. class:: comment - - La dérivée de :math:`a \times x^n` est :math:`a \times n \times x^{n-1}` -- :math:`12` - - .. class:: comment - - La dérivée d'un entier est :math:`0` - - -Question 3. 'Dérivées de polynomes' -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Lorsque l'on dérive le polynome :math:`x^4+3 \times x^2 +5 \times x+12`, on -obtient notamment le terme : - -.. class:: positive - -- :math:`4 \times x^3` -- :math:`5` -- :math:`6 \times x` - -.. class:: negative - -- :math:`4 \times x^2` - - .. class:: comment - - La dérivée de :math:`a \times x^n` est :math:`a \times n \times x^{n-1}` -- :math:`5 \times x` - - .. class:: comment - - La dérivée de :math:`a \times x^n` est :math:`a \times n \times x^{n-1}` -- :math:`12` - - .. class:: comment - - La dérivée d'un entier est :math:`0` - - - diff --git a/Exercices/_static b/Exercices/_static deleted file mode 120000 index 7a2b653..0000000 --- a/Exercices/_static +++ /dev/null @@ -1 +0,0 @@ -../_static \ No newline at end of file diff --git a/Exercices/_templates/layout.html b/Exercices/_templates/layout.html deleted file mode 100644 index 289d380..0000000 --- a/Exercices/_templates/layout.html +++ /dev/null @@ -1,4 +0,0 @@ -{% extends "!layout.html" %} -{% block extrahead %} -{% endblock %} - diff --git a/Exercices/benchmark.rst.old b/Exercices/benchmark.rst.old deleted file mode 100644 index 762a91d..0000000 --- a/Exercices/benchmark.rst.old +++ /dev/null @@ -1,39 +0,0 @@ -.. -*- coding: utf-8 -*- - -Evaluation des performances des appels systèmes -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Pour le troisième projet, vous devrez choisir un appel système, analyser la façon dont il doit être utilisé, sur base de sa page de manuel et de livres de référence et ensuite en évaluer ses performances. Pour cette évaluation de performances, vous devrez modifier le programme de benchmark développé par Benoît Legat, Nicolas Demol et Maxime Houtain : - - https://github.com/blegat/benchmark.git - -Pour s'exécuter, ce programme nécessite une version récente de `gnuplot <http://www.gnuplot.info>`_ , un programme permettant d'afficher des données de façon graphique. Téléchargez les sources de ce programme et installez-le en faisant : - -.. code:: console - - - wget http://sourceforge.net/projects/gnuplot/files/gnuplot/4.6.5/gnuplot-4.6.5.tar.gz - tar xzvf gnuplot-4.6.5.tar.gz - cd gnuplot-4.6.5 - ./configure - make - -Le programme gnuplot est maintenant compilé et prêt à être utilisé. Le programme exécutable est dans le répertoire gnuplot-4.6.5/src/gnuplot - -Chargez le programme de benchmark et compilez-le comme suit : - -.. code:: console - - git clone https://github.com/blegat/benchmark.git - cd benchmark - PATH=~/src/gnuplot-4.6.5/src:${PATH} ./bootstrap.sh - make - -La troisième commande permet de forcer l'utilisation de la version récente de gnuplot que vous avez installé à la place de la version par défaut du système qui n'est pas supportée par l'outil de benchmark. Une fois le benchmark compilé, vous pouvez l'exécuter et tester les benchmarks fournis. Commencez par ceux qui se trouvent dans les répertoires suivants : - - - ``tab`` - - ``thread`` - - ``amdahl`` - - ``types`` - -Pour exécuter un benchmark, lancez simplement ``make show`` dans le répertoire du benchmark. Il exécutera alors le benchmark et produira un fichier HTML contenant les résultats obtenus ainsi que des fichiers au format .csv avec les valeurs mesurées. Essayez d'interpréter les résultats obtenus. Pouvez-vous justifier l'évolution des performances que vous observez ? diff --git a/Exercices/bib.rst b/Exercices/bib.rst deleted file mode 100644 index 97c0a1e..0000000 --- a/Exercices/bib.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -************* -Bibliographie -************* - - -.. [Downey2008] Downey, A., `The Little Book of Semaphores`, Second Edition, Green Tea Press, 2008, - -.. [IA32] intel, `Intel® 64 and IA-32 Architectures : Software Developer’s Manual`, Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B and 3C, December 2011, http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf - -.. [Kerrisk2010] Kerrisk, M., `The Linux Programming Interface`, No Starch Press, 2010, http://my.safaribooksonline.com/book/programming/linux/9781593272203 - diff --git a/Exercices/conf.py b/Exercices/conf.py deleted file mode 100644 index 75f6935..0000000 --- a/Exercices/conf.py +++ /dev/null @@ -1,320 +0,0 @@ -# -*- coding: utf-8 -*- -# -# SINF1252 documentation build configuration file, created by -# sphinx-quickstart on Tue Jan 3 16:17:09 2012. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' -sys.path.append(os.path.abspath('mcq')) -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.todo', 'sphinx.ext.ifconfig', 'sphinx.ext.mathjax', 'sphinx.ext.intersphinx','mcq' ] - - -# mcq - -mcq_nb_prop=3 -mcq_upload_url='http://inginious.info.ucl.ac.be' -mcq_inginious_url='http://inginious.info.ucl.ac.be/cnp3' - -# ucomment -#sys.path.append(os.path.abspath(os.getcwd())) -#extensions.append('ucomment-extension') -#html_translator_class = 'ucomment-extension.ucomment_html_translator' - -# Point to your Django application, which contains all -# the other settings required. -#ucomment = {} -#ucomment['django_application_path'] = '/home/cpaasch/sinf1252/ucommentsite/ucommentapp' - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -source_encoding = 'utf-8' -#source_encoding = 'latin1' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'SINF1252 : Exercices ' -copyright = u'2012-2014, O. Bonaventure, G. Detal, C. Paasch' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '2014' -# The full version, including alpha/beta/rc tags. -release = '2014' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -language = 'fr' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build', '.#*', '*/.#*', 'QCM/*' ] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -rst_epilog = """ -.. include:: /../Theorie/links.rst -.. include:: /../Theorie/man_links.rst -.. include:: /../Theorie/incl_links.rst -""" - -# Intersphinx -intersphinx_mapping = {'theorie': ('https://sites.uclouvain.be/SystInfo/notes/Theorie/html/', None), 'outils': ('https://sites.uclouvain.be/SystInfo/notes/Outils/html/', None), 'exercices': ('https://sites.uclouvain.be/SystInfo/notes/Exercices/html/', None)} - - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'haiku' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# "<project> v<release> documentation". -html_title = u'Systèmes informatiques' - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static', 'mcq/static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a <link> tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'SINF1252doc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -'papersize': 'a4paper', - -# The font size ('10pt', '11pt' or '12pt'). -'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'SINF1252.tex', u'SINF1252', - u'O. Bonaventure, G. Detal, C. Paasch', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'sinf1252', u'SINF1252', - [u'O. Bonaventure, G. Detal, C. Paasch'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'SINF1252', u'SINF1252', - u'O. Bonaventure, G. Detal, C. Paasch', 'SINF1252', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - - -# -- Options for Epub output --------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = u'SINF1252' -epub_author = u'O. Bonaventure, G. Detal, C. Paasch' -epub_publisher = u'O. Bonaventure, G. Detal, C. Paasch' -epub_copyright = u'2013, O. Bonaventure, G. Detal, C. Paasch' - -# The language of the text. It defaults to the language option -# or en if the language is not set. -#epub_language = '' - -# The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -#epub_identifier = '' - -# A unique identification for the text. -#epub_uid = '' - -# A tuple containing the cover image and cover page html template filenames. -#epub_cover = () - -# HTML files that should be inserted before the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_pre_files = [] - -# HTML files shat should be inserted after the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_post_files = [] - -# A list of files that should not be packed into the epub file. -#epub_exclude_files = [] - -# The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 - -# Allow duplicate toc entries. -#epub_tocdup = True - -#try: -# open('.staff','r') -# tags.add('staff') -# print "Build as staff member" -#except: -# print "Build as student" diff --git a/Exercices/index.rst b/Exercices/index.rst deleted file mode 100644 index 4b73b27..0000000 --- a/Exercices/index.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -################################## -Systèmes informatiques : Exercices -################################## - - -.. only:: html - - Ce site web contient les exercices du cours `SINF1252 <http://www.uclouvain.be/cours-2015-LSINF1252.html>`_ donné aux `étudiants en informatique <http://www.uclouvain.be/info.html>`_ à l'`Université catholique de Louvain <http://www.uclouvain.be>`_ (UCL). Les étudiants sont invités à ajouter leur commentaires en soumettant des patches via https://github.com/obonaventure/SystemesInformatiques - -********* -Exercices -********* - -.. toctree:: - :maxdepth: 2 - - intro - bib - -.. Projets/P1/projet-1 -.. Projets/P2/enonce -.. Projets/P3/enonce diff --git a/Exercices/intro.rst b/Exercices/intro.rst deleted file mode 100644 index e641d51..0000000 --- a/Exercices/intro.rst +++ /dev/null @@ -1,220 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Introduction -============ - -Cette section comprend deux types d'exercices afin de permettre aux étudiants de mieux ancrer leur compréhension des bases des systèmes informatiques. Les premiers sont des questionnaires à choix multiples. Pour chaque module de cours, entre 5 et 10 questions à choix multiples seront proposées. Elles permettront à chaque étudiant(e) de valider sa compréhension de la matière. Ensuite, les étudiants seront invités à écrire de petits programmes, généralement en langage C. Ces programmes sont l'occasion de mettre en pratique les compétences acquises chaque semaine. La plupart des programmes ont un rôle formatif, ils permettront de guider la discussion avec les tuteurs durant les séances tutorées. Enfin, deux projets de groupe seront proposés aux étudiants. Leur évaluation contribuera à la cote finale. - - -Première semaine ----------------- - -La matière couverte cette semaine correspond à l'`introduction aux systèmes informatiques <https://sites.uclouvain.be/SystInfo/notes/Theorie/html/intro.html>`_ et au `langage C <https://sites.uclouvain.be/SystInfo/notes/Theorie/html/C/intro-C.html>`_ . Le volet pratique est important et les sections relatives au `shell <https://sites.uclouvain.be/SystInfo/notes/Outils/html/shell.html>`_ et aux `processus <https://sites.uclouvain.be/SystInfo/notes/Outils/html/processus.html>`_ de la section dédiée aux `autres outils <https://sites.uclouvain.be/SystInfo/notes/Outils/html>`_ devraient vous être utiles. - - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-1 - Programmes/prog-1 - - -Deuxième semaine ----------------- - -La matière couverte cette semaine correspond à la section relative aux `types de données <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/C/datatypes.html#les-expressions-de-manipulation-de-bits>`_ (jusque et y compris la section relative aux `expressions de manipulation de bits <http://sites.uclouvain.be/SystInfo/notes/Theorie/C/datatypes/#les-expressions-de-manipulation-de-bits>`_) - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-2 - Programmes/prog-2 - - -Troisième semaine ------------------ - -La matière couverte cette semaine correspond aux sections relative à l'`organisation de la mémoire <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/C/malloc.html#organisation-de-la-memoire>`_ Vous commencez à développer des programmes complets, le debugger `gdb <https://sites.uclouvain.be/SystInfo/notes/Outils/html/gdb.html>`_ pourrait vous aider. Il est décrit dans la section `gdb <https://sites.uclouvain.be/SystInfo/notes/Outils/html/gdb.html>`_ - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-3 - Programmes/prog-3 - - -Quatrième semaine ------------------ - -Durant les dernières semaines, vous avez appris les bases de l'écriture de fonctions en C. L'objectif de cette semaine est de vous amener à être capable d'écrire des programmes comprenant plusieurs fonctions. -La matière couverte cette semaine correspond aux sections : - - - :ref:`theorie:ordinateurs` - - :ref:`theorie:complementsC` - -En outre, vous devrez aussi lire les sections de la partie Outils qui sont relatives à - -- :ref:`outils:make` -- :ref:`outils:ref_cunit` - - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-4 - Programmes/prog-4 - - -Cinquième semaine ------------------ - - -La matière de cette semaine porte sur l'utilisation du système de fichiers et les ``pipe``. Elle est décrite dans les sections : - - - :ref:`theorie:utilisateurs` - - :ref:`theorie:fichiers` - - :ref:`theorie:pipe` - - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-9 - Programmes/prog-5 - - -Sixième semaine ---------------- - -La matière couverte cette semaine correspond aux sections : - - - - :ref:`theorie:threads` (sauf la section `Utilisation d'instruction atomique`) - - :ref:`theorie:comthreads` (jusqu'à la section `Le problème des philosophes`) - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-6 - Programmes/prog-6 - - -Septième semaine ----------------- - -La matière de cette semaine porte sur l'utilisation des mutex et des sémaphores et quelques compléments sur les threads. Elle est décrite dans la section : - - - :ref:`theorie:comthreads` (à partir de la section `Le problème des philosophes`) - - :ref:`theorie:coordinationthreads` - -En outre, vous devrez aussi lire les sections de la partie Outils qui sont relatives à - -- :ref:`outils:valgrind-ref` -- :ref:`outils:gdb-ref` - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-7 - Programmes/prog-7 - -Huitième semaine ----------------- - -La matière de cette semaine porte sur le fonctionnement des processus. Elle est décrite dans la section : - - - :ref:`theorie:processus` - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-8 - Programmes/prog-8 - - - -Neuvième semaine ----------------- - -La matière de cette semaine porte sur les pipes, la mémoire virtuelle et les fichiers mappés en mémoire : - - - :ref:`theorie:pipe` - - :ref:`theorie:vmem` - - :ref:`theorie:fctvmem` - - :ref:`theorie:stockage` - - :ref:`theorie:remplacement` - - :ref:`theorie:mmap` - - -.. only:: html - - `QCM11 <http://sites.uclouvain.be/SystInfo/qcm/Mission-11-qcm.html>`_ - - -Séance tutorée -^^^^^^^^^^^^^^ - -.. toctree:: - :maxdepth: 2 - - Programmes/prog-11 - - -Dixième semaine ---------------- - -La matière de cette semaine porte sur les utilisations avancées de la mémoire virtuelle, les sméaphores nommés et le partage de fichiers : - - - :ref:`theorie:shmem` - - :ref:`theorie:forkmem` - - :ref:`theorie:vmstat` - - :ref:`theorie:execvmem` - - :ref:`theorie:semname` - - :ref:`theorie:fileshare` - -Séance tutorée -^^^^^^^^^^^^^^ - -.. toctree:: - :maxdepth: 2 - - Programmes/prog-12 - -Onzième semaine ---------------- - -La matière de cette semaine porte sur l'utilisation du processeur intel 32 bits en langage assembleur - - - `Organisation des ordinateurs <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Assembleur/memory.html>`_ - - `Etude de cas : IA32 <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Assembleur/memory.html#etude-de-cas-architecture-ia32>`_ - - -Séance tutorée -^^^^^^^^^^^^^^ - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-4-asm - Programmes/prog-4-asm - - -Douzième semaine ----------------- - -La matière de cette semaine porte sur les signaux, les sémaphores nommés et le partage de fichiers : - - - :ref:`theorie:signaux` - - -Séance tutorée -^^^^^^^^^^^^^^ - -.. toctree:: - :maxdepth: 2 - - mcq-ex/qcm-10 - Programmes/prog-10 - diff --git a/Exercices/mcq-ex/qcm-1.rst b/Exercices/mcq-ex/qcm-1.rst deleted file mode 100644 index 9cec873..0000000 --- a/Exercices/mcq-ex/qcm-1.rst +++ /dev/null @@ -1,301 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Questions à choix multiples -=========================== -:task_id: sinf1252-1 - -Ces questions ont pour objectif de vous permettre de tester vous-même votre compréhension de la matière couverte par cette mission de mise en route. Elles supposent que vous avez lu le premier chapitre du syllabus contenant l'introduction à Unix et au langage C. - - -Question 1. Commande `man(1)`_ ------------------------------- - -.. question:: man - :nb_prop: 3 - :nb_pos: 1 - - La commande `man(1)`_ permet de lire les pages de manuel d'un système Unix. Elle est particulièrement utile pour vérifier les arguments à donner à un programme en ligne de commande ou pour savoir comment utiliser certaines fonctions de la librairie standard ou appels systèmes. Comment faut-il appeler la commande `man(1)`_ pour lister toutes les pages de manuel dont le résumé contient le mot ''intro'' ? - - .. positive:: - - .. code-block:: console - - man -k intro - - .. negative:: - - .. code-block:: console - - man intro - - .. comment:: - - Cette commande permet d'obtenir la page dénommée ``intro`` mais uniquement dans la première section du manuel. Elle ne liste pas toutes les pages dont le résumé contient le mot clé ``intro``. - - .. negative:: - - .. code-block:: console - - man -k *intro* - - .. comment:: - - Par défaut, lorsque vous passez un argument tel que ``*intro*`` en ligne de commande, le shell va tenter de remplacer ``*intro*`` par tous les noms de fichiers du répertoire courant qui contiennent l'expression régulière qui commence par n'importe quelle suite de caractères, contient ``intro`` et se termine par n'importe quelle suite de caractères. Si le répertoire dans lequel vous exécutez cette commande contient les fichiers ``intro.txt`` et ``intro.dat``, ``man`` recevra ces deux noms de fichiers comme arguments. - - -Question 2. Commande `ls(1)`_ ------------------------------ - -.. question:: ls - :nb_prop: 3 - :nb_pos: 1 - - La commande `ls(1)`_ permet de lister le contenu d'un répertoire. Elle supporte de nombreux paramètres. Parmi les groupes d'affirmation suivants, un seul est valide, lequel ? - - .. positive:: - - - Dans un répertoire, la commande ``ls -a`` sans argument permet d'afficher la liste de tous les fichiers et répertoires présents - - La commande ``ls -r`` permet de lister les répertoires présents dans le répertoire courant en inversant l'ordre - - La commande ``ls -l`` permet d'obtenir la liste détaillée du contenu du répertoire courant avec toutes les informations relatives à chaque fichier et répertoire non cachés - - .. comment:: Réponse correcte. - - .. positive:: - - - Dans un répertoire, la commande ``ls -a`` sans argument permet d'afficher la liste de tous les fichiers et répertoires présents - - La commande ``ls -R`` permet de lister de façon récursive le contenu du répertoire courant et de ses sous-répertoires - - La commande ``ls -l`` permet d'obtenir la liste détaillée du contenu du répertoire courant avec toutes les informations relatives à chaque fichier et répertoire non cachés - - .. comment:: Réponse correcte. - - .. negative:: - - - Dans un répertoire, la commande ``ls *`` permet d'afficher la liste de tous les fichiers et répertoires présents - - La commande ``ls -f`` permet de lister le contenu du répertoire courant sans trier les fichiers par nom - - La commande ``ls -l`` permet d'obtenir la liste détaillée du contenu du répertoire courant avec toutes les informations relatives à chaque fichier et répertoire - - .. comment:: Relisez la page de manuel de `ls(1)`_. Sous Unix, le shell va remplacer ``*`` par l'ensemble des fichiers présents dans le répertoire courant - - .. negative:: - - - Dans un répertoire, l'appel à `ls(1)`_ sans argument permet d'afficher la liste de tous les fichiers et répertoires présents - - La commande ``ls -r`` permet de lister de façon récursive le contenu du répertoire courant et de ses sous-répertoires - - La commande ``ls -l`` permet d'obtenir la liste détaillée du contenu du répertoire courant avec toutes les informations relatives à chaque fichier et répertoire - - .. comment:: Relisez la page de manuel de `ls(1)`_. Sous Unix, l'appel à `ls(1)`_ sans argument dans le shell affichera l'ensemble des fichiers présents dans le répertoire courant - - - -Question 3. Premier programme en langage C ------------------------------------------- - -.. question:: hello - :nb_prop: 3 - :nb_pos: 1 - - - Depuis la publication du livre de référence [KernighanRitchie1998], le premier programme écrit en langage C affiche à l'écran la chaîne de caractères "Hello, world". Parmi les codes source ci-dessous, un seul est entièrement correct. Lequel ? - - - .. positive:: - - .. code-block:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - printf("Hello, world\n"); - } - - .. comment:: Réponse correcte. - - .. positive:: - - .. code-block:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - printf("Hello,"); - printf(" world\n"); - } - - .. comment:: Réponse correcte. - - .. negative:: - - .. code-block:: c - - #include <stdio.h> - void main(int argc, const char *argv[]) { - printf("Hello, world\n"); - } - - .. comment:: En C, contrairement à Java, la fonction ``main`` retourne une valeur de type ``int``. - - .. negative:: - - .. code-block:: c - - int main(int argc, const char *argv[]) { - printf("Hello, world\n"); - } - - - .. comment:: La fonction `printf(3)`_ utilisée par ce programme fait partie de la librairie standard de gestion des I/O. Pour l'utiliser, il faut inclure le header `stdio.h`_. Même si certains compilateurs pouvaient l'inclure par défaut, il est préférable de spécifier ce header explicitement. - - .. negative:: - - .. code-block:: c - - #include <stdlib.h> - int main() { - printf("Hello, world\n"); - } - - - .. comment:: En C, la signature de la fonction ``main`` est ``int main(int argc, const char *argv[])`` même si certains compilateurs peuvent être tolérants. `printf(3)`_ est défini via `stdio.h`_ et non `stdlib.h`_. - - .. negative:: - - .. code-block:: c - - #include <stdlib.h> - void main() - printf("Hello, world\n"); - } - - - .. comment:: En C, la signature de la fonction ``main`` est ``int main(int argc, const char *argv[])`` même si certains compilateurs peuvent être tolérants. `printf(3)`_ est défini via `stdio.h`_ et non `stdlib.h`_. - - -Question 4. Deuxième programme en langage C --------------------------------------------- - -.. question:: 2ndprog - :nb_prop: 3 - :nb_pos: 1 - - Votre deuxième programme en langage C doit afficher à l'écran la chaîne de caractères `SINF1252`. Lequel parmi les programmes ci-dessous affiche-t-il correctement cette chaîne de caractères ? - - .. positive:: - - .. code-block:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf("SINF%d\n", a); - } - - .. comment:: En C, la fonction `printf(3)`_ prend un nombre variable d'arguments. Le premier est toujours une spécification de formatage qui indique la chaîne de caractères à afficher. Les autres arguments sont des identifiants de variables dont les valeurs seront utilisées pour construire la chaîne de caractères à afficher. Le deuxième argument remplace le premier format `%d`, le troisième argument le deuxième format, etc. La page de manuel de `printf(3)`_ fournit de nombreux détails sur le fonctionnement de cette fonction qui accepte de nombreux paramètres. - - .. positive:: - - .. code-block:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf("SINF"); - printf("%d\n", a); - } - - .. comment:: En C, la fonction `printf(3)`_ prend un nombre variable d'arguments. Le premier est toujours une spécification de formatage qui indique la chaîne de caractères à afficher. Les autres arguments sont des identifiants de variables dont les valeurs seront utilisées pour construire la chaîne de caractères à afficher. Le deuxième argument remplace le premier format `%d`, le troisième argument le deuxième format, etc. La page de manuel de `printf(3)`_ fournit de nombreux détails sur le fonctionnement de cette fonction qui accepte de nombreux paramètres. - - .. negative:: - - .. code-block:: none - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf("SINF%a\n", a); - } - - .. comment:: Dans la fonction `printf(3)`_, ``%a`` est utilisé lorsque l'on veut placer dans une chaîne de caractères un nombre réel en notation hexadécimale. Dans ce cas, ``a`` étant un entier, il aurait fallu utiliser ``%d``. - - .. negative:: - - .. code-block:: none - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf(SINF); - printf(%d\n, a); - } - - .. comment:: En C, une chaîne de caractères (ou un descripteur de format pour `printf(3)`_ qui est aussi une chaîne de caractères) commence et se termine par le caractère ``"``. - - .. negative:: - - .. code-block:: c - - #include <stdio.h> - int main(int argc, const char *argv[]) { - int a = 1252; - printf("SINF$a\n", a); - } - - .. comment:: Dans la fonction `printf(3)`_ en C, et contrairement à d'autres langages, le caractère ``$`` ne joue pas de rôle particulier. Le programme ci-dessus affichera donc simplement ``SINF$a`` à l'écran. - - -Question 5. Arguments passés à un programme C ------------------------------------------------ - - -.. question:: args - :nb_prop: 3 - :nb_pos: 1 - - Considérons le programme C ci-dessous qui permet de manipuler les arguments passés en ligne de commande. - - .. code-block:: c - - - #include <stdio.h> - #include <stdlib.h> - int main(int argc, const char *argv[]) - { - int a = atoi(argv[1]); - printf("%d\n", a); - } - - - Parmi les groupes d'affirmations ci-dessous, un seul ne contient que des affirmations qui sont toutes vraies. Lequel ? - - - .. positive:: - - - Lors de l'exécution de la fonction ``main``, ``argc`` est initialisé au nombre d'arguments passés au programme (y compris le nom de l'exécutable lui-même). - - Lors de l'exécution de la fonction ``main``, le tableau ``argv[]`` contient dans ``argv[0]`` le nom du programme, dans ``argv[1]`` le premier argument, etc. - - La fonction ``atoi`` permet de convertir une chaîne de caractères en l'entier équivalent. - - .. comment:: Réponse correcte. - - .. negative:: - - - - Lors de l'exécution de la fonction ``main``, ``argc`` est initialisé à zéro. - - Lors de l'exécution de la fonction ``main``, le tableau ``argv[]`` contient dans ``argv[0]`` le premier argument, dans ``argv[1]`` le second argument, etc. - - La fonction ``atoi`` calcule la taille de son argument. - - .. comment:: Les trois affirmations sont fausses. ``argc`` sera toujours initialisé à un vu que le nom du programme est toujours passé en argument. Le premier élément du tableau ``argv[]``, ``argv[0]``, est le nom du programme qui est exécuté. Enfin, la fonction ``atoi`` permet de convertir une chaîne de caractères en l'entier équivalent. - - .. negative:: - - - Lors de l'exécution de la fonction ``main``, ``argc`` est le nombre maximum d'arguments que l'on peut lui passer. - - Lors de l'exécution de la fonction ``main``, le tableau ``argv[]`` contient dans ``argv[0]`` le premier argument, dans ``argv[1]`` le second argument, etc. - - La fonction ``atoi`` doit prendre comme argument une chaîne de caractères qui ne contient que des chiffres. - - .. comment:: Les deux premières affirmations sont fausses. ``argc`` contient le nombre d'arguments passés effectivement au programme. Le premier élément du tableau ``argv[]``, ``argv[0]``, est le nom du programme qui est exécuté. - - .. negative:: - - - Lors de l'exécution de la fonction ``main``, le tableau ``argv[]`` contient dans ``argv[0]`` le premier argument, dans ``argv[1]`` le second argument, etc. - - La fonction ``atoi`` permet de convertir une chaîne de caractères en l'entier équivalent. - - .. comment:: Le premier élément du tableau ``argv[]``, ``argv[0]``, est le nom du programme qui est exécuté. - diff --git a/Exercices/mcq-ex/qcm-10.rst b/Exercices/mcq-ex/qcm-10.rst deleted file mode 100644 index 77d6ecf..0000000 --- a/Exercices/mcq-ex/qcm-10.rst +++ /dev/null @@ -1,228 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. sectionauthor:: Gregory Vander Schueren <gregory.vanderschueren@student.uclouvain.be> - -Questions à choix multiples -=========================== - -:task_id: sinf1252-10 - -Question 1. Signaux synchrones et asynchrones ---------------------------------------------- - -Un signal est dit synchrone lorsqu'il est causé par l'exécution d'une instruction du processus. Un signal est dit asynchrone s'il n'a pas été causé directement par l'exécution d'un instruction du processus. - -.. question:: signal_sync_async - :nb_prop: 4 - :nb_pos: 2 - - Parmi les affirmations suivantes, lesquelles sont correctes ? - - .. positive:: - - - Le signal SIGFPE est synchrone. - - .. positive:: - - - Le signal SIGSEGV est synchrone. - - .. positive:: - - - Le signal SIGALRM est asynchrone. - - .. negative:: - - - Le signal SIGCHLD est synchrone. - - .. comment:: Ce signal indique qu'un processus fils s'est arrêté ou a fini son exécution. Il résulte d'une cause externe au programme. - - .. negative:: - - - Le signal SIGINT est synchrone. - - .. comment:: Ce signal est envoyé par le shell lorsque l'utlisateur tape Ctrl-C pendant l'exécution d'un programme. Il résulte d'une cause externe au programme. - - .. negative:: - - - Le signal SIGTERM est synchrone. - - .. comment:: Ce signal est le signal utilisé par défaut par la commande kill pour demander la fin d'un processus. Il résulte d'une cause externe au programme. - - .. negative:: - - - Le signal SIGBUS est synchrone. - - .. comment:: Ce signal correspond à une erreur matérielle. Il résulte d'une cause externe au programme. - - - -Question 2. Signaux pour arrêter un processus ---------------------------------------------- - - - -.. question:: signal_stop_process - :nb_prop: 4 - :nb_pos: 2 - - Trois signaux permettent d'arrêter un processus: SIGTERM, SIGINT et SIGKILL. Parmi les affirmations suivantes, lesquelles sont correctes ? - - .. positive:: - - - Envoyer un signal SIGKILL à un processus le termine toujours immédiatement. - - .. positive:: - - - Lorsque l'on tappe Ctrl-C dans le shell pendant l'exécution d'un programme, un signal SIGINT est envoyé au processus en cours d'exécution. - - .. positive:: - - - Envoyer un signal SIGTERM ou SIGINT est préférable à SIGKILL car le processus peut prévoir une routine de traitement de signal pour se terminer proprement. - - .. negative:: - - - Envoyer un signal SIGTERM à un processus le termine toujours immédiatement. - - .. comment:: Par défaut, la réception de ce signal provoque la terminaison du processus. Néanmoins, le processus peut prévoir une routine de traitement pour ce type de signal ou choisir d'ignorer ce type de signal. - - .. negative:: - - - Lorsque l'on tappe Ctrl-C dans le shell pendant l'exécution d'un programme, un signal SIGTERM est envoyé au processus en cours d'exécution. - - .. comment:: C'est un signal SIGINT qui est envoyé au processus en cours d'exécution. - - .. negative:: - - - Envoyer un signal SIGTERM ou SIGKILL est préférable à SIGTERM car le processus peut prévoir une routine de traitement de signal pour se terminer proprement. - - .. comment:: Un processus ne peut pas prévoir de routine de traitement pour SIGKILL ni choisir d'ignorer ce type de signal. - -Question 3. Routines de traitement de signal --------------------------------------------- - -Un étudiant a décidé d'implémenter un programme simulant une bombe à retardement qui détonne 1h après son intialisation. Pour accélérer le décompte, l'étudiant a enregistré un handler pour le signal SIGUSR1 qui divise par 2 le temps restant à décompter. - -.. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - #include <signal.h> - #include <unistd.h> - - int counter = 3600; - - void counter_boost(int signum) { - counter=counter/2; - printf("Boost!\n"); - } - - int main () { - if (signal(SIGUSR1,counter_boost)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - - while(counter>0) { - counter--; - printf("%d seconds left\n", counter); - sleep(1); - } - - printf("BOOM!"); - return(EXIT_SUCCESS); - } - - - -.. question:: signal_handlers - :nb_prop: 3 - :nb_pos: 1 - - Ce programme, bien qu'en apparence fonctionnel, contient plusieurs erreurs de programmation. Parmi les affirmations suivantes, laquelle est correcte ? - - .. positive:: - - - Il y a un risque que la variable counter soit accédée en même temps par le processus et la routine de traitement de signal. Il est nécessaire de la déclarer sig_atomic_t pour résoudre ce problème. - - .. comment:: Avec sig_atomic_t, le compilateur garantit que tous les accès à la variable se feront de façon atomique. - - - .. positive:: - - - La fonction `printf(3)`_ n'est pas réentrante et ne doit pas être utilisée dans une routine de traitement de signal. - - .. comment:: La fonction `printf(3)`_ modifie des données globales (le buffer attaché au stream). Cette dernière est documentée comme non réentrante et ne doit donc pas être utilisée dans une routine de traitement de signal. - - - .. negative:: - - - Il y a un risque que la variable counter soit accédée en même temps par le processus et la routine de traitement de signal. Il est nécessaire de protéger cette variable par un mutex. - - .. comment:: Cette solution peut causer un deadlock. La routine de traitement de signal est asynchrone et peut être appelée à tout moment. Si le mutex est déjà utilisé à ce moment là , la routine de traitement de signal restera bloquée sur l'appel `pthread_mutex_lock(3posix)`_. - - - .. negative:: - - - Il y a un risque que la variable counter soit accédée en même temps par le processus et la routine de traitement de signal. Il est nécessaire de la déclarer volatile pour résoudre ce problème. - - .. comment:: Il est toujours possible que le processus exécute l'instruction de chargement de la valeur de la variable puis qu'un signal lui soit délivré. Lorsque le processus revient à son flux d'éxécution normal, la valeur de la variable a changé mais elle n'est pas rechargée depuis la mémoire. - - - .. negative:: - - - Il est interdit de modifier une variable globale (telle que counter) dans une routine de traitement de signal. - - .. comment:: La modification de variables globales dans une routine de traitement de signal est autorisée. Il est néanmoins nécessaire de prendre certaines précautions et la déclarer avec sig_atomic_t pour garantir que tous les accès à la variable se feront de façon atomique. - - - -Question 4. Implémentation des signaux sous Unix ------------------------------------------------- - -Deux stratégies existent pour implémenter les signaux sous Unix: maintenir une queue de tous les signaux destinés à un processus donné ou représenter l'ensemble des signaux qu'un processus peut recevoir sous la forme de drapeaux binaires (un par signal). Linux utilise la seconde stratégie. - -.. question:: signal_implementation_strategies - :nb_prop: 4 - :nb_pos: 1 - - Parmi les affirmations suivantes, lesquelles sont correctes ? - - .. positive:: - - - La solution sous forme de queue sans limite de taille permet de s'assurer que tout signal envoyé au processus est reçu par le processus. - - .. positive:: - - - La solution sous forme de drapeaux binaires ne nécessite qu'un seul bit de mémoire par signal mais n'est pas forcément meilleure que la solution utilisant une queue. - - .. comment:: C'est une question de compromis. La solution sous forme de drapeaux binaires est plus économe en mémoire mais n'est pas fiable. - - .. negative:: - - - La solution utilisant une queue permet de s'assurer que tout signal envoyé au processus est reçu par le processus. Elle est donc meilleure que la solution sous forme de drapeaux binaires. - - .. comment:: C'est une question de compromis. La solution utilisant une queue peut devenir très gourmande en mémoire s'il n'y a pas de limite sur la taille de la queue. - - - .. negative:: - - - Une solution intermédiaire utilisant 10 drapeaux par type de signal permettrait d'être à la fois fiable et économe en mémoire. - - .. comment:: Elle permettrait d'être fiable seulement pour les 10 premiers signaux de même type reçus. - - - .. negative:: - - - La solution utilisant des drapeaux binaires permet de s'assurer que tout signal envoyé au processus est reçu par le processus. - - .. comment:: Si le signal est envoyé 2 fois au processus avant l'exécution de la prochaine routine de traitement de signal, le drapeau sera mis à vrai et la routine de traitement de signal ne sera appelée qu'une seule fois. - - - .. negative:: - - - Avec la solution utilisant des drapeaux binaires, seul les signaux envoyés plusieurs fois avant l'exécution routine de traitement de signal seront perdus. - - .. comment:: Si un autre signal arrive durant l'exécution de la routine de traitement de signal, celui-ci sera perdu car bloqué par le système d'exploitation pour empêcher l'interruption de la routine de traitement du précédent signal. - - diff --git a/Exercices/mcq-ex/qcm-2.rst b/Exercices/mcq-ex/qcm-2.rst deleted file mode 100644 index a09a717..0000000 --- a/Exercices/mcq-ex/qcm-2.rst +++ /dev/null @@ -1,820 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-2 - -La matière couverte cette semaine la section relative aux `types de données <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/C/datatypes.html>`_ (jusque et y compris la section relative aux `expressions de manipulation de bits <http://sinf1252.info.ucl.ac.be/Theorie/C/datatypes/#les-expressions-de-manipulation-de-bits>`_ - - -Question 1. Conversion de types -------------------------------- - -En C tout comme dans des langages comme Java, il est possible de convertir des nombres d'un type primitif vers un autre. Cependant, alors que le compilateur Java vérifie si la conversion est sans risque, le compilateur C ne fait aucune vérification et suppose que si le programmeur a effectué une conversion explicite entre types, il a pris ses précautions. Sur une architecture où les types de données sont stockés comme suit : - -.. code-block:: c - - // char 1 octet(s) - // unsigned char 1 octet(s) - // short 2 octet(s) - // unsigned short 2 octet(s) - // int 4 octet(s) - // unsigned int 4 octet(s) - - - int i; - short s; - long l; - char c; - unsigned int ui; - unsigned char uc; - unsigned long ul; - unsigned short us; - - -.. question:: conversiontypes - :nb_prop: 3 - :nb_pos: 1 - - Un seul des fragments de code ci-dessous contient des conversions de type qui sont sans risque. Lequel ? - - .. positive:: - - .. code-block:: c - - i=(int ) s; - s=(short) uc; - l=(long )i; - - .. positive:: - - .. code-block:: c - - ui=(unsigned int) us; - s=(short) c; - ul=(unsigned long )ui; - - - .. negative:: - - .. code-block:: c - - ui=(unsigned int ) s; - us=(unsigned short) uc; - l=(long )i; - - .. comment:: Si ``s`` est négatif, la conversion en ``unsigned int`` risque de poser problème. - - - .. negative:: - - .. code-block:: c - - i=(int ) us; - us=(unsigned short) i; - l=(long )c; - - .. comment:: La conversion d'un ``int`` en un ``unsigned short`` risque de poser problème. - - .. negative:: - - .. code-block:: c - - ui=(int) s; - s=(short) c; - ul=(unsigned long )ui; - - .. comment:: La première conversion risque de poser des problèmes. - - -Question 2. Notation hexadécimale ---------------------------------- - -.. question:: hexa - :nb_prop: 3 - :nb_pos: 1 - - Parmi les affirmations suivantes relatives aux nombres en représentation hexadécimale, une seule est vraie. Laquelle ? - - .. positive:: - - La représentation hexadécimale du nombre entier positif ``27`` est ``1B`` - - .. positive:: - - La représentation hexadécimale du nombre entier positif ``67`` est ``43`` - - .. negative:: - - La représentation hexadécimale du nombre entier positif ``67`` est ``34`` - - .. comment:: :math:`3*16+4` ne vaut pas ``67`` - - .. negative:: - - La représentation hexadécimale du nombre entier positif ``27`` est ``B1`` - - .. comment:: :math:`11*16+1` ne vaut pas ``27`` - - .. negative:: La représentation hexadécimale du nombre entier positif ``62`` est ``B1`` - - .. comment:: :math:`11*16+1` ne vaut pas ``62`` - - .. negative:: - - La représentation hexadécimale du nombre entier positif ``128`` est ``FF`` - - .. comment:: :math:`15*16+15` ne vaut pas ``128`` - - -Question 3. Notation binaire ----------------------------- - -.. question:: binaire - :nb_prop: 3 - :nb_pos: 1 - - Parmi les affirmations suivantes relatives aux nombres en représentation binaire, une seule est vraie. Laquelle ? - - - .. positive:: - - La représentation binaire du nombre entier positif ``99`` est ``1100011`` - - .. positive:: - - La représentation binaire du nombre entier positif ``176`` est ``10110000`` - - .. negative:: - - La représentation binaire du nombre entier positif ``90`` est ``1100011`` - - .. comment:: La représentation binaire de ``90`` est ``1011010`` - - .. negative:: - - La représentation binaire du nombre entier positif ``176`` est ``10110001`` - - .. comment:: C'est la représentation de ``177``. - - .. negative:: - - La représentation binaire du nombre entier positif ``166`` est ``10110001`` - - .. comment:: C'est la représentation de ``177``. - - .. negative:: - - La représentation binaire d'un nombre entier positif impair a toujours ``0`` comme bit de poids faible. - - .. comment:: Ce sont les entiers positifs pairs (et zéro) qui ont ``0`` comme bit de poids faible. - - -Question 4. Notation binaire ----------------------------- - -.. question:: binaire2 - :nb_prop: 3 - :nb_pos: 1 - - Parmi les affirmations suivantes relatives aux nombres signés en représentation binaire, une seule est vraie. Laquelle ? - - - .. positive:: - - Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-17`` est ``11111111 11101111`` - - .. positive:: - - Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-23`` est ``11111111 11101001`` - - .. negative:: - - Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-17`` est ``00000000 00010001`` - - .. comment:: C'est la représentation de ``17`` mais en non-signé - - .. negative:: - - Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-17`` est ``10000000 00010001`` - - .. comment:: C'est la représentation de ``-32751`` - - .. negative:: - - Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-23`` est ``00000000 00010111`` - - - .. comment:: C'est la représentation de ``23`` - - .. negative:: - - Si la variable ``x`` est un ``short`` (signé) sur 16 bits, alors la représentation binaire de ``-23`` est ``11111111 11100110`` - - - .. comment:: C'est la représentation de ``-26`` - - -.. http://www.binaryconvert.com/ pour des conversions sur le web - - - -Question 5. Manipulations de bits ---------------------------------- - -.. question:: manipbits - :nb_prop: 3 - :nb_pos: 1 - - Si la variable ``c`` est de type ``unsigned char`` sur 8 bits, laquelle des suites d'instructions ci-dessous permet d'en échanger les 4 bits de poids faible avec les 4 bits de poids fort ? - - - .. positive:: - - - .. code-block:: c - - unsigned char temp1, temp2; - temp1 = c & 0x0F; - temp2 = c & 0xF0; - temp1=temp1 << 4; - temp2=temp2 >> 4; - c= temp2|temp1; - - .. positive:: - - .. code-block:: c - - unsigned char temp1, temp2; - temp1=c << 4; - temp2=c >> 4; - c= temp2|temp1; - - - .. negative:: - - - .. code-block:: c - - unsigned char temp1, temp2; - temp1=c << 4; - temp2=c >> 4; - c= temp2||temp1; - - - .. comment:: Ne confondez pas l'opérateur binaire ``|`` avec la disjonction logique ``||``. - - - .. negative:: - - .. code-block:: c - - unsigned char temp1, temp2; - temp1=4 << temp1; - temp2=4 >> temp2; - c= temp2|temp1; - - - .. comment:: Cette utilisation de l'opérateur ``>>`` est incorrecte. Vous décalez de ``temp1`` bits (c'est-à -dire 0) la représentation binaire de ``4``. - - .. negative:: - - .. code-block:: c - - unsigned char temp1, temp2; - temp1 = c && 0x0F; - temp2 = c && 0xF0; - temp1=temp1 << 4; - temp2=temp2 >> 4; - c= temp2|temp1; - - - .. comment:: Ne confondez pas la l'opérateur binaire ``&`` avec la conjonction logique ``&&``. - - -Question 6. Multiplication entière ----------------------------------- - -.. question:: multiInt - :nb_prop: 3 - :nb_pos: 1 - - Parmi les expressions suivantes, une seule permet de calculer ``x*7`` lorsque ``x`` est un nombre entier. Laquelle ? - - - .. positive:: - - .. code-block:: c - - (x<<3)-x - - - .. comment:: Cette expression calcule en effet ``x<<3=x*8`` puis retire ``x``. - - .. negative:: - - - .. code-block:: c - - (x>>3)-x - - - .. comment:: Cette expression divise d'abord ``x`` par ``8`` puis retire x au résultat de cette division. - - .. negative:: - - .. code-block:: c - - (x<<3)+x - - .. comment:: Cette expression multiplie ``x`` par ``8`` puis ajoute ``x`` au résultat. Elle multiple donc ``x`` par ``9``. - - - .. negative:: - - .. code-block:: c - - (x<<7) - - - .. comment:: Cette expression multiplie ``x`` par :math:`2^7` - - .. negative:: - - .. code-block:: c - - (x>>7) - - .. comment:: Cette expression divise ``x`` par :math:`2^7` - -Question 7. Extraction de bits ------------------------------- - -.. question:: extraction - :nb_prop: 3 - :nb_pos: 1 - - Il est parfois nécessaire en C de manipuler directement la représentation binaire d'un nombre. Si ``f`` est un nombre de type ``float`` stocké sur 32 bits, laquelle des expressions ci-dessous peut-elle être intégrée dans ce code pour afficher positif ou négatif en fonction du signe de ce nombre ? - - .. code-block:: none - - if(<à compléter>) - printf("positif\n"); - else - printf("negatif\n"); - - - .. positive:: - - .. code-block:: c - - !(((unsigned int) f) & 0x80000000) - - .. positive:: - - .. code-block:: c - - !(((unsigned int) f) >> 31) - - .. negative:: - - - .. code-block:: c - - !(((unsigned int) f) & 0x10000000) - - .. comment:: En faisant ``& 0x10000000``, vous mettez tous les bits de ``f`` à ``0`` sauf le bit ``28`` alors que le bit de signe est le bit de poids fort (``31``). - - .. negative:: - - .. code-block:: c - - !(((unsigned int) f) << 31) - - .. comment:: Cette opération décale la représentation binaire de ``f`` de 31 bits vers la gauche, c'est-à -dire que seul le bit de poids faible reste. Malheureusement, le signe se trouve dans le bit de poids faible et non dans le bit de poids fort. - - - .. negative:: - - .. code-block:: c - - !(((unsigned int) f) > 31) - - .. comment:: Ne confondez pas ``>`` et ``>>``. - - - .. negative:: - - .. code-block:: c - - !(((unsigned int) f) & 31) - - .. comment:: Cette opération masque le nombre ``f`` avec ``00000000 00000000 00000000 00011111`` - - - -Question 8. Chaînes de caractères ---------------------------------- - -.. question:: string - :nb_prop: 3 - :nb_pos: 1 - - Une seule des fonctions ci-dessous retourne correctement le nombre d'occurrences du caractère ``c`` dans la chaîne de caractères ``c``. Laquelle ? - - .. positive:: - - .. code-block:: c - - int count1(char *s, char c) { - int i=0; - int count=0; - while(*(s+i)!='\0') { - if(*(s+i)==c) { - count++; - } - i++; - } - return(count); - } - - - .. positive:: - - .. code-block:: c - - int count(char *s, char c) { - int count=0; - while(*(s)!='\0') { - if(*(s)==c) { - count++; - } - s++; - } - return(count); - } - - - .. negative:: - - .. code-block:: c - - int count1(char *s, char c) { - int i=0; - int count=0; - while(i<s.length) { - if(*(s+i)==c) { - count++; - } - i++; - } - return(count); - } - - .. comment:: ``s`` est un pointeur vers une chaîne de caractères et non une structure. Ce code ne compile pas. - - .. negative:: - - .. code-block:: none - - int count1(char *s, char c) { - int i=0; - int count=0; - while(*s!=`\0`) { - if(*(s+i)==c) { - count++; - } - i++; - } - return(count); - } - - .. comment:: La boucle ``while`` se termine-t-elle ? Quelle est sa condition d'arrêt ? - - .. negative:: - - .. code-block:: c - - int count(char *s, char c) { - int count=0; - while(*(s)!='\0') { - s++; - if(*(s)==c) { - count++; - } - } - return(count); - } - - .. comment:: Ce code compte-il correctement le caractère si il est présent en première position de la chaîne ? - - - .. negative:: - - .. code-block:: c - - int count(char *s, char c) { - int count=0; - while(s!='\0') { - if(s==c) { - count++; - } - s++; - } - return(count); - } - - .. comment:: Ce code compare le pointeur ``s`` c'est-à -dire *l'adresse* du première caractère de la chaîne ``s`` en mémoire avec ``\0`` et ``c`` et non le caractère pointé par ``s``. - - -Question 9. Pointeurs ---------------------- - -.. question:: ptr - :nb_prop: 3 - :nb_pos: 1 - - Si ``ptr`` a été déclaré sous la forme ``int *ptr``, un seul des groupes d'affirmations suivantes est vrai, lequel ? - - .. positive:: - - - l'expression ``*(ptr + 1)`` est une valeur entière - - l'expression ``ptr[1]`` est une valeur entière - - l'expression ``ptr`` est une adresse en mémoire - - - .. positive:: - - - l'expression ``*(ptr) + 1`` est une valeur entière - - l'expression ``ptr[2]`` est une valeur entière - - l'expression ``ptr++`` est une adresse en mémoire - - - .. negative:: - - - l'expression ``&(ptr) + 1`` est un nombre entier - - l'expression ``ptr[2]`` est une valeur entière - - l'expression ``&ptr`` est une adresse en mémoire - - .. negative:: - - - l'expression ``*(ptr+1)==ptr[1]`` est syntaxiquement invalide - - l'expression ``ptr[2]`` est une valeur entière - - l'expression ``&ptr`` est une adresse en mémoire - - .. negative:: - - - l'expression ``*(ptr+1)==ptr[1]`` est toujours vraie - - l'expression ``ptr--`` est syntaxiquement invalide - - -Question 10. Pointeurs et tableaux ----------------------------------- - -Considérons le tableau ``tab`` déclaré comme suit : - - .. code-block:: c - - #define SIZE 30 - int tab[SIZE]; - int *ptr; - -.. question:: ptrtab - :nb_prop: 3 - :nb_pos: 1 - - Dans une architecture 32 bits, un seul des groupes d'affirmations ci-dessous est vrai. Lequel ? - - - .. positive:: - - - - l'expression ``tab[i]`` correspond à la même valeur dans le tableau que ``*(tab+i)`` lorsque ``0<=i<29`` - - l'assignation ``ptr=(tab+i)`` est valide et après cette assignation, ``*ptr`` retourne la même valeur que ``tab[i]`` lorsque ``0<=i<29`` - - - .. positive:: - - - l'expression ``tab[0]`` correspond à la même valeur dans le tableau que ``*(tab)`` - - l'assignation ``ptr=(tab+i)`` est valide et après cette assignation, ``*ptr`` retourne la même valeur que ``tab[i]`` lorsque ``0<=i<29`` - - - .. negative:: - - - l'expression ``tab[i]`` correspond à la même valeur dans le tableau que ``*(tab+i)`` lorsque ``0<=i<29`` - - l'assignation ``tab=(tab+i)`` est valide et après cette assignation, ``*tab`` retourne le ième élément du tableau lorsque ``0<=i<29`` - - .. comment:: Lorsque ``tab`` est déclaré comme étant un tableau, il est interdit de modifier sa position en mémoire. Il ne peut donc apparaître dans le membre de gauche d'une assignation. - - .. negative:: - - - l'expression ``tab[0]`` correspond à la même valeur dans le tableau que ``&(tab)`` - - l'assignation ``tab=(tab+i)`` est valide et après cette assignation, ``*tab`` retourne le ième élément du tableau lorsque ``0<=i<29`` - - .. comment:: Les deux affirmations sont fausses. - - .. negative:: - - - l'expression ``tab[i]`` correspond à la même valeur dans le tableau que ``*(tab)+i`` lorsque ``0<=i<29`` - - l'assignation ``ptr=(tab)`` est valide et après cette assignation, ``*(ptr+i)`` retourne le ième élément du tableau lorsque ``0<=i<29`` - - .. comment:: La première affirmation est fausse, ``*(tab)+i`` équivaut à ``tab[0]+i`` - - -Question 11. Pointeurs ----------------------- - -Considérons le fragment de code ci-dessous. - -.. code-block:: c - - int tab[]={ 10, 20, 30, 40 }; - int *ptr1=&tab[1]; - int *ptr2=&tab[3]; - -.. question:: cptr - :nb_prop: 3 - :nb_pos: 1 - - Dans ce code, une seule des affirmations suivantes est vraie, laquelle ? - - .. positive:: - - l'expression ``ptr2-ptr1`` vaut ``2`` - - .. positive:: - - les expressions ``*(ptr1-1)`` et ``*(ptr2-3)`` retournent toutes les deux la même valeur, ``10`` - - .. negative:: - - l'expression ``ptr2-ptr1`` vaut ``20`` - - .. comment:: ``ptr2`` et ``ptr1`` sont des pointeurs vers des entiers. L'arithmétique des pointeurs s'applique pour cette opération. Vu leur initialisation, la différence vaut ``2``. - - .. negative:: - - les expressions ``*(ptr1-1)`` et ``*(ptr2-3)`` retournent toutes les deux la même valeur, ``1`` - - .. comment:: L'expression ``*(ptr1-1)`` équivaut à ``tab[0]`` et ``*(ptr2-3)`` à ``tab[0]``. Cet élément du tableau contient la valeur ``10``. - - .. negative:: - - l'expression ``*(ptr2-ptr1)`` retourne la valeur ``20`` - - .. comment:: ``ptr2`` et ``ptr1`` sont des pointeurs vers des entiers. L'arithmétique des pointeurs s'applique pour cette opération. Vu leur initialisation, la différence vaut ``2``. L'expression ``*(2)`` correspond à une donnée à une adresse dans le bas de la mémoire qui n'est normalement pas accessible au programme. - - - -Question 12. Pointeurs et fonctions ------------------------------------ - -.. question:: ptrfct - :nb_prop: 3 - :nb_pos: 1 - - En C, il est parfois nécessaire d'échanger le contenu de deux variables. Si ``a`` et ``b`` sont des variables de type ``int``, laquelle des fonctions ci-dessous permet de réaliser cette échange entre les contenu des variables ? - - - .. positive:: - - - .. code-block:: c - - void swap(int *i, int *j) { - int k; - k=*i; - *i=*j; - *j=k; - } - //échange - swap(&a,&b); - - - .. positive:: - - .. code-block:: c - - void swap(int *i, int *j) { - int k; - k=*j; - *j=*i; - *i=k; - } - //échange - swap(&a,&b); - - .. negative:: - - - .. code-block:: c - - void swap(int i, int j) { - int k; - k=i; - i=j; - j=k; - } - //échange - swap(a,b); - - .. comment:: Cette fonction ne fait rien du tout d'utile. - - .. negative:: - - - .. code-block:: c - - void swap(int i, int j) { - int k; - k=i; - i=j; - } - //échange - swap(&a,&b); - - .. comment:: Cette fonction reçoit comme argument l'adresse de ``a`` et l'adresse de ``b`` mais ne modifie en rien le contenu de ces variables. - - .. negative:: - - .. code-block:: c - - void swap(int i, int j) { - int k; - int *i_ptr=&i; - int *j_ptr=&j; - k=i; - *(i_ptr)=j; - *(j_ptr)=k; - } - //échange - swap(a,b); - - .. comment:: Lors de son exécution, la fonction ``swap`` ci-dessus reçoit les valeurs des variables ``a`` et ``b``, mais elle n'a aucune idée de l'endroit où ces variables sont stockées en mémoire. Elle ne peut donc pas modifier leur contenu. - -Question 13. Pointeurs et structures ------------------------------------- - - -Dans un programme de manipulation de fractions, on définit la structure suivante pour représenter une fraction entière : - - .. code-block:: c - - struct fract_t { - int num; - int denum; - }; - -On veut pouvoir facilement écrire une fonction de type ``void`` qui remplace la valeur stockée dans la fraction par le résultat de l'addition de la fraction et un nombre entier passé en fragment. La spécification de cette fonction pourrait être : - - .. code-block:: c - - /* - * augmente la fraction passé en argument de l'entier n et place - * la somme calculée dans la fraction - * Exemples - * Si f vaut 1/3, alors l'application de la fonction avec f et 2 comme - * arguments a comme résultat de stocker la valeur 7/3 dans f - * Si f vaut 2/1, alors l'application de la fonction avec f et 1 comme - * arguments a comme résultat de stocker la valeur 3/1 dans f - */ - -.. question:: ptrstruct - - Laquelle des signatures ci-dessous peut-elle être utilisée pour effectuer cette opération et modifier la fraction passé en argument ? - - - .. positive:: - - - - .. code-block:: c - - void scale(struct *fract_t f, int s); - // appel à la fonction : - // scale(&f,3); - - .. negative:: - - .. code-block:: c - - void scale(struct fract_t f, int s); - // appel à la fonction : - // scale(f,3); - - .. negative:: - - .. code-block:: c - - void scale(int num, int den, int s); - // appel à la fonction : - // scale(f.num, f.denum,3); - - - diff --git a/Exercices/mcq-ex/qcm-3.rst b/Exercices/mcq-ex/qcm-3.rst deleted file mode 100644 index e820e10..0000000 --- a/Exercices/mcq-ex/qcm-3.rst +++ /dev/null @@ -1,598 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-3 - -Cette semaine, la matière porte sur l'organisation de la mémoire et l'utilisation des fonctions `malloc(3)`_ et `free(3)`_ - - - http://sites.uclouvain.be/SystInfo/notes/Theorie/html/C/malloc.html#organisation-de-la-memoire - - - -Question 1. Portée des variables --------------------------------- - -Lorsque l'on écrit un programme C, il est préférable d'éviter d'avoir deux variables qui ont le même nom et peuvent être utilisées dans une fonction. Un étudiant a écrit le programme ci-dessous : - - .. code-block:: c - - #include <stdio.h> - int i = 1; - int main(int argc, char * argv[]) - { - int k; - printf("A:%d\n", i); - for(k=0; k<1; k++) - { - int i = 2, j = 1252; - printf("B:%d %d\n", i, j); - { - int i = 0; - printf("C:%d %d\n", i, j); - } - printf("D:%d\n", i); - } - return 0; - } - -.. question:: variables - :nb_prop: 3 - :nb_pos: 1 - - Lors de son exécution, ce programme affiche : - - .. positive:: - - - .. code-block:: console - - A:1 - B:2 1252 - C:0 1252 - D:2 - - - .. negative:: - - Le programme ne se compile pas, il est interdit de redéfinir la variable globale ``i``. - - .. comment:: Si, le programme se compile correctement. On peut redéfinir une variable dans plusieurs niveaux de portée différents, même si il vaut mieux l'éviter. - - .. negative:: - - .. code-block:: console - - A:1 - B:1 1252 - C:1 1252 - D:1 - - .. negative:: - - .. code-block:: console - - A:1 - B:2 1252 - C:2 1252 - D:2 - - .. negative:: - - .. code-block:: console - - A:1 - B:2 1252 - C:0 1252 - D:0 - -Question 2. Portée des variables --------------------------------- - -L'extrait ci-dessous provient d'un programme écrit par un étudiant. - - .. code-block:: c - - #include <stdio.h> - int i = 1252; - void f(int i) { - // code non fourni - } - void g(char* c) { - // code non fourni - } - int main(int argc, char * argv[]) - { - f(argc); - g(argv[0]); - } - -.. question:: porteevar - :nb_prop: 3 - :nb_pos: 1 - - Parmi les affirmations suivantes, un seul groupe est correct. Lequel ? - - .. positive:: - - - La fonction ``g`` peut accéder à la variable globale ``i`` et modifier sa valeur - - La fonction ``g`` ne peut lire la valeur de ``argc`` - - La fonction ``f`` ne peut modifier la valeur de la variable globale ``i`` - - .. negative:: - - - - La fonction ``g`` peut lire la variable globale ``i`` mais pas modifier sa valeur - - La fonction ``g`` ne peut lire la valeur de ``argc`` - - La fonction ``f`` peut modifier la valeur de la variable globale ``i`` - - .. comment:: La fonction ``g`` peut accéder à la variable globale ``i`` et modifier sa valeur par contre la fonction ``f`` ne peut pas le faire car elle ne peut accéder qu'à son argument nommé également ``i``. - - .. negative:: - - - La fonction ``f`` peut lire la variable globale ``i`` mais pas modifier sa valeur - - La fonction ``g`` peut lire la valeur de ``argc`` - - La fonction ``f`` peut modifier la valeur de la variable globale ``i`` - - .. comment:: Aucune de ces affirmations n'est correcte. - - - .. negative:: - - - La fonction ``f`` peut lire la variable globale ``i`` et modifier sa valeur - - La fonction ``g`` ne peut lire la valeur de ``argc`` - - La fonction ``f`` ne peut modifier la valeur de la variable globale ``i`` - - .. comment:: La fonction ``f`` n'a pas accès à la variable globale ``i``. - - - -Question 3. Organisation de la mémoire --------------------------------------- - -Considérons le fragment de programme ci-dessous. - - .. code-block:: c - - #include <stdio.h> - int i,j,k = 1252; // ligne A - int tab[1000]; // ligne B - void f(int i) { // ligne C - int j; // ligne D - // code non fourni - } - void g(char c) { - int i; // ligne E - // code non fourni - } - int main(int argc, char * argv[]) - { - int k=1; // ligne F - - f(argc); - g('a'); - } - -.. question:: orgmem - :nb_prop: 3 - :nb_pos: 1 - - Lors de l'exécution de ce programmes, les valeurs des différentes variables sont stockées en mémoire. Un seul des groupes d'affirmations ci-dessous est correct. Lequel ? - - - .. positive:: - - - - la variable ``i`` déclarée en ``ligne A`` est stockée dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``j`` déclarée en ``ligne D`` est stockée sur la pile - - la variable ``k`` déclarée en ``ligne F`` est stockée sur la pile - - .. positive:: - - - la variable ``i`` déclarée en ``ligne A`` est stockée dans la zone des variables non-initialisées - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``i`` déclarée en ``ligne E`` est stockée sur la pile - - - - .. negative:: - - - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``j`` déclarée en ``ligne D`` est stockée sur la pile - - la variable ``i`` déclarée en ``ligne E`` est stockée sur la pile - - la variable ``k`` déclarée en ``ligne F`` est stockée dans la zone des variables non-initialisées - - .. negative:: - - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur le tas - - la variable ``k`` déclarée en ``ligne F`` est stockée sur la pile - - .. negative:: - - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``j`` déclarée en ``ligne D`` est stockée sur la pile - - la variable ``i`` déclarée en ``ligne E`` est stockée sur le tas - - la variable ``k`` déclarée en ``ligne F`` est stockée sur la pile - - .. negative:: - - - la variable ``i`` déclarée et initialisée en ``ligne A`` est stockée dans la zone des variables initialisées - - le tableau ``tab`` déclaré en ``ligne B`` est stocké dans la zone des variables non-initialisées - - l'argument ``i`` déclaré en ``ligne C`` est stocké sur la pile - - la variable ``k`` déclarée en ``ligne F`` est stockée sur le tas - - -Question 4. Initialisation des variables ----------------------------------------- - -En C, une règle de bonne pratique est d'initialiser toutes les variables avant leur utilisation. Utiliser une variable qui n'a pas été correctement initialisée pour être une source de problèmes. Un étudiant a écrit les déclarations ci-dessous : - - .. code-block:: c - - int k=0; - int i; - short j; - float f; - double d; - char c[10]; - char* string; - void* v; - int* ptr; - ptr=(int*) malloc(5*sizeof(int)); - -.. question:: varinit - :nb_prop: 3 - :nb_pos: 1 - - Après exécution de ces lignes, un seul des groupes d'affirmations ci-dessous est correct. Lequel ? - - .. positive:: - - - - la variable ``i`` est initialisée à la valeur ``0`` - - le pointeur ``string`` est initialisé à la valeur ``NULL`` - - ``c[2]`` contient le caractère ``'\0'`` - - Après exécution de ``malloc``, le contenu de l'adresse ``ptr+1`` est indéterminé - - .. comment:: Pour des raisons d'efficacité, `malloc(3)`_ n'initialise pas à zéro les zones mémoires allouées, contrairement à `calloc(3)`_ - - .. positive:: - - - - la variable ``j`` est initialisée à la valeur ``0`` - - le pointeur ``v`` est initialisé à la valeur ``NULL`` - - ``c[4]`` contient le caractère ``'\0'`` - - Après exécution de ``malloc``, le contenu de l'adresse ``ptr+4`` est indéterminé - - .. comment:: Pour des raisons d'efficacité, `malloc(3)`_ n'initialise pas à zéro les zones mémoires allouées, contrairement à `calloc(3)`_ - - .. negative:: - - - - la variable ``f`` est initialisée à la valeur ``0.0`` - - le pointeur ``string`` n'a aucune valeur et n'est pas utilisable - - ``c[2]`` contient le caractère espace - - Après exécution de ``malloc``, l'adresse ``ptr+1`` contient le caractère ``'\0'`` - - .. comment:: `malloc(3)`_ n'initialise pas la zone mémoire allouée. ``string`` contient ``NULL`` et ``c[2]`` le caractère ``'\0'`` - - .. negative:: - - - - la variable ``f`` est initialisée à la valeur ``0.0`` - - le pointeur ``v`` n'a aucune valeur et n'est pas utilisable - - ``c[2]`` contient le caractère espace - - Après exécution de ``malloc``, l'adresse ``ptr`` contient le caractère ``'\0'`` - - .. negative:: - - - - la variable ``f`` est initialisée à la valeur ``0.0`` - - le pointeur ``string`` est initialisé à ``NULL`` - - ``c[10]`` contient le caractère espace - - Après exécution de ``malloc``, l'adresse ``ptr+3`` contient le caractère ``'\0'`` - - .. comment:: ``c[10]`` est hors du tableau ``c``. `malloc(3)`_ n'initialise pas la zone mémoire allouée. - - .. negative:: - - - - la variable ``f`` est initialisée à la valeur ``0.0`` - - le pointeur ``v`` est initialisé à ``NULL`` - - ``c[6]`` contient le caractère ``'\0'`` - - Après exécution de ``malloc``, l'adresse ``ptr+5`` contient le caractère ``'\0'`` - - .. comment:: `malloc(3)`_ n'initialise pas la zone mémoire allouée. De plus, ``ptr+5`` se trouve en dehors de la zone mémoire allouée par `malloc(3)`_ - - -Question 5. `malloc(3)`_ et compagnie -------------------------------------- - -Cette question porte sur les fonctions `malloc(3)`_ et `free(3)`_ qui sont importantes pour la manipulation de la mémoire sur le tas. - -.. question:: malloc - :nb_prop: 3 - :nb_pos: 1 - - Parmi les groupes d'affirmation suivants, un seul est correct. Lequel ? - - .. positive:: - - - - la fonction `malloc(3)`_ retourne un pointeur de type ``void *`` - - la fonction `free(3)`_ prend comme argument un pointeur de type ``void *`` qui a été précédemment alloué par la fonction `malloc(3)`_ - - si l'appel à `calloc(3)`_ a retourné un pointeur différent de ``NULL``, alors la zone mémoire demandée a été allouée et est initialisée à zéro - - une implémentation possible (non efficace) de `realloc(3)`_ est - - .. code-block:: c - - void *realloc(void *ptr, size_t len) - { - void *r; - r = malloc(len); - if(r!=NULL) - { - memcpy(r, ptr, len); - free(ptr); - } - return r; - } - - - - .. negative:: - - - - la fonction `malloc(3)`_ retourne un pointeur de type ``void *`` - - la fonction `free(3)`_ prend comme argument n'importe quel type de pointeur - - si l'appel à `malloc(3)`_ a retourné un pointeur différent de ``NULL``, alors la zone mémoire demandée a été allouée mais n'est pas initialisée à zéro - - une implémentation possible (non efficace) de `realloc(3)`_ est - - .. code-block:: c - - void *realloc(void *ptr, size_t len) - { - void *r; - r = malloc(len); - memcpy(r, ptr, len); - return r; - } - - - .. negative:: - - - la fonction `calloc(3)`_ retourne un pointeur de type ``void *`` - - la fonction `free(3)`_ prend comme argument un pointeur de type ``void *`` qui a été précédemment alloué par la fonction `malloc(3)`_ - - si l'appel à `malloc(3)`_ a retourné un pointeur différent de ``NULL``, alors la zone mémoire demandée a été allouée et est initialisée - - une implémentation possible (non efficace) de `realloc(3)`_ est - - .. code-block:: c - - void *realloc(void *ptr, size_t len) - { - return malloc(len); - } - - - .. negative:: - - - la fonction `calloc(3)`_ retourne un pointeur de type ``void *`` - - la fonction `free(3)`_ prend comme argument un pointeur de type ``void *`` qui a été précédemment alloué par la fonction `malloc(3)`_ - - si l'appel à `malloc(3)`_ a retourné un pointeur différent de ``NULL``, alors la zone mémoire demandée a été allouée et est initialisée - - une implémentation possible (non efficace) de `realloc(3)`_ est - - .. code-block:: c - - void *realloc(void *ptr, size_t len) - { - void *r; - r = malloc(len); - if(r) - { - return r; - } - else - { - return NULL; - } - } - - - -Question 6. Stack ------------------ - -.. question:: stack - :nb_prop: 3 - :nb_pos: 1 - - Considérons le programme `stack.c` présenté dans le syllabus. Cette implémentation d'une pile permet d'ajouter et de retirer un élément de la pile. Laquelle des implémentations ci-dessous est-elle une implémentation correcte d'une fonction ``size`` permettant de calculer le nombre d'éléments stockés dans la pile ? - - .. positive:: - - - .. code-block:: c - - int size(struct node_t* stack) - { - struct node_t *curr = stack; - int count = 0; - while (curr!=NULL) { - count ++; - curr = stack->next; - } - return count; - } - - .. positive:: - - .. code-block:: c - - int size(struct node_t* stack) - { - int count = 0; - while (stack!=NULL) { - count ++; - stack = stack->next; - } - return count; - } - - - .. negative:: - - - .. code-block:: c - - int size(struct node_t* stack) - { - int count = 0; - while (stack!=NULL) { - count ++; - stack++; - } - return count; - } - - .. negative:: - - .. code-block:: c - - int size(struct node_t* stack) - { - return sizeof(stack); - } - - .. negative:: - - .. code-block:: c - - int size(struct node_t* stack) - { - struct node_t *curr = stack; - int count = 0; - while (curr) { - count ++; - curr++; - } - return count; - } - - .. negative:: - - .. code-block:: c - - int size(struct node_t stack) - { - struct node_t curr = stack; - int count = 0; - while (curr) { - count ++; - curr = stack->next; - } - return count; - } - - -Question 7. `strdup(3)`_ ------------------------- - -.. question:: strdup - :nb_prop: 3 - :nb_pos: 1 - - La librairie standard contient la fonction `strdup(3)`_. Laquelle des fonctions ci-dessous est-elle une implémentation de correcte `strdup(3)`_ ? - - .. positive:: - - .. code-block:: c - - char *strdup(const char *s) - { - char *new = (char *) malloc ((strlen(s)+1) * sizeof(char)); - if (new == NULL) - return NULL; - return memcpy(new, s, (strlen(s)+1) * sizeof(char)); - } - - .. positive:: - - .. code-block:: c - - char *strdup(const char *s) - { - char *new = (char *) malloc ((strlen(s)+1) * sizeof(char)); - if (!new) - return NULL; - return memcpy(new, s, (strlen(s)+1) * sizeof(char)); - } - - - .. negative:: - - - .. code-block:: c - - char *strdup(const char s) - { - void *new = malloc (strlen(s)); - if (new == NULL) - return NULL; - return memcpy(new, s, strlen(s)); - } - - .. negative:: - - .. code-block:: c - - char *strdup(const char *s) - { - char new [strlen(s)+1]; - return memcpy(new, s, (strlen(s)+1) * sizeof(char)); - } - - .. negative:: - - .. code-block:: c - - char *strdup(const char * s) - { - void *new = malloc (strlen(s+1)); - return memcpy(new, s, strlen(s+1)); - } - - .. negative:: - - .. code-block:: c - - char *strdup(const char *s) - { - char *new = (char *) calloc (strlen(s) * sizeof(char)); - if (new == NULL) - return NULL; - return memcpy(new, s, (strlen(s) * sizeof(char))); - } - - .. negative:: - - .. code-block:: c - - char *strdup(const char *s) - { - char *new = (char *) malloc (strlen(s) * sizeof(char)); - return memcpy(new, s, (strlen(s) * sizeof(char)); - } - - - - diff --git a/Exercices/mcq-ex/qcm-4-asm.rst b/Exercices/mcq-ex/qcm-4-asm.rst deleted file mode 100644 index e978d08..0000000 --- a/Exercices/mcq-ex/qcm-4-asm.rst +++ /dev/null @@ -1,1666 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-4 - -Cette semaine, la matière porte sur l'organisation de la mémoire et sur le langage assembleur IA32. La matière couverte se trouve dans les sections suivantes du syllabus : - - - `Organisation des ordinateurs <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Assembleur/memory.html>`_ - - `Etude de cas : IA32 <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Assembleur/memory.html#etude-de-cas-architecture-ia32>`_ - -Question 1. Instruction ``mov`` -------------------------------- - -Les instructions de la famille ``mov`` permettent de déplacer des données entre registres ou d'initialiser des registres. Considérons le fragment de code C suivant (dans lequel ``g``, ``g2`` et ``s`` sont des variables globales de type ``int``) : - -.. code-block:: c - - g=1234; - g2=5678; - s=g; - g=g2; - g2=s; - -.. question:: mov - :nb_prop: 3 - :nb_pos: 1 - - Parmi les traductions en assembleur ci-dessus, une seule est correcte. Laquelle ? - - - .. positive:: - - - .. code-block:: nasm - - movl $1234, g - movl $5678, g2 - movl g, %ecx - movl %ecx, s - movl g2, %ecx - movl %ecx, g - movl s, %ecx - movl %ecx, g2 - - .. positive:: - - .. code-block:: nasm - - movl $1234, g - movl $5678, g2 - movl g, %eax - movl %eax, s - movl g2, %eax - movl %eax, g - movl s, %eax - movl %eax, g2 - - - .. negative:: - - - .. code-block:: nasm - - movl g, $1234 - movl g2, $5678 - movl %eax, g - movl s, %eax - movl %eax, g2 - movl g, %eax - movl s, %eax - movl g2, %eax - - .. comment:: L'instruction ``mov`` prend comme premier argument la source et comme second la destination. - - .. negative:: - - .. code-block:: nasm - - movl $1234, g - movl $5678, g2 - movl g2, %eax - movl %edx, s - movl g, %eax - movl %edx, g2 - movl s, %eax - movl %eax, g2 - - .. comment:: Ce code utilise les registres ``%edx`` et ``%eax``. ``%edx`` est utilisé sans être initialisé. - - .. negative:: - - .. code-block:: nasm - - movw $1234, g - movw $5678, g2 - movb g2, %eax - movb %eax, s - movb g, %eax - movb %eax, g2 - movb s, %eax - movb %eax, g2 - - .. comment:: L'instruction ``movb`` déplace un ``byte`` et non le contenu complet d'un registre de 32 bits. - - .. negative:: - - .. code-block:: nasm - - movw $1234, g - movw $5678, g2 - movb g2, %edx - movb %edx, s - movb g, %edx - movb %edx, g2 - movb s, %edx - movb %edx, g2 - - - .. comment:: - - L'instruction ``movb`` déplace un ``byte`` et non le contenu complet d'un registre de 32 bits. - -Question 2. Opérations arithmétiques ------------------------------------- - -Considérons le fragment de programme C ci-dessous : - - .. code-block:: c - - a=a+b; - b=b+b; - c=b-a; - -.. question:: add - :nb_prop: 3 - :nb_pos: 1 - - Une seule des séquences d'instructions assembleur ci-dessous est une traduction correcte de cette séquence d'instructions. Laquelle ? - - .. positive:: - - - .. code-block:: nasm - - movl a, %eax - addl b, %eax - movl %eax, a - movl b, %eax - addl b, %eax - movl %eax, b - movl b, %eax - subl a, %eax - movl %eax, c - - .. positive:: - - .. code-block:: nasm - - movl b, %eax - addl a, %eax - movl %eax, a - movl b, %eax - addl b, %eax - movl %eax, b - movl b, %eax - subl a, %eax - movl %eax, c - - - .. negative:: - - .. code-block:: nasm - - movl b, %eax - addl a, %eax - movl %eax, a - movl b, %eax - movl %eax, %ecx - addl $1, %ecx - movl %ecx, b - movl %eax, b - movl a, %eax - subl b, %eax - movl %eax, c - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - a=b+a; - b=b++; - c=a-b; - - .. negative:: - - .. code-block:: nasm - - movl b, %eax - addl a, %eax - movl %eax, c - movl b, %eax - movl %eax, %ecx - addl $1, %ecx - movl %ecx, b - movl %eax, b - movl a, %eax - subl b, %eax - movl %eax, a - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - c=b+a; - b=b++; - a=a-b; - - .. negative:: - - .. code-block:: nasm - - movl b, %eax - addl a, %eax - movl %eax, b - movl b, %eax - movl %eax, %ecx - addl $1, %ecx - movl %ecx, b - movl %eax, a - movl b, %eax - subl a, %eax - movl %eax, c - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - b=b+a; - a=b++; - c=b-a; - -Question 3. Instructions conditionnelles ----------------------------------------- - -Les instructions conditionnelles sont fréquemment utilisées en langage C et en assembleur. Considérons le fragment de programme C ci-dessous (``a`` et ``b`` sont des variables globales de type ``int``): - - .. code-block:: c - - if(b<4) - a++; - -.. question:: conditionnelles - :nb_prop: 3 - :nb_pos: 1 - - Une seule des séquences d'instructions assembleur ci-dessous est une traduction correcte de cette séquence d'instructions. Laquelle ? - - .. positive:: - - - .. code-block:: nasm - - begin: - cmpl $4, b - jge end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. positive:: - - .. code-block:: nasm - - begin: - cmpl $4, b - jl next - jmp end - next: - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if((b>=4)) - {} - else - a++; - - - .. negative:: - - - - .. code-block:: nasm - - begin: - cmpl $4, b - jg end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(b<=4) - a++; - - - .. negative:: - - .. code-block:: nasm - - begin: - cmpl $4, b - je end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(b!=4) - a++; - - .. negative:: - - .. code-block:: nasm - - begin: - cmpl $4, b - jl end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(!(b<4)) - a++; - - .. negative:: - - .. code-block:: nasm - - begin: - cmpl $4, b - jl end - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(b>=4) - a++; - - -Question 4. Instructions conditionnelles ----------------------------------------- - -Les instructions conditionnelles sont fréquemment utilisées en langage C et en assembleur. Considérons le fragment de programme C ci-dessous : - - .. code-block:: c - - if(a<=b) - c++; - -.. question:: conditionnelles2 - :nb_prop: 3 - :nb_pos: 1 - - Une seule des séquences d'instructions en assembleur ci-dessous correspond à ce fragment de code C. Laquelle ? - - - .. positive:: - - - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - jg next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. positive:: - - .. code-block:: nasm - - if: - movl b, %eax - cmpl a, %eax - jl next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. comment:: - - Ceci est en fait l'implémentation de : - - .. code-block:: c - - if(b>=a) - c++; - - - .. negative:: - - - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - jne next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. comment:: - - Ceci est l'implémentation de : - - .. code-block:: c - - if(a==b) - c++; - - .. negative:: - - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - jle next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. comment:: - - Ceci est l'implémentation de : - - .. code-block:: c - - if(a>b) - c++; - - .. negative:: - - .. code-block:: none - - if: - movl a, %eax - cmpl b, %eax - jge next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - - .. comment:: - - Ceci est l'implémentation de : - - .. code-block:: c - - if(a<b) - c++; - - .. negative:: - - .. code-block:: nasm - - if: - movl a, %eax - cmpl b, %eax - je next - movl c, %eax - addl $1, %eax - movl %eax, c - next: - - .. comment:: - - Ceci est l'implémentation de : - - .. code-block:: c - - if(a!=b) - c++; - - - -Question 5. Instructions conditionnelles ----------------------------------------- - -L'instruction conditionnelle ``if() ... else`` se retrouve dans de nombreux programmes en langage C. Considérons l'instruction ``if() ... else`` simple ci-dessous dans laquelle ``a`` et ``b`` sont des variables globales de type ``int`` : - -.. code-block:: c - - if(a>=b) - a++; - else - b++; - -.. question:: conditionnelles3 - :nb_prop: 3 - :nb_pos: 1 - - Parmi les séquences d'assembleur ci-dessous, une seule est une traduction correcte de cette instruction conditionnelle. Laquelle ? - - .. positive:: - - - .. code-block:: nasm - - movl a, %eax - cmpl b, %eax - jl label - movl a, %eax - addl $1, %eax - movl %eax, a - jmp end - label: - movl b, %eax - addl $1, %eax - movl %eax, b - end: - - .. positive:: - - .. code-block:: nasm - - movl b, %eax - cmpl a, %eax - jg label - movl a, %eax - addl $1, %eax - movl %eax, a - jmp end - label: - movl b, %eax - addl $1, %eax - movl %eax, b - end: - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(b<=a) - a++; - else - b++; - - - .. negative:: - - .. code-block:: nasm - - - movl a, %eax - cmpl b, %eax - jl label - movl b, %eax - addl $1, %eax - movl %eax, b - jmp end - label: - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(a>=b) - b++; - else - a++; - - .. negative:: - - .. code-block:: nasm - - - movl b, %eax - cmpl a, %eax - jge label - movl a, %eax - addl $1, %eax - movl %eax, a - jmp end - label: - movl b, %eax - addl $1, %eax - movl %eax, b - end: - - - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(b<a) - a++; - else - b++; - - .. negative:: - - .. code-block:: nasm - - movl b, %eax - cmpl a, %eax - jle label - movl b, %eax - addl $1, %eax - movl %eax, b - jmp .LBB4_3 - label: - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(b>a) - b++; - else - a++; - - .. negative:: - - .. code-block:: nasm - - movl a, %eax - cmpl b, %eax - jl label - movl a, %eax - addl $1, %eax - movl %eax, a - label: - movl b, %eax - addl $1, %eax - movl %eax, b - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - if(a>=b) { - a++; - } - b++; - - - -Question 6. Boucles ``while`` ------------------------------ - -Les boucles ``while`` sont fréquemment utilisées dans des programmes C. Considérons la boucle suivante qui utilise des variables globales (toutes de type ``int``): - - .. code-block:: c - - while(a!=c) - { - a++; - b=b+c; - } - -.. question:: while - :nb_prop: 3 - :nb_pos: 1 - - Parmi les séquences d'assembleur ci-dessous, une seule est une traduction correcte de cette boucle ``while``. Laquelle ? - - .. positive:: - - - .. code-block:: nasm - - begin: - movl a, %eax - cmpl c, %eax - je end - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - jmp begin - end: - - .. positive:: - - .. code-block:: nasm - - begin: - movl c, %eax - cmpl a, %eax - je end - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - jmp begin - end: - - - .. negative:: - - - .. code-block:: nasm - - begin: - movl c, %eax - cmpl a, %eax - jle end - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - jmp begin - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - while(c>a) - { - a++; - b=b+c; - } - - .. negative:: - - .. code-block:: nasm - - begin: - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - movl c, %eax - cmpl a, %eax - jne begin - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - do - { - a++; - b=b+c; - } - while(c!=a); - - .. negative:: - - .. code-block:: nasm - - begin: - movl c, %eax - cmpl a, %eax - jne end - movl a, %eax - addl $1, %eax - movl %eax, a - movl b, %eax - addl c, %eax - movl %eax, b - jmp begin - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - while(c==a) - { - a++; - b=b+c; - } - - -Question 7. Boucles ``for`` ---------------------------- - -Rares sont les programmes C qui ne contiennent pas de boucles ``for``. Considérons la boucle ci-dessous qui utilise uniquement des variables globales (de type ``int``) : - -.. code-block:: c - - for(a=0;a<c;a++) { - b=b-c; - } - -.. question:: for - :nb_prop: 3 - :nb_pos: 1 - - Parmi les séquences d'instructions en assembleur ci-dessous, une seule traduit correctement la boucle ``for`` ci-dessus. Laquelle ? - - - .. positive:: - - - .. code-block:: nasm - - begin: - movl $0, a - loop: - movl a, %eax - cmpl c, %eax - jge end - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - jmp loop - end: - - .. positive:: - - .. code-block:: nasm - - begin: - movl $0, a - loop: - movl c, %eax - cmpl a, %eax - jle end - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - jmp loop - end: - - .. negative:: - - - .. code-block:: nasm - - begin: - movl a, %eax - addl $1, %eax - movl %eax, a - loop: - movl c, %eax - cmpl a, %eax - jle end - movl b, %eax - subl c, %eax - movl %eax, b - movl $0, a - jmp loop - end: - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - for(a=a+1;c>a;a=0) { - b=b-c; - } - - .. negative:: - - .. code-block:: nasm - - begin: - movl $0, a - loop: - movl a, %eax - cmpl c, %eax - jg end - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - jmp loop - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - for(a=0;a<=c;a++) { - b=b-c; - } - - .. negative:: - - .. code-block:: nasm - - begin: - movl $0, a - movl a, %eax - cmpl c, %eax - jge end - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - end: - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - a=0; - if(a<c) { - b=b-c; - a++; - } - - .. negative:: - - .. code-block:: nasm - - begin: - loop: - movl a, %eax - cmpl c, %eax - jge end - movl $0, a - movl b, %eax - subl c, %eax - movl %eax, b - movl a, %eax - addl $1, %eax - movl %eax, a - jmp loop - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - for(;a<c;a++) { - a=0; - b=b-c; - } - - -Question 8. Fonctions ---------------------- - -Un programme C contient en général de nombreuses fonctions. Considérons une fonction simple qui effectue un calcul en utilisant un argument et une variable globale (``a``) : - -.. code-block:: c - - - int f(int i) - { - return i+a; - } - - -.. question:: fonction - :nb_prop: 3 - :nb_pos: 1 - - Parmi les séquences d'instructions en assembleur ci-dessous, une seule traduit correctement la fonction ci-dessus. Laquelle ? - - .. positive:: - - .. code-block:: nasm - - pushl %eax - movl 8(%esp), %eax - movl %eax, (%esp) - movl (%esp), %eax - addl a, %eax - popl %edx - ret - - - .. positive:: - - .. code-block:: nasm - - subl $8, %esp - movl 12(%esp), %eax - movl %eax, 4(%esp) - movl a, %eax - movl %eax, (%esp) - movl (%esp), %eax - addl 4(%esp), %eax - addl $8, %esp - ret - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) - { - int j=a; - return j+i; - } - - - .. negative:: - - - .. code-block:: nasm - - subl $8, %esp - movl 12(%esp), %eax - movl %eax, 4(%esp) - movl 4(%esp), %eax - addl a, %eax - movl %eax, (%esp) - addl $8, %esp - ret - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - void f3(int i) // incorrect - { - int j=i+a; - } - - .. negative:: - - .. code-block:: nasm - - pushl %eax - movl (%esp), %eax - addl a, %eax - popl %edx - ret - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - - int f() - { - int i; - return i+a; - } - - .. negative:: - - .. code-block:: nasm - - pushl %eax - movb 8(%esp), %al - movb %al, 3(%esp) - movsbl 3(%esp), %ecx - addl a, %ecx - movl %ecx, %eax - popl %edx - ret - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int f(char c) - { - return c+a; - } - - .. negative:: - - .. code-block:: nasm - - pushl %eax - movb 8(%esp), %al - movb %al, 3(%esp) - movsbl 3(%esp), %ecx - addl a, %ecx - movb %cl, %al - movsbl %al, %eax - popl %edx - ret - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - char f(char c) - { - return c+a; - } - - - - - -Question 9. Fonction ``max`` ----------------------------- - -Considérons la fonction C qui calcule le maximum entre deux entiers : - -.. code-block:: c - - int max(int i, int j) { - if (i>j) - return i; - else - return j; - } - -.. question:: max - :nb_prop: 3 - :nb_pos: 1 - - Parmi les groupes d'instructions ci-dessous, un seul est la traduction de cette fonction. Lequel ? - - .. positive:: - - .. code-block:: nasm - - - max: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax - cmpl (%esp), %eax - jle next - movl 4(%esp), %eax - movl %eax, 8(%esp) - jmp label - next: - movl (%esp), %eax - movl %eax, 8(%esp) - label: - movl 8(%esp), %eax - addl $12, %esp - ret - - .. positive:: - - .. code-block:: nasm - - max2: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax - cmpl (%esp), %eax - jge label1 - movl (%esp), %eax - movl %eax, 8(%esp) - jmp label2 - label1: - movl 4(%esp), %eax - movl %eax, 8(%esp) - label2: - movl 8(%esp), %eax - addl $12, %esp - ret - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int max(int i, int j) { - if (i<j) - return j; - else - return i; - } - - - .. negative:: - - - .. code-block:: nasm - - max: - subl $8, %esp - movl 12(%esp), %eax - movl %eax, (%esp) - movl (%esp), %eax - cmpl (%esp), %eax - jge label1 - movl (%esp), %eax - movl %eax, 4(%esp) - jmp label2 - label1: - movl (%esp), %eax - movl %eax, 4(%esp) - label2: - movl 4(%esp), %eax - addl $8, %esp - ret - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - - int max(int i) { - if (i<i) - return i; - else - return i; - } - - .. negative:: - - .. code-block:: nasm - - max: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax - cmpl (%esp), %eax - jge label1 - movl (%esp), %eax - movl %eax, 8(%esp) - jmp label2 - label1: - movl (%esp), %eax - movl %eax, 8(%esp) - label2: - movl 8(%esp), %eax - addl $12, %esp - ret - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int max4(int i, int j) { //incorrect - if (i<j) - return j; - else - return j; - } - - .. negative:: - - .. code-block:: nasm - - max: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax - cmpl (%esp), %eax - jge label1 - movl 4(%esp), %eax - movl %eax, 8(%esp) - jmp label2 - label1: - movl (%esp), %eax - movl %eax, 8(%esp) - label2: - movl 8(%esp), %eax - addl $12, %esp - ret - - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int max5(int i, int j) { - if (i<j) - return i; - else - return j; - } - -Question 10. Fonctions récursives ---------------------------------- - -Les fonctions récursives sont parfois utilisées en langage C. Lors de leur exécution, la pile permet de stocker temporairement les valeurs des variables et les adresses de retour. Considérons la fonction récursive suivante (où ``a`` est une variable globale) : - -.. code-block:: c - - int f(int i) - { - return a+f(i-1); - } - -.. question:: recursive - :nb_prop: 3 - :nb_pos: 1 - - Parmi les séquences d'instructions assembleur ci-dessous, une seule est une traduction correctement de cette fonction. Laquelle ? - - .. positive:: - - - .. code-block:: nasm - - - f: - pushl %ebp - movl %esp, %ebp - subl $12, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl a, %eax - movl -4(%ebp), %ecx - subl $1, %ecx - movl %ecx, (%esp) - movl %eax, -8(%ebp) - calll f - movl -8(%ebp), %ecx - addl %eax, %ecx - movl %ecx, %eax - addl $12, %esp - popl %ebp - ret - - .. positive:: - - .. code-block:: nasm - - f: - pushl %ebp - movl %esp, %ebp - subl $12, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl -4(%ebp), %eax - subl $1, %eax - movl %eax, (%esp) - calll f - movl %eax, -8(%ebp) - movl -8(%ebp), %eax - addl a, %eax - addl $12, %esp - popl %ebp - ret - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) - { - int j=f(i-1); - return j+a; - } - - - .. negative:: - - - .. code-block:: nasm - - f: - pushl %ebp - movl %esp, %ebp - subl $12, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl a, %eax - movl -4(%ebp), %ecx - movl %ecx, (%esp) - movl %eax, -8(%ebp) - calll f - movl -8(%ebp), %ecx - addl %eax, %ecx - movl %ecx, %eax - addl $12, %esp - popl %ebp - ret - - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) - { - return a+f(i); - } - - .. negative:: - - .. code-block:: nasm - - f: - pushl %ebp - movl %esp, %ebp - subl $8, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl -4(%ebp), %eax - addl a, %eax - movl %eax, (%esp) - calll f - addl $8, %esp - popl %ebp - ret - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) // incorrect - { - return f(i+a); - } - - .. negative:: - - .. code-block:: nasm - - pushl %ebp - movl %esp, %ebp - subl $12, %esp - movl 8(%ebp), %eax - movl %eax, -4(%ebp) - movl -4(%ebp), %eax - subl $1, %eax - movl %eax, (%esp) - calll f - movl %eax, -8(%ebp) - movl a, %eax - addl $12, %esp - popl %ebp - ret - - .. comment:: - - Ceci est la traduction de : - - .. code-block:: c - - int f(int i) - { - int j=f(i-1); - return a; - } - - -Question 10. Pointeurs en assembleur ------------------------------------- - -Pour comprendre le fonctionnement des pointeurs en C, il est parfois utile de se ramener à la traduction en assembleur de fragments de code C. Considérons les lignes suivantes : - - .. code-block:: c - - int a=1252; - int * ptr; - - int main(int argc, const char *argv[]) { - ptr=&a; - } - -.. question:: ptrasm - :nb_prop: 3 - :nb_pos: 1 - - Parmi les séquences d'instructions en assembleur ci-dessous, une seule est la traduction de l'assignation de l'adresse de ``a`` au pointeur ``ptr``. Laquelle - - .. positive:: - - - .. code-block:: nasm - - leal a, %eax - movl %eax, ptr - - .. negative:: - - - .. code-block:: nasm - - movl a, %eax - movl ptr, %ecx - movl %eax, (%ecx) - - .. comment:: Cette séquence d'instructions est la traduction de ``*ptr=a``. - - .. negative:: - - .. code-block:: nasm - - movl a, %eax - movl %eax, ptr - - .. comment:: Cette séquence d'instructions est la traduction de ``ptr=(int )a;``. - - .. negative:: - - - .. code-block:: nasm - - pushl %eax - leal (%esp), %eax - movl a, %ecx - movl %ecx, (%esp) - movl %eax, ptr - popl %eax - - .. comment:: - - Cette séquence d'instructions est la traduction de : - - .. code-block:: c - - int b=a; - ptr=&(b); - - .. negative:: - - - .. code-block:: nasm - - leal a, %eax - addl $4, %eax - movl %eax, ptr - - .. comment:: - - Cette séquence d'instructions est la traduction de ``ptr=&a+1;``. - - diff --git a/Exercices/mcq-ex/qcm-4.rst b/Exercices/mcq-ex/qcm-4.rst deleted file mode 100644 index d55932b..0000000 --- a/Exercices/mcq-ex/qcm-4.rst +++ /dev/null @@ -1,315 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-4 - - -Question 1. Pointeurs et tableaux ---------------------------------- - -Les pointeurs peuvent être utilisés pour accéder à des tableaux. Considérons un fragment de code C utilisant un tableau d'entiers à une dimension : - -.. code-block:: c - - int a[]={2,4,3,4,8}; - int * ptr; - - printf("%d %d %d %d\n",a[0],a[1],a[2],a[a[3]]); - - -Lors de son exécution, ce programme affiche ``2 4 3 8`` sur sa sortie standard. - -.. question:: ptr-tableaux - :nb_prop: 3 - :nb_pos: 1 - - Après exécution de ``ptr=&(a[0]);``, une seule des instructions ci-dessous affiche la même séquence de chiffres. Laquelle ? - - .. positive:: - - - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*(ptr+1),*(ptr+2),*(ptr+*(ptr+3))); - - .. negative:: - - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*ptr+1,*ptr+2,*(ptr+*(ptr+3))); - - .. comment:: - - Cette ligne affiche ``2 3 4 8``. Sur base des règles de précédence entre les opérations, l'expression ``*ptr+1`` équivaut en fait à ``(*ptr)+1``. En cas de doute, utilisez les parenthèses. - - - .. negative:: - - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*(ptr++),(*ptr++),*(ptr+*(ptr++))); - - .. comment:: - - Cette ligne affiche ``2 2 4 ???``. La dernière expression ``*(ptr+*(ptr++))`` accède une zone de mémoire en dehors du tableau et dont la valeur est inconnue (notez que la valeur de ``ptr++`` est la valeur de ptr AVANT l'incrémentation, contrairement à ``++ptr``). - - .. negative:: - - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*(ptr+0),*(ptr+1),*ptr+*(ptr+2)); - - .. comment:: - - Cette ligne affiche ``2 2 4 5``. ``*(ptr+0)`` est ``a[0]`` et non ``a[1]``. - - .. negative:: - - .. code-block:: c - - printf("%d %d %d %d\n",*ptr,*ptr+1,(*ptr+1),*(ptr+(ptr+3))); - - .. comment:: - - Cette ligne est syntaxiquement invalide. L'expression ``ptr+(ptr+3)`` est invalide. On ne peut pas additionner deux pointeurs. - - - -Question 2. Traitement de ``argv`` ----------------------------------- - -Un programme C doit souvent pouvoir manipuler les arguments qui lui sont passés. Les variables ``argc`` et ``argv`` qui sont passées à la fonction ``main`` permettent d'accéder à ces arguments. Le fragment de programme ci-dessous affiche sur la sortie standard ses différents arguments. - -.. code-block:: c - - while(i<argc) { - printf("%d %p %s\n",i,&(argv[i]),argv[i]); - i++; - } - -Un exemple d'exécution de ce fragment de programme est présenté ci-dessous : - -.. code-block:: console - - #./a.out a b cd - 0 0x7fff5fbff788 ./a.out - 1 0x7fff5fbff790 a - 2 0x7fff5fbff798 b - 3 0x7fff5fbff7a0 cd - -.. question:: argv - :nb_prop: 3 - :nb_pos: 1 - - A côté de la notation ``argv[i]``, il est aussi possible d'accéder à ``argv`` en utilisant des pointeurs. Parmi les fragments de programme ci-dessous, un seul est correct et affiche le même résultat que ci-dessus. - - .. positive:: - - - .. code-block:: c - - char **ptr; - int i=0; - ptr=argv; - while(i<argc) { - printf("%d %p %s\n",i,&(*ptr),*ptr); - i++; - ptr++; - } - - - .. negative:: - - .. code-block:: c - - char **ptr; - int i=0; - ptr=argv; - while(i<argc) { - printf("%d %p %s\n",i,&(ptr),*ptr); - i++; - ptr++; - } - - - .. comment:: - - ``&(ptr)`` est l'adresse à laquelle le pointeur ``ptr`` est stocké. Notez que ce n'est pas l'adresse à laquelle la chaîne de caractère argument ``i`` est stockée. Ce programme affiche : - - .. code-block:: console - - 0 0x7fff5fbff738 ./a.out - 1 0x7fff5fbff738 a - 2 0x7fff5fbff738 b - 3 0x7fff5fbff738 cd - - .. negative:: - - .. code-block:: c - - char *ptr; - int i=0; - ptr=*argv; - while(i<argc) { - printf("%d %p %s\n",i,&(ptr),*ptr); - i++; - ptr++; - } - - .. comment:: - - Notez dans ce code que ``ptr`` est déclaré comme ``char *``, alors que ``argv`` est un ``char **``. Si vous tenez d'exécutez ce code, il provoquera un segmentation fault. - - .. negative:: - - .. code-block:: c - - int i=0; - while(i<argc) { - printf("%d %p %s\n",i,&(argv+i),*(argv+i)); - i++; - } - - .. comment:: - - La compilation de ce fragment de programme provoque un warning. L'expression ``&(argv+i)`` est invalide car ``argv`` est un pointeur (de type ``char **``) et donc ``argv+i`` est également une adresse en mémoire et l'opérateur ``&`` ne peut pas s'y appliquer. - - .. negative:: - - .. code-block:: c - - int i=0; - while(i<argc) { - printf("%d %p %s\n",i,&(*(argv+i)),(argv+i)); - i++; - } - - - .. comment:: - - Dans ce fragment de code, ``argv+i`` est de type ``char **`` alors qu'il faut un ``char *`` pour passer un string à `printf(3)`_. - - - -Question 3. Pointeurs et tableaux à deux dimensions ---------------------------------------------------- - -En C, il est possible d'accéder aux données stockées dans un tableau à deux dimensions via la notation ``a[i][j]`` mais aussi en utilisant des pointeurs. Considérons le fragment de code ci-dessous : - -.. code-block:: c - - int m[3][4]= { { 1, 2, 3, 4} , - { 5, 6, 7, 8} , - { 9, 10, 11, 12} }; - - printf("%p %d %d %d\n",m, m[1][2], m[0][5], m[2][2]); - - -Un compilateur Java n'accepterait pas de compiler ce programme qui tente d'accéder à l'élément ``m[0][5]`` de la matrice, élément qui n'existe pas sur base de l'initialisation du tableau ``m``. De nombreux compilateurs C acceptent ce fragment de code sans contrainte. Lorsque le programme s'exécute il affiche : - -.. code-block:: console - - 0x7fff5fbff750 7 6 11 - -.. question:: ptr-tableaux2d - :nb_prop: 3 - :nb_pos: 1 - - Parmi les fragments de programme ci-dessous, un seul utilisant la notation avec les pointeurs est correct et affiche la même sortie. Lequel ? - - .. positive:: - - - .. code-block:: c - - int *ptr; - - ptr=&(m[0][0]); - printf("%p %d %d %d\n",ptr, *(ptr+4*1+2), *(ptr+4*0+5), *(ptr+2*4+2)); - - - .. negative:: - - .. code-block:: c - - int **ptr=m; - printf("%p %d %d %d\n",ptr, *(ptr+4*1+2), *(ptr+4*0+5), *(ptr+2*4+2)); - - .. comment:: - - La déclaration ``int **ptr=m`` est invalide. - - .. negative:: - - .. code-block:: c - - int *ptr=m; - printf("%p %d %d %d\n",ptr, *(ptr+4*1+2), *(ptr+4*0+5), *(ptr+2*4+2)); - - - .. comment:: - - La déclaration ``int *ptr=m;`` est invalide, ``m`` n'est pas de type ``int *``. - -Question 4. Variable ``errno`` ------------------------------- -.. question:: errno - :nb_prop: 3 - :nb_pos: 1 - - En C, la variable ``errno`` est utilisée par le système pour fournir une indication sur une erreur qui s'est produite lors de l'exécution d'un appel système ou d'une fonction de la librairie. Parmi les fonctions ci-dessous, une seule ne modifie pas ``errno`` en cas d'erreur. Laquelle ? - - .. positive:: - - `getpid(2)`_ - - .. comment:: - - Voir page de manuel. - - .. negative:: - - `malloc(3)`_ - - .. comment:: - - Notez que `malloc(3)`_ retourne ``NULL`` en cas d'erreur d'allocation mais met ENONMEM comme erreur dans ``errno`` - - .. positive:: - - `exit(2)`_ - - .. comment:: - - Comme cette fonction ne se termine jamais, elle ne peux pas modifier ``errno``. - - .. negative:: - - `setenv(3)`_ - - .. comment:: - - Voir page de manuel. - - .. negative:: - - `unsetenv(3)`_ - - .. comment:: - - Voir page de manuel. - - .. negative:: - - `pthread_join(3)`_ - - .. comment:: - - Voir page de manuel et aussi http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_join.html. La plupart des fonctions pthread_* ne modifient pas la valeur de ``errno``, mais le standard n'est pas 100% clair sur ce qu'une implémentation doit faire. Linux ne semble pas fixer la valeur de ``errno``. - - diff --git a/Exercices/mcq-ex/qcm-5.rst.old b/Exercices/mcq-ex/qcm-5.rst.old deleted file mode 100644 index 82f2193..0000000 --- a/Exercices/mcq-ex/qcm-5.rst.old +++ /dev/null @@ -1,330 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-5 - -Cette semaine porte sur deux modules de théorie. Le premier est la fin du chapitre consacré aux bases du langage C : - - - :ref:`complementsC` - -Le second est le début du chapitre consacré aux systèmes multiprocesseurs et l'utilisation de threads en particulier : - - - :ref:`threads` - -Question 1. Pointeurs en assembleur ------------------------------------ - -Pour comprendre le fonctionnement des pointeurs en C, il est parfois utile de se ramener à la traduction en assembleur de fragments de code C. Considérons les lignes suivantes : - - .. code-block:: c - - int a=1252; - int * ptr; - - int main(int argc, const char *argv[]) { - ptr=&a; - } - -.. question:: ptrasm - :nb_prop: 3 - :nb_pos: 1 - - Parmi les séquences d'instructions en assembleur ci-dessous, une seule est la traduction de l'assignation de l'adresse de ``a`` au pointeur ``ptr``. Laquelle - - .. positive:: - - - .. code-block:: nasm - - leal a, %eax - movl %eax, ptr - - .. negative:: - - - .. code-block:: nasm - - movl a, %eax - movl ptr, %ecx - movl %eax, (%ecx) - - .. comment:: Cette séquence d'instructions est la traduction de ``*ptr=a``. - - .. negative:: - - .. code-block:: nasm - - movl a, %eax - movl %eax, ptr - - .. comment:: Cette séquence d'instructions est la traduction de ``ptr=(int )a;``. - - .. negative:: - - - .. code-block:: nasm - - pushl %eax - leal (%esp), %eax - movl a, %ecx - movl %ecx, (%esp) - movl %eax, ptr - popl %eax - - .. comment:: - - Cette séquence d'instructions est la traduction de : - - .. code-block:: c - - int b=a; - ptr=&(b); - - .. negative:: - - - .. code-block:: nasm - - leal a, %eax - addl $4, %eax - movl %eax, ptr - - .. comment:: - - Cette séquence d'instructions est la traduction de ``ptr=&a+1;``. - - - -Question 6. Utilisation de `pthread_create(3)`_ ------------------------------------------------- - - -.. question:: pthread_create - :nb_prop: 3 - :nb_pos: 1 - - - La fonction `pthread_create(3)`_ permet de créer un thread. Parmi les fragments de code ci-dessous, un seul crée correctement un thread qui appelle la fonction ``f`` en lui passant la chaîne de caractères ``s`` comme argument. Lequel ? - - .. positive:: - - .. code-block:: c - - void * f( void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char *s; - err=pthread_create(&t,NULL,&(f),(void *) s); - } - - - .. negative:: - - .. code-block:: c - - void * f (void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char *s; - err=pthread_create(&t,NULL,&(f),(void *) &s); - } - - .. comment:: Ce fragment contient une erreur. La fonction ``f`` a la bonne signature, mais le dernier argument à `pthread_create(3)`_ doit être de type ``void *``, or ``s`` est un ``char *`` et donc ce dernier argument doit être ``(void *) s``. - - .. negative:: - - .. code-block:: c - - void f(void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t *t; - int err; - char *s; - err=pthread_create(t,NULL,*f,(void *) *s); - } - - .. comment:: Ce fragment contient plusieurs erreurs. La fonction ``f`` n'a pas la bonne signature (d'ailleurs ``return NULL;`` pour une fonction ``void`` est incorrect). Ensuite, l'appel à `pthread_create(3)`_ doit prendre comme premier argument l'adresse vers une structure de type ``pthread_t`` qui est stockée en mémoire. Ce n'est pas le cas ici. Les troisième et quatrième arguments sont également incorrects. - - .. negative:: - - .. code-block:: c - - - void *f(void ** param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char s; - err=pthread_create(&t,NULL,&(f),(void *) s); - } - - .. comment:: Dans ce fragment de code, la signature de la fonction ``f`` ainsi que l'appel à `pthread_create(3)`_ sont incorrects. - - - -Question 7. Passage d'arguments à un thread -------------------------------------------- - -Considérons un thread qui a pour objectif de convertir une fraction en un nombre en virgule flottante. Ce n'est pas une bonne utilisation de threads puisque le calcul à effectuer est très simple, mais cela nous permettra de voir comment un thread peut recevoir des arguments directement. En dehors des threads, cette fonction de conversion pourrait s'écrire : - -.. code-block:: c - - struct fraction { - int num; - int denum; - }; - - typedef struct fraction Fraction_t; - - float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - } - -.. question:: argthread - :nb_prop: 3 - :nb_pos: 1 - - Parmi les programmes ci-dessous, un seul calcule correctement la valeur attendue (le test des valeurs de retour des fonctions n'est pas présenté pour garder le code concis). Lequel ? - - - .. positive:: - - - .. code-block:: c - - void *mythread(void * param) { - Fraction_t *f=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) f->num/ (float) f->denum; - return((void *) r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void **) &r); - - } - - - .. negative:: - - .. code-block:: c - - void *mythread(void * param) { - Fraction_t f= *param; - float r; - r=(float) f.num/ (float) f.denum; - return((void *) &r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void **) &r); - - } - - .. comment:: La fonction ``mythread`` est incorrect. L'initialisation de ``f`` ne fonctionne pas et en plus le résultat de la fonction est une variable locale (``r``) qui disparaît après son exécution. L'adresse de cette variable, même en étant castée en ``void *`` ne peut pas être retournée à la fonction ``main``. - - .. negative:: - - .. code-block:: c - - - void *mythread(void * param) { - Fraction_t *t=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) t->num/ (float) t->denum; - return((void *) r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float r; - int err; - - err=pthread_create(&t,NULL,&mythread,&f); - r=pthread_join(t,NULL); - - } - - .. comment:: Dans cette variable, l'appel à `pthread_join(3)`_ est incorrect. - - .. negative:: - - .. code-block:: c - - float mythread(Fraction_t param) { - float *r=(float *)malloc(sizeof(float)); - *r=(float) param->num/ (float) param->denum; - return(r); - } - - int main (int argc, char *argv[]) { - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void *) &r); - } - - .. comment:: Cette variante contient deux erreurs. La première est le prototype de la fonction ``mythread``. Celle-ci doit obligatoirement être de type ``void * fct(void * param)``, il n'est pas possible d'utiliser un autre prototype. Ensuite, l'appel à `pthread_join(3)`_ est incorrect puisque le deuxième argument de `pthread_join(3)`_ doit être de type ``void **`` et non ``void *``. - - -.. include:: ../../links.rst -.. include:: ../../man_links.rst -.. include:: ../../incl_links.rst diff --git a/Exercices/mcq-ex/qcm-6.rst b/Exercices/mcq-ex/qcm-6.rst deleted file mode 100644 index e850fd7..0000000 --- a/Exercices/mcq-ex/qcm-6.rst +++ /dev/null @@ -1,722 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-6 - -Cette semaine porte sur la communication et la synchronisation entre threads. Plus précisément, la matière est décrite dans les deux sections suivantes : - - - :ref:`theorie:threads` (sauf la section `Utilisation d'instruction atomique`) - - :ref:`theorie:comthreads` (jusqu'à la section `Le problème des philosophes`) - -.. - `Communication entre threads <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Threads/threads2.html>`_ -.. - `Coordination entre threads <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Threads/threads2.html#coordination-entre-threads>`_ - - - - -Question 1. Utilisation de `pthread_create(3)`_ ------------------------------------------------- - - -.. question:: pthread_create - :nb_prop: 3 - :nb_pos: 1 - - - La fonction `pthread_create(3)`_ permet de créer un thread. Parmi les fragments de code ci-dessous, un seul crée correctement un thread qui appelle la fonction ``f`` en lui passant la chaîne de caractères ``s`` comme argument. Lequel ? - - .. positive:: - - .. code-block:: c - - void * f( void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char *s; - err=pthread_create(&t,NULL,&(f),(void *) s); - } - - - .. negative:: - - .. code-block:: c - - void * f (void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char *s; - err=pthread_create(&t,NULL,&(f),(void *) &s); - } - - .. comment:: Ce fragment contient une erreur. La fonction ``f`` a la bonne signature, mais le dernier argument à `pthread_create(3)`_ doit être de type ``void *``, or ``s`` est un ``char *`` et donc ce dernier argument doit être ``(void *) s``. - - .. negative:: - - .. code-block:: c - - void f(void * param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t *t; - int err; - char *s; - err=pthread_create(t,NULL,*f,(void *) *s); - } - - .. comment:: Ce fragment contient plusieurs erreurs. La fonction ``f`` n'a pas la bonne signature (d'ailleurs ``return NULL;`` pour une fonction ``void`` est incorrect). Ensuite, l'appel à `pthread_create(3)`_ doit prendre comme premier argument l'adresse vers une structure de type ``pthread_t`` qui est stockée en mémoire. Ce n'est pas le cas ici. Les troisième et quatrième arguments sont également incorrects. - - .. negative:: - - .. code-block:: c - - - void *f(void ** param) { - // incomplet - return NULL; - } - - int main (int argc, char *argv[]) { - - pthread_t t; - int err; - char s; - err=pthread_create(&t,NULL,&(f),(void *) s); - } - - .. comment:: Dans ce fragment de code, la signature de la fonction ``f`` ainsi que l'appel à `pthread_create(3)`_ sont incorrects. - - - -Question 2. Passage d'arguments à un thread -------------------------------------------- - -Considérons un thread qui a pour objectif de convertir une fraction en un nombre en virgule flottante. Ce n'est pas une bonne utilisation de threads puisque le calcul à effectuer est très simple, mais cela nous permettra de voir comment un thread peut recevoir des arguments directement. En dehors des threads, cette fonction de conversion pourrait s'écrire : - -.. code-block:: c - - struct fraction { - int num; - int denum; - }; - - typedef struct fraction Fraction_t; - - float tofloat(Fraction_t t) { - return (float) t.num/ (float) t.denum; - } - -.. question:: argthread - :nb_prop: 3 - :nb_pos: 1 - - Parmi les programmes ci-dessous, un seul calcule correctement la valeur attendue (le test des valeurs de retour des fonctions n'est pas présenté pour garder le code concis). Lequel ? - - - .. positive:: - - - .. code-block:: c - - void *mythread(void * param) { - Fraction_t *f=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) f->num/ (float) f->denum; - return((void *) r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void **) &r); - - } - - - .. negative:: - - .. code-block:: c - - void *mythread(void * param) { - Fraction_t f= *param; - float r; - r=(float) f.num/ (float) f.denum; - return((void *) &r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void **) &r); - - } - - .. comment:: La fonction ``mythread`` est incorrect. L'initialisation de ``f`` ne fonctionne pas et en plus le résultat de la fonction est une variable locale (``r``) qui disparaît après son exécution. L'adresse de cette variable, même en étant castée en ``void *`` ne peut pas être retournée à la fonction ``main``. - - .. negative:: - - .. code-block:: c - - - void *mythread(void * param) { - Fraction_t *t=(Fraction_t *) param; - float *r=(float *)malloc(sizeof(float)); - *r=(float) t->num/ (float) t->denum; - return((void *) r); - } - - int main (int argc, char *argv[]) { - - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - float r; - int err; - - err=pthread_create(&t,NULL,&mythread,&f); - r=pthread_join(t,NULL); - - } - - .. comment:: Dans cette variable, l'appel à `pthread_join(3)`_ est incorrect. - - .. negative:: - - .. code-block:: c - - float mythread(Fraction_t param) { - float *r=(float *)malloc(sizeof(float)); - *r=(float) param->num/ (float) param->denum; - return(r); - } - - int main (int argc, char *argv[]) { - pthread_t t; - Fraction_t f; - f.num=1; - f.denum=3; - printf("%f \n",tofloat(f)); - float *r; - int err; - - err=pthread_create(&t,NULL,&mythread,&(f)); - - err=pthread_join(t,(void *) &r); - } - - .. comment:: Cette variante contient deux erreurs. La première est le prototype de la fonction ``mythread``. Celle-ci doit obligatoirement être de type ``void * fct(void * param)``, il n'est pas possible d'utiliser un autre prototype. Ensuite, l'appel à `pthread_join(3)`_ est incorrect puisque le deuxième argument de `pthread_join(3)`_ doit être de type ``void **`` et non ``void *``. - - -Question 3. Algorithme de Peterson ----------------------------------- - -.. question:: peterson - :nb_prop: 3 - :nb_pos: 1 - - L'algorithme de Peterson peut s'écrire de différentes façons. Pour bien comprendre son fonctionnement, il est utile de réfléchir à d'autres formulations que celle utilisées dans le syllabus. Parmi les fragments de code ci-dessous, un seul implémente correctement l'algorithme de Peterson. Lequel ? - - - .. positive:: - - .. code-block:: c - - /* initialisation */ - bool in1 = false; - bool in2 = false; - int last = 1; - // thread 1 - while (true) { - in1 = true; - last = 1; - while ( in2 && (last==1)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - in2 = true; - last = 2; - while ( in1 && (last==2)) {}; - section_critique(); - in2=false; - // ... - } - - .. positive:: - - .. code-block:: c - - /* initialisation */ - bool in1 = false; - bool in2 = false; - int last = 2; - // thread 1 - while (true) { - in1 = true; - last = 1; - while ( in2 && (last==1)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - in2 = true; - last = 2; - while ( in1 && (last==2)) {}; - section_critique(); - in2=false; - // ... - } - - .. negative:: - - - .. code-block:: c - - // initialisation - bool in1 = false; - bool in2 = false; - int last = 1; - // thread 1 - while (true) { - in1 = true; - last = 1; - while ( in1 && (last==1)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - in2 = true; - last = 2; - while ( in2 && (last==2)) {}; - section_critique(); - in2=false; - // ... - } - - .. comment:: - - Cette solution ne fonctionne pas. Si un des deux threads est seul, il n'entrera jamais en section critique. - - .. negative:: - - .. code-block:: c - - // initialisation - bool in1 = false; - bool in2 = false; - int last = 2; - // thread 1 - while (true) { - in1 = true; - last = 1; - while ( in2 && (last==2)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - in2 = true; - last = 2; - while ( in1 && (last==1)) {}; - section_critique(); - in2=false; - // ... - } - - .. comment:: - - Cette solution ne fonctionne pas. Il est possible que le thread 1 rentre en section critique puis le thread 2 met ``last`` à 2 et peut également y entrer sans que thread 1 n'en soit sorti. - - .. negative:: - - .. code-block:: c - - // initialisation - bool in1 = false; - bool in2 = false; - int last = 1; - // thread 1 - while (true) { - last = 1; - in1 = true; - while ( in2 && (last==1)) {}; - section_critique(); - in1=false; - // ... - } - // thread2 - while (true) { - last = 2; - in2 = true; - while ( in1 && (last==2)) {}; - section_critique(); - in2=false; - // ... - } - - .. comment:: - - Cette solution ne fonctionne pas. Il y a un risque de violation de section critique. Si le thread 1 fait ``last=1;`` puis est interrompu avant de faire ``in1=true;``. Le thread 2 exécute alors ``last=2;`` suivi de ``in2=true;``. A cet instant, ``in2==false`` et le thread 2 rentre en section critique puisque ``in1==false``. Le thread 1 se réveille et exécute ``in1=true;``. Il peut ensuite immédiatement entre en section critique puisque ``last`` vaut ``2`` à cet instant. - -Question 4. Initialisation de mutex ------------------------------------ - -.. question:: mutexinit - :nb_prop: 3 - :nb_pos: 1 - - Avant de pouvoir utiliser un mutex POSIX, il est nécessaire de déclarer la structure correspondante et initialiser le mutex. Parmi les fragments de code ci-dessous, lequel est celui qui déclare et initialise correctement un mutex ? - - .. positive:: - - .. code-block:: c - - pthread_mutex_t mutex; - pthread_mutexattr_t attr; - - err= pthread_mutexattr_init(&attr); - if(err!=0) - error(err,"pthread_mutexattr_init"); - - err=pthread_mutex_init( &mutex, &attr); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. comment:: - - Notez que dans ce cas, le mutex est initialisé avec les attributs par défaut. - - - .. positive:: - - .. code-block:: c - - pthread_mutex_t mutex; - - err=pthread_mutex_init( &mutex, NULL); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. comment:: - - Notez que dans ce cas, le mutex est initialisé avec les attributs par défaut. - - .. negative:: - - - .. code-block:: c - - pthread_mutex_t mutex; - pthread_mutexattr_t attr; - - err= pthread_mutexattr_init(attr); - if(err!=0) - error(err,"pthread_mutexattr_init"); - - err=pthread_mutex_init(mutex, attr); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. comment:: Tant `pthread_mutexattr_init(3posix)`_ que `pthread_mutex_init(3posix)`_ prennent comme arguments un *pointeur* vers une structure de type ``pthread_mutex_t``. Ces deux fonctions modifient le contenu de cette structure et doivent donc en recevoir l'adresse comme argument. - - - .. negative:: - - .. code-block:: c - - pthread_mutex_t mutex; - pthread_mutexattr_t attr; - - err= pthread_mutexattr_init(&attr); - if(err!=0) - error(err,"pthread_mutexattr_init"); - - err=pthread_mutex_init(&mutex, attr); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. comment:: Tant `pthread_mutexattr_init(3posix)`_ que `pthread_mutex_init(3posix)`_ prennent comme arguments un *pointeur* vers une structure de type ``pthread_mutex_t``. Ces deux fonctions modifient le contenu de cette structure et doivent donc en recevoir l'adresse comme argument. - - - .. negative:: - - .. code-block:: c - - pthread_mutex_t *mutex; - pthread_mutexattr_t *attr; - - err= pthread_mutexattr_init(attr); - if(err!=0) - error(err,"pthread_attr_init"); - - err=pthread_mutex_init(mutex, attr); - if(err!=0) - error(err,"pthread_mutex_init"); - - .. comment:: Tant `pthread_mutexattr_init(3posix)`_ que `pthread_mutex_init(3posix)`_ prennent comme arguments un *pointeur* vers une structure de type ``pthread_mutex_t``. La mémoire permettant de stocker ces deux structures doit avoir été réservée en utilisant `malloc(3)`_ avant de faire appel à ces deux fonctions. - - - -Question 5. Utilisation de `pthread_mutex_lock(3posix)`_ et `pthread_mutex_unlock(3posix)`_ -------------------------------------------------------------------------------------------- - -.. question:: pthread_mutex_lock - :nb_prop: 3 - :nb_pos: 1 - - Un programme utilisant plusieurs threads doit mettre à jour une variable globale partagée entre tous les threads. Pour cela, le développeur écrit une fonction ``update`` qui prend comme arguments la variable à mettre à jour et le mutex qui y est associé. Parmi les extraits ci-dessous, lequel permet de mettre à jour la variable sans risque de contention entre les threads qui y accèdent ? - - .. positive:: - - - .. code-block:: c - - void update(int * val, pthread_mutex_t * mutex) { - - err=pthread_mutex_lock(mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - - // mise à jour de la variable globale - - err=pthread_mutex_unlock(mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - } - - - .. negative:: - - - .. code-block:: c - - void update(int * val, pthread_mutex_t * mutex) { - - err=pthread_mutex_unlock(mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - // mise à jour de la variable globale - - err=pthread_mutex_lock(mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - - } - - .. comment:: Ce code est incorrect. Un mutex s'utilise en faisant d'abord ``pthread_mutex_lock`` et ensuite ``pthread_mutex_unlock``. - - .. negative:: - - .. code-block:: c - - void update(int val, pthread_mutex_t mutex) { - - err=pthread_mutex_lock(mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - - // mise à jour de la variable globale - - err=pthread_mutex_unlock(mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - } - - .. comment:: L'utilisation de cette fonction implique que la structure ``pthread_mutex_t`` doit être copiée sur le stack avant de pouvoir être utilisée par la fonction. Cette solution ne peut fonctionner car la structure de données qui contient toute l'information relative à un mutex et placée à un endroit donné en mémoire et ne peut pas être copiée. - - - .. negative:: - - .. code-block:: c - - void update(int * val, pthread_mutex_t mutex) { - - err=pthread_mutex_lock(&mutex); - if(err!=0) - error(err,"pthread_mutex_lock"); - - // mise à jour de la variable globale - - err=pthread_mutex_unlock(&mutex); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - } - - .. comment:: L'utilisation de cette fonction implique que la structure ``pthread_mutex_t`` doit être copiée sur le stack avant de pouvoir être utilisée par la fonction. Cette solution ne peut fonctionner car la structure de données qui contient toute l'information relative à un mutex et placée à un endroit donné en mémoire et ne peut pas être copiée. - - - -Question 6. Utilisation de plusieurs mutex ------------------------------------------- - - - -Dans certains programmes, il est nécessaire de définir plusieurs mutex qui sont utilisés par différents threads pour gérer l'accès à des variables partagées. Considérons un programme qui utilise trois variables globales et est découpé en plusieurs threads. - -.. code-block:: c - - long a=5; // variable globale partagée - long b=7; // variable globale partagée - long c=9; // variable globale partagée - - pthread_mutex_t x; // variable globale associée à a - pthread_mutex_t y; // variable globale associée à b - pthread_mutex_t z; // variable globale associée à c - - - void update(int * val1, int * val2, pthread_mutex_t * mutex1, pthread_mutex_t * mutex2) { - - err=pthread_mutex_lock(mutex1); - if(err!=0) - error(err,"pthread_mutex_lock"); - err=pthread_mutex_lock(mutex2); - if(err!=0) - error(err,"pthread_mutex_lock"); - - // mise à jour val1 - // mise à jour val2 - - err=pthread_mutex_unlock(mutex1); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - err=pthread_mutex_unlock(mutex2); - if(err!=0) - error(err,"pthread_mutex_unlock"); - - } - -.. question:: plusieursmutex - :nb_prop: 3 - :nb_pos: 1 - - Ce programme utilise plusieurs threads qui modifient les variables ``a``, ``b`` et ``c``. Parmi les fragments de code ci-dessous qui utilisent plusieurs threads, un seul est correct. Lequel ? - - .. positive:: - - - .. code-block:: c - - // thread A - - update(&a,&b,&x,&y); - update(&a,&c,&x,&z); - - // thread B - - update(&b,&c,&y,&z); - update(&a,&c,&x,&z); - - - .. positive:: - - .. code-block:: c - - // thread A - - update(&a,&b,&x,&y); - update(&b,&c,&y,&z); - - // thread B - - update(&b,&c,&y,&z); - update(&a,&c,&x,&z); - - - .. negative:: - - - .. code-block:: c - - // thread A - - update(&a,&b,&x,&y); - update(&c,&a,&z,&x); - - // thread B - - update(&b,&c,&y,&z); - update(&a,&c,&x,&z); - - .. comment:: Lorsqu'un thread utilise plusieurs ressources protégées par un mutex, il est important que les accès à ces mutex se fasse chaque fois dans le même ordre. Dans cet exemple, il faut toujours accéder à ``x`` puis à ``y`` puis à ``z`` (ou un autre ordre). Accéder à ``z`` puis à ``x`` dans le thread A et à ``x`` puis à ``z`` dans le thread B est une source de deadlocks potentiels. - - .. negative:: - - .. code-block:: none - - // thread A - - update(&a,&b,&x,&y); - update(&a,&c,&x,&z); - - // thread B - - update(&b,&c,&y,&z); - update(&c,&a,&z,&x); - - .. comment:: Lorsqu'un thread utilise plusieurs ressources protégées par un mutex, il est important que les accès à ces mutex se fasse chaque fois dans le même ordre. Dans cet exemple, il faut toujours accéder à ``x`` puis à ``y`` puis à ``z`` (ou un autre ordre). Accéder à ``z`` puis à ``x`` dans le thread B et à ``x`` puis à ``z`` dans le thread A est une source de deadlocks potentiels. - - .. negative:: - - .. code-block:: c - - // thread A - - update(&a,&b,&x,&y); - update(&a,&b,&x,&y); - - // thread B - - update(&b,&a,&y,&x); - update(&a,&c,&x,&z); - - .. comment:: Lorsqu'un thread utilise plusieurs ressources protégées par un mutex, il est important que les accès à ces mutex se fasse chaque fois dans le même ordre. Dans cet exemple, il faut toujours accéder à ``x`` puis à ``y`` puis à ``z`` (ou un autre ordre). Accéder à ``a`` puis à ``y`` dans le thread A et à ``y`` puis à ``x`` dans le thread B est une source de deadlocks potentiels. - diff --git a/Exercices/mcq-ex/qcm-7.rst b/Exercices/mcq-ex/qcm-7.rst deleted file mode 100644 index 0aeb7fb..0000000 --- a/Exercices/mcq-ex/qcm-7.rst +++ /dev/null @@ -1,445 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-7 - - -Question 1. Utilisation des sémaphores --------------------------------------- - -.. question:: sem1 - :nb_prop: 3 - :nb_pos: 1 - - Avant d'être utilisé, un sémaphore doit être déclaré et initialisé. Après son utilisation, il doit être détruit. Parmi les séquences d'instructions ci-dessous, une seule initialise correctement un sémaphore à la valeur 1. Laquelle ? - - .. positive:: - - .. code-block:: c - - sem_t semaphore; - - sem_init(&semaphore, 0,1); - - // ... - - sem_destroy(&semaphore); - - - .. positive - - .. code-block:: c - - sem_t *semaphore; - semaphore=(sem_t *)malloc(sizeof(struct sem_t)); - if (semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 0,1); - - // ... - - sem_destroy(semaphore); - - - .. negative:: - - .. code-block:: c - - sem_t semaphore; - - sem_init(semaphore, 1,0); - - // ... - - sem_destroy(semaphore); - - .. comment:: - - `sem_init(3)`_ et `sem_destroy(3)`_ prennent comme premier argument un pointeur vers une structure ``sem_t``. `sem_init(3)`_ prend comme troisième argument la valeur initiale du sémaphore. - - .. negative:: - - .. code-block:: c - - sem_t semaphore; - - sem_init(&semaphore, 1,0); - - // ... - - sem_destroy(&semaphore); - - .. comment:: - - `sem_init(3)`_ prend comme troisième argument la valeur initiale du sémaphore. - - .. negative:: - - .. code-block:: c - - sem_t *semaphore; - semaphore=(sem_t *)malloc(sizeof(struct sem_t)); - if (semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 1, 0); - - // ... - - sem_destroy(semaphore); - - .. comment:: - - `sem_init(3)`_ prend comme troisième argument la valeur initiale du sémaphore. - - - .. negative:: - - .. code-block:: none - - sem_t *semaphore; - semaphore=(sem_t *)malloc(sizeof(struct sem_t)); - if (semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 1, 0); - - // ... - - sem_destroy(&semaphore); - - .. comment:: - - `sem_init(3)`_ prend comme troisième argument la valeur initiale du sémaphore. `sem_destroy(3)`_ prennent comme premier argument un pointeur vers une structure ``sem_t``. - - -Question 2. Exclusion mutuelle ------------------------------- - -.. question:: semmutex - :nb_prop: 3 - :nb_pos: 1 - - Les sémaphores peuvent être utilisés tout comme les mutex pour résoudre des problèmes d'exclusion mutuelle. Parmi les extraits de programmes ci-dessous, une seule est une solution correcte au problème de l'exclusion mutuelle en utilisant des sémaphores. Laquelle ? - - .. positive:: - - - .. code-block:: c - - - static sem_t semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(&semaphore); - global=increment(global); - sem_post(&semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - sem_init(&semaphore, 0,1); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. positive:: - - .. code-block:: c - - - sem_t * semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(semaphore); - global=increment(global); - sem_post(semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - semaphore=(sem_t *)malloc(sizeof(sem_t)) - if(semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 0,1); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. negative:: - - - .. code-block:: c - - - static sem_t semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(&semaphore); - global=increment(global); - sem_post(&semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - sem_init(&semaphore, 0,0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. comment:: - - Pour résoudre un problème d'exclusion mutuelle, il faut initialiser le sémaphore à ``1`` avec `sem_init(3)`_ et non à ``0`` comme dans cet exemple. - - .. negative:: - - .. code-block:: c - - - static sem_t semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_post(&semaphore); - global=increment(global); - sem_wait(&semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - sem_init(&semaphore, 0,0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. comment:: - - Pour résoudre un problème d'exclusion mutuelle, il faut initialiser le sémaphore à ``1`` avec `sem_init(3)`_ et non à ``0`` comme dans cet exemple. En outre, l'accès à la section critique doit être précédée par un appel à `sem_wait(3)`_ et suivie par un appel à `sem_post(3)`_ et non l'inverse comme dans cet exemple. - - .. negative:: - - .. code-block:: c - - - sem_t * semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(semaphore); - global=increment(global); - sem_post(semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - semaphore=(sem_t *)malloc(sizeof(sem_t)) - if(semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 0,0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. comment:: - - Pour résoudre un problème d'exclusion mutuelle, il faut initialiser le sémaphore à ``1`` avec `sem_init(3)`_ et non à ``0`` comme dans cet exemple. - - .. negative:: - - .. code-block:: c - - - sem_t * semaphore; - long global=0; - - int increment(int i) { - // ... - } - - void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_post(semaphore); - global=increment(global); - sem_wait(semaphore); - } - } - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - semaphore=(sem_t *)malloc(sizeof(sem_t)) - if(semaphore==NULL) - error("malloc"); - - sem_init(semaphore, 0,0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - // reste non fourni - } - - .. comment:: - - Pour résoudre un problème d'exclusion mutuelle, il faut initialiser le sémaphore à ``1`` avec `sem_init(3)`_ et non à ``0`` comme dans cet exemple. En outre, l'accès à la section critique doit être précédée par un appel à `sem_wait(3)`_ et suivie par un appel à `sem_post(3)`_ et non l'inverse comme dans cet exemple. - - - -Question 3. Fonctions 'thread-safe' ------------------------------------ - -.. question:: threadsafe - :nb_prop: 3 - :nb_pos: 1 - - La plupart des fonctions de la librairie standard sont des fonctions thread-safe, c'est-à -dire des fonctions que l'on peut utiliser dans plusieurs threads distincts sans risquer de problèmes d'accès concurrent. Cependant, certaines fonctions, souvent parmi les plus anciennes, ne sont pas thread-safe. Parmi les fonctions ci-dessous, une seule est thread-safe. Laquelle ? - - .. positive:: - - `gettimeofday(2)`_ - - .. comment:: - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - .. positive:: - - `strsep(3)`_ - - .. comment:: - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - .. negative:: - - `getenv(3)`_ - - .. comment:: - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - .. negative:: - - `getopt(3)`_ - - .. comment:: - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - .. negative:: - - `asctime(3)`_ - - .. comment:: - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - .. negative:: - - `strtok(3)`_ - - .. comment:: - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - .. negative:: - - `strerror(3)`_ - - .. comment:: - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - .. negative:: - - `getopt(3)`_ - - .. comment:: - - Les fonctions qui ne sont pas thread-safe sont listées dans `pthreads(7)`_. - - diff --git a/Exercices/mcq-ex/qcm-8.rst b/Exercices/mcq-ex/qcm-8.rst deleted file mode 100644 index c0eb198..0000000 --- a/Exercices/mcq-ex/qcm-8.rst +++ /dev/null @@ -1,488 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - - - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-8 - -La matière couverte cette semaine couvre les processus. - - - `Les processus <http://sites.uclouvain.be/SystInfo/notes/Theorie/html/Threads/processus.html>`_ - -Question 1. `fork(2)`_ ------------------------ - -L'appel système `fork(2)`_ permet de créer une copie du processus courant. Un étudiant a écrit le fragment de code ci-dessous se trouvant dans la fonction ``main``: - -.. code-block:: c - - int n=... - for(int i=0; i<n ; i++) { - printf("i=%d\n",i); - pid_t pid; - pid=fork(); - if (pid==-1) { - perror("fork"); - exit(EXIT_FAILURE); - } - else { - if(pid!=0) { - printf("Running in %d\n",pid); - } - } - } - return(EXIT_SUCCESS); - -.. question:: fork - :nb_prop: 3 - :nb_pos: 1 - - Lors de l'exécution de ce programme, combien de processus sont créés en fonction de la valeur de ``n`` ? - - .. positive:: - - Lorsque ``n`` est initialisé à ``2``, quatre processus sont créés. - - .. comment:: - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Ces deux processus exécutent à leur tour `fork(2)`_ et deux processus supplémentaires sont donc créés. - - .. positive:: - - Lorsque ``n`` est initialisé à ``3``, huit processus sont créés. - - .. comment:: - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Ces deux processus exécutent à leur tour `fork(2)`_ et deux processus supplémentaires sont donc créés. Chacun de ces quatre processus exécute à son tour `fork(2)`_ et il y a donc huit processus au total. - - .. negative:: - - Lorsque ``n`` est initialisé à ``2``, deux processus sont créés. - - .. comment:: - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Chacun de ces deux processus poursuit son exécution et la valeur de ``i`` est incrémentée. - - .. negative:: - - Lorsque ``n`` est initialisé à ``2``, trois processus sont créés. - - .. comment:: - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Chacun de ces deux processus poursuit son exécution et la valeur de ``i`` est incrémentée. - - .. negative:: - - Lorsque ``n`` est initialisé à ``3``, trois processus sont créés. - - .. comment:: - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Chacun de ces deux processus poursuit son exécution et la valeur de ``i`` est incrémentée. - - .. negative:: - - Lorsque ``n`` est initialisé à ``3``, quatre processus sont créés. - - .. comment:: - - Le premier processus démarre son exécution. Il exécute `fork(2)`_. Un nouveau processus est donc créé. Chacun de ces deux processus poursuit son exécution et la valeur de ``i`` est incrémentée. - -Question 2. `execve(2)`_ ------------------------- - -.. question:: execve - :nb_prop: 3 - :nb_pos: 1 - - Parmi les extraits de programme ci-dessous, lequel est un appel correct à `execve(2)`_ pour lancer le programme ``/bin/echo`` avec comme arguments ``-n`` et ``SINF1252`` ? - - .. positive:: - - - .. code-block:: c - - char *arguments[]={"echo", "-n", "SINF1252", NULL}; - char *environnement[]={"LANG=fr",NULL}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - .. positive:: - - .. code-block:: c - - - char prog[]="echo"; - char param1[]="-n"; - char param2[]="SINF1252"; - char *arguments[4]; - arguments[0]=prog; - arguments[1]=param1; - arguments[2]=param2; - arguments[3]=NULL; - char *environnement[]={"LANG=fr", NULL}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - - .. negative:: - - - .. code-block:: c - - char arguments[]={"echo", "-n", "SINF1252", NULL}; - char environnement[]={"LANG=fr",NULL}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - - .. comment:: - - Les deuxième et troisième arguments à `execve(2)`_ doivent être de type ``char *arg[]``. - - .. negative:: - - .. code-block:: c - - - char prog[]="echo"; - char param1[]="-n"; - char param2[]="SINF1252"; - char *arguments[4]; - arguments[0]=prog; - arguments[1]=param1; - arguments[2]=param2; - arguments[3]=NULL; - char *environnement[]={"LANG=fr"}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - .. comment:: - - Les deuxième et troisième arguments à `execve(2)`_ doivent être de type ``char *arg[]``. - - .. negative:: - - .. code-block:: c - - - char prog[]="echo"; - char param1[]="-n"; - char param2[]="SINF1252"; - char *arguments[3]; - arguments[0]=prog; - arguments[1]=param1; - arguments[2]=param2; - char *environnement[]={"LANG=fr"}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - .. comment:: - - Le dernier élément des tableaux de pointeurs ``argv` et ``environnement`` doivent obligatoirement contenir ``NULL``. Sans cela, il n'est pas possible de déterminer le nombre d'éléments dans ces tableaux. - - .. negative:: - - .. code-block:: c - - char *arguments[]={"echo", "-n", "SINF1252"}; - char *environnement[]={"LANG=fr"}; - int err=execve("/bin/echo", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - - .. comment:: - - Le dernier élément des tableaux de pointeurs ``argv` et ``environnement`` doivent obligatoirement contenir ``NULL``. Sans cela, il n'est pas possible de déterminer le nombre d'éléments dans ces tableaux. - - -Question 3. `execve(2)`_ ------------------------- - -.. question:: execve2 - :nb_prop: 3 - :nb_pos: 1 - - L'appel système `execve(2)`_ permet d'exécuter un programme en remplaçant le programme en cours d'exécution par celui se trouvant sur disque dont le nom est spécifié. Un étudiant a écrit le programme ci-dessous pour tester `execve(2)`_ : - - .. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - #include <unistd.h> - - extern char **environ; - - int main (int argc, char *argv[]) { - - int n=... - int i=0; - for(i=0;i<n;i++) { - sleep(1); - printf("%d\n",i); - int err=execve(argv[0], argv, environ); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - } - return(EXIT_SUCCESS); - } - - .. positive:: - - Lorsque ``n`` est initialisé à ``3``, le programme ne s'arrête jamais et affiche : - - .. code-block:: console - - 0 - 0 - 0 - ... - - .. comment:: - - Lors de l'exécution de `execve(2)`_, le programme est remplacé par lui-même puisque ``argv[0]`` contient toujours le nom de l'exécutable qui est en train d'être exécuté. Ce programme redémarre son exécution au début de la fonction ``main``... - - .. positive:: - - Lorsque ``n`` est initialisé à ``2``, le programme ne s'arrête jamais et affiche : - - .. code-block:: console - - 0 - 0 - 0 - ... - - - .. comment:: - - Lors de l'exécution de `execve(2)`_, le programme est remplacé par lui-même puisque ``argv[0]`` contient toujours le nom de l'exécutable qui est en train d'être exécuté. Ce programme redémarre son exécution au début de la fonction ``main``... - - - - .. negative:: - - Lorsque ``n`` est initialisé à ``3``, le programme affiche : - - .. code-block:: console - - 0 - 1 - 2 - - - .. comment:: - - Lors de l'exécution de `execve(2)`_, le programme est remplacé par lui-même puisque ``argv[0]`` contient toujours le nom de l'exécutable qui est en train d'être exécuté. Ce programme redémarre son exécution au début de la fonction ``main``... - - .. negative:: - - Lorsque ``n`` est initialisé à ``2``, le programme affiche : - - .. code-block:: console - - 0 - 1 - - - .. comment:: - - Lors de l'exécution de `execve(2)`_, le programme est remplacé par lui-même puisque ``argv[0]`` contient toujours le nom de l'exécutable qui est en train d'être exécuté. Ce programme redémarre son exécution au début de la fonction ``main``... - - .. negative:: - - Lorsque ``n`` est initialisé à ``2``, l'appel à `execve(2)`_ est erroné et le programme s'arrête. - - .. comment:: - - L'appel à `execve(2)`_ est tout à fait correct, même si il n'est pas recommandé d'utiliser `execve(2)`_ de cette façon... - - .. negative:: - - - Lorsque ``n`` est initialisé à ``3``, l'appel à `execve(2)`_ est erroné et le programme s'arrête. - - .. comment:: - - L'appel à `execve(2)`_ est tout à fait correct, même si il n'est pas recommandé d'utiliser `execve(2)`_ de cette façon... - - - -Question 4. Utilisation de `waitpid(2)`_ ----------------------------------------- - -.. question:: waitpid - :nb_prop: 3 - :nb_pos: 1 - - L'appel système `waitpid(2)`_ permet à un processus d'attendre les valeurs de retour de ses processus fils. Un étudiant a écrit un programme qui lance de nombreux processus et veut faire une boucle qui permet de récupérer tous les processus fils qu'il a créé. Parmi les fragments de code ci-dessous, un seul est correct. Lequel ? - - - .. positive:: - - - - .. code-block:: c - - - int fils; - int done=false; - while(!done) { - int status; - fils=waitpid(0,&status,0); - if( (fils==-1) && (errno==ECHILD) ) - done=true; - } - - .. positive:: - - .. code-block:: c - - - int fils; - int done=false; - while(!done) { - int status; - if( (waitpid(0,&status,0)==-1) && (errno==ECHILD) ) - done=true; - } - - - - .. negative:: - - - .. code-block:: c - - - int fils; - int done=false; - int status; - while(waitpid(0,status,0)!=0) { - if( (fils==-1) && (errno==ECHILD) ) - done=true; - } - - - .. comment:: - - Le second argument de `waitpid(2)`_ est un pointeur vers un entier et non un entier. - - .. negative:: - - - .. code-block:: c - - - int fils; - int done=false; - while(!done) { - int status; - fils=waitpid(getpid(),&status,0); - if( (fils==-1) && (errno==ECHILD) ) - done=true; - } - - .. comment:: - - Lorsque le premier argument de `waitpid(2)`_ est un entier positif, il s'agit de l'identifiant du processus pour lequel `waitpid(2)`_ attend. Dans ce cas, `getpid(2)`_ retourne l'identifiant du processus qui existe `waitpid(2)`_ et un processus ne peut pas être un fils de lui-même. - -Question 5. Récupération du résultat d'un processus avec `waitpid(2)`_ ----------------------------------------------------------------------- - -.. question:: waitpid2 - :nb_prop: 3 - :nb_pos: 1 - - Un étudiant souhaite récupérer le résultat du processus ``pid`` qu'il a créé en faisant `fork(2)`_ et l'afficher sur ``stdout``. Parmi les fragments de programmes ci-dessous, un seul est correct. Lequel ? - - .. positive:: - - - .. code-block:: c - - int status; - int p=waitpid(pid,&status,0); - if(p==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(WIFEXITED(status)) { - printf("Le processus a retourne %d\n",WEXITSTATUS(status)); - } - - - .. negative:: - - - .. code-block:: c - - int status; - int p=waitpid(pid,status,0); - if(p==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - printf("Le processus a retourne %d\n",WEXITSTATUS(status)); - - .. comment:: - - L'appel système `waitpid(2)`_ prend comme second argument un pointeur vers un ``int`` et non un `ìnt``. - - .. negative:: - - - .. code-block:: c - - int status; - int p=waitpid(pid,&status,0); - if(p==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - printf("Le processus a retourne %d\n",p); - - .. comment:: - - La valeur de retour de `waitpid(2)`_ indique si l'appel système s'est exécuté correctement ou non. Pour récupérer le statut du processus fils ``pid``, il faut utiliser la macro ``WEXITSTATUS``. - - .. negative:: - - .. code-block:: c - - int *status; - int p=waitpid(pid,status,0); - if(p==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - printf("Le processus a retourne %d\n",p); - - .. comment:: - - La valeur de retour de `waitpid(2)`_ indique si l'appel système s'est exécuté correctement ou non. Pour récupérer le statut du processus fils ``pid``, il faut utiliser la macro ``WEXITSTATUS``. Le pointeur ``int * status`` doit pointer vers une zone mémoire allouée par malloc. Ici, il pointe vers ``NULL``. - diff --git a/Exercices/mcq-ex/qcm-9.rst b/Exercices/mcq-ex/qcm-9.rst deleted file mode 100644 index c6ccfa1..0000000 --- a/Exercices/mcq-ex/qcm-9.rst +++ /dev/null @@ -1,534 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Questions à choix multiples -=========================== - -:task_id: sinf1252-9 - -La matière couverte cette semaine porte sur le système de fichiers et sa manipulation par les processus. - -Question 1. Accès aux fichiers ------------------------------- - -Les bits de permissions permet de contrôler l'accès aux fichiers. Considérons le répertoire ci-dessous : - -.. code-block:: console - - -rw-r--r-- 1 obo obo 0 23 mar 21:57 a - -r-xr-x--x 1 obo obo 0 23 mar 21:57 b - -rw------- 1 obo obo 0 23 mar 21:57 c - -rw------x 1 obo obo 0 23 mar 21:57 d - --w-----w- 1 obo obo 0 23 mar 21:57 e - - -.. question:: fileperm - :nb_prop: 3 - :nb_pos: 1 - - Un seul des groupes d'affirmations ci-dessous est vrai. Lequel ? - - .. positive:: - - - l'utilisateur ``obo`` peut lire le fichier ``c``, exécuter le fichier ``b`` et modifier le contenu du fichier ``d`` - - - .. positive:: - - l'utilisateur ``obo`` peut lire le fichier ``a``, exécuter le fichier ``b`` et modifier le contenu du fichier ``c`` - - - .. negative:: - - l'utilisateur ``obo`` peut lire le fichier ``e``, exécuter le fichier ``b`` et modifier le contenu du fichier ``e`` - - .. comment:: - - Le fichier ``e`` n'est pas lisible par cet utilisateur. - - .. negative:: - - l'utilisateur ``obo`` peut lire le fichier ``c``, exécuter le fichier ``d`` et modifier le contenu du fichier ``b`` - - .. comment:: - - Le fichier ``b`` n'est pas modifiable par cet utilisateur. - - .. negative:: - - l'utilisateur ``obo`` peut lire le fichier ``c``, exécuter le fichier ``a`` et modifier le contenu du fichier ``d`` - - .. comment:: - - Le fichier ``a`` n'est pas exécutable par cet utilisateur. - - -Question 2. Fichiers et répertoires ------------------------------------ - -Les permissions associées aux répertoires ont un rôle un peu différent de celles qui sont associées aux fichiers. Considérons le répertoire ci-dessous qui contient 4 sous-répertoires. - -.. code-block:: console - - drw------- 2 obo obo 68 23 mar 22:25 a - dr-x------ 2 obo obo 68 23 mar 22:25 b - d-wx------ 3 obo obo 102 23 mar 22:27 c - drwx------ 3 obo obo 102 23 mar 22:26 d - -Chacun de ces répertoires contient un fichier qui a comme nom ``f``. La commande `touch(1)`_ peut être utilisée pour créer un fichier vide. Ainsi, dans ce répertoire, la commande ``touch f`` va créer le fichier ``f`` - -.. code-block:: console - - ls -l f - -rw-r--r-- 1 obo obo 0 23 mar 22:30 f - -.. question:: touch - :nb_prop: 3 - :nb_pos: 1 - - - Dans le répertoire ci-dessus, une seule séquence de commandes fonctionne sans erreur. Laquelle ? - - .. positive:: - - .. code-block:: console - - ls -l d - touch c/x - cd b - - .. positive:: - - .. code-block:: console - - ls -l b - cat c/f - cd d - - - .. negative:: - - - .. code-block:: console - - ls -l c - touch d/x - cd a - - .. comment:: - - Il n'est pas possible d'aller dans le répertoire ``a``. En outre, le contenu du répertoire ``c`` ne peut pas être lu avec `ls(1)`_ - - .. negative:: - - - .. code-block:: console - - ls -l c - touch a/x - cd c - - .. comment:: - - Il n'est pas possible de créer un fichier dans le répertoire ``a``. - - .. negative:: - - .. code-block:: console - - ls -l b - touch b/x - cd b - - .. comment:: - - Il n'est pas possible de créer un fichier dans le répertoire ``b``. - - - -Question 3. Permissions sur les fichiers ----------------------------------------- - -.. question:: chmod - :nb_prop: 3 - :nb_pos: 1 - - La page de manuel de `chmod(1posix)`_ décrit en détails les permissions relatives aux fichiers et répertoires. Ces permissions peuvent être représentées sous une forme numérique ou textuelle. Parmi les affirmations suivantes, relatives à des permissions pour des `fichiers`, un seul groupe est vrai. Lequel ? - - - .. positive:: - - - - Le fichier ayant ``00467`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00777`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00600`` ne peut être lu que par son propriétaire - - .. positive:: - - - Le fichier ayant ``00647`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00700`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00421`` comme permissions ne peut être lu que par son propriétaire - - .. negative:: - - - - Le fichier ayant ``00476`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00747`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00601`` comme permissions ne peut être lu que par son propriétaire - - .. comment:: - - Le fichier ayant ``00476`` comme permissions ne peut être exécuté que par un membre du groupe correspondant à ce fichier. - - .. negative:: - - - Le fichier ayant ``00677`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00017`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00400`` comme permissions ne peut être lu que par son propriétaire - - .. comment:: - - Le fichier ayant ``00017`` comme permissions n'est pas lisible par son propriétaire - - .. negative:: - - - - Le fichier ayant ``00755`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00417`` comme permissions est lisible par son propriétaire - - Le fichier ayant ``00222`` comme permissions ne peut être lu que par son propriétaire - - .. comment:: - - Le fichier ayant ``00222`` comme permissions n'est pas lisible par son propriétaire - - .. negative:: - - - - Le fichier ayant ``00666`` comme permissions est exécutable par n'importe quel utilisateur - - Le fichier ayant ``00400`` comme permissions est modificale par son propriétaire - - Le fichier ayant ``00400`` comme permissions ne peut être lu que par son propriétaire - - .. comment:: - - Le fichier ayant ``00666`` comme permissions n'est pas exécutable - - -Question 4. Permissions sur les fichiers ----------------------------------------- - -Les bits de permissions associés à un fichiers sont généralement représentés sous forme textuelle lorsque la commande `ls(1)`_ affiche le contenu d'un répertoire. Considérons le répertoire ci-dessous : - - .. code-block:: console - - -rw-r--r-- 1 obo obo 0 23 mar 21:57 a - -rwxr-x--x 1 obo obo 0 23 mar 21:57 b - -rw------- 1 obo obo 0 23 mar 21:57 c - -rw------x 1 obo obo 0 23 mar 21:57 d - --w-r--rw- 1 obo obo 0 23 mar 21:57 e - -.. question:: chmod2 - :nb_prop: 3 - :nb_pos: 1 - - Parmi les commandes suivantes, un seul groupe permet d'obtenir les mêmes permissions que ci-dessous. Lequel ? - - .. positive:: - - - .. code-block:: console - - chmod 644 a - chmod 751 b - chmod 600 c - chmod 601 d - chmod 246 e - - .. negative:: - - - .. code-block:: console - - chmod 446 a - chmod 157 b - chmod 006 c - chmod 106 d - chmod 642 e - - .. comment:: - - Relisez la page de manuel de `chmod(1)`_ - - .. negative:: - - .. code-block:: console - - chmod 444 a - chmod 751 b - chmod 600 c - chmod 604 d - chmod 123 e - - .. comment:: - - Relisez la page de manuel de `chmod(1)`_ - - .. negative:: - - .. code-block:: console - - chmod 322 a - chmod 364 b - chmod 300 c - chmod 301 d - chmod 123 e - - .. comment:: - - Relisez la page de manuel de `chmod(1)`_ - - -Question 5. Système de fichiers -------------------------------- - -.. question:: inodes - :nb_prop: 3 - :nb_pos: 1 - - - Le système de fichiers Unix utilise des `inode` pour stocker les meta-données relatives à un fichier/répertoire. Parmi les groupes d'affirmations suivants, un seul est correct. Lequel ? - - .. positive:: - - - - deux fichiers se trouvant dans des répertoires différents sur le même disque peuvent avoir le même `inode` - - le champ ``nlinks`` est toujours positif - - un accès au fichier modifie le ``atime`` associé à ce fichier - - - .. negative:: - - - - deux fichiers ont toujours des `inode` différents - - l'`inode` contient le nom du fichier - - une écriture dans un fichier modifie le ``mtime`` associé à ce fichier - - .. comment:: - - Les deux premières affirmations sont fausses. - - - .. negative:: - - - un fichier et un répertoire se trouvant sur le même disque peuvent avoir le même `inode` - - une lecture dans un fichier modifie le ``mtime`` associé à ce fichier - - l'`inode` contient le nom du fichier - - .. comment:: - - Toutes les affirmations sont fausses. - - .. negative:: - - - une copie d'un fichier incrémente la valeur du champ ``nlinks`` de son `inode` - - une lecture dans un fichier modifie le ``atime`` associé à ce fichier - - il n'y a jamais deux fichiers qui ont le même `inode` - - .. comment:: - - La première et la troisième affirmation sont fausses. - -Question 6. Manipulation des répertoires ----------------------------------------- - -Les répertoires sont des fichiers spéciaux. Pour les utiliser, il faut faire appel aux fonctions `opendir(3)`_, `readdir(3)`_ et `closedir(3)`_. - -.. code-block:: c - - /* - * name!=NULL - * retourne le nombre de fichiers dans le répertoire name - * et -1 en cas d'erreur - */ - -.. question:: fileperm - :nb_prop: 3 - :nb_pos: 1 - - Parmi les séquences d'instructions ci-dessous, laquelle permet de compter le nombre de fichiers se trouvant dans le répertoire courant ? - - .. positive:: - - - .. code-block:: c - - int nfiles(char * name) { - - DIR *dirp; - struct dirent *dp; - dp=malloc(sizeof(struct dirent)); - if(dp==NULL) { - return -1; - } - dirp = opendir(name); - if(dirp==NULL) { - return -1; - } - int count=0; - while ((dp = readdir(dirp)) != NULL) { - if (dp->d_type==DT_REG) { - count++; - } - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); - } - - .. negative:: - - - .. code-block:: c - - int nfiles(char * name) { - - DIR *dirp; - struct dirent *dp; - dirp = opendir(name); - if(dirp==NULL) { - return -1; - } - int count=0; - while (readdir(dirp) != NULL) { - count++; - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); - } - - .. comment:: - - Ce code compte toutes les entrées dans le répertoire et pas seulement le fichiers. - - .. negative:: - - .. code-block:: c - - int nfiles2(char * name) { - - DIR dirp; - struct dirent dp; - dirp = opendir(name); - if(dirp==-1) { - return -1; - } - int count=0; - while ((dp = readdir(dirp)) != -1) { - count++; - } - - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); - } - - .. comment:: - - Ce code est erroné. `opendir(3)`_ retourne un pointeur et `readdir(3)`_ également. - - .. negative:: - - .. code-block:: c - - int nfiles(char * name) { - - DIR dirp; - struct dirent dp; - dirp = opendir(name); - int count=0; - while ((dp = readdir(dirp)) != NULL) { - if (dp->d_type==DT_REG) { - count++; - } - } - int err = closedir(dirp); - if(err<0) { - return -1; - } - return(count); - } - - .. comment:: - - Ce code est erroné. `opendir(3)`_ retourne un pointeur et `readdir(3)`_ également. - - -Question 7. Liens symboliques ------------------------------ - -Considérons un répertoire dans lequel les commandes suivantes sont exécutées : - -.. code-block:: console - - touch a - cp a b - ln a c - ln b d - echo "test" > c - ln -s d e - echo essai > e - - -.. question:: liens - :nb_prop: 3 - :nb_pos: 1 - - Après exécution de ces commandes, un seul des groupes d'affirmations suivant est correct. Lequel ? - - .. positive:: - - - - les fichiers ``a`` et ``c`` ont le même `inode` - - les fichiers ``b`` et ``d`` ont la même taille - - l'`inode` correspondant au fichier ``d`` indique qu'il y a deux liens vers lui - - .. positive:: - - - - les fichiers ``d`` et ``e`` ont des `inode` différents - - les fichiers ``a`` et ``c`` ont la même taille - - l'`inode` correspondant au fichier ``b`` indique qu'il y a deux liens vers lui - - - .. negative:: - - - - les fichiers ``a`` et ``c`` ont des `inode` différents - - les fichiers ``e`` et ``d`` ont la même taille - - l'`inode` correspondant au fichier ``d`` indique qu'il y a trois liens vers lui - - .. negative:: - - - les fichiers ``a`` et ``d`` ont des `inode` différents - - les fichiers ``b`` et ``d`` ont la même taille - - l'`inode` correspondant au fichier ``b`` indique qu'il y a trois liens vers lui - - .. comment:: - - Il y a deux liens (hard) vers le fichier ``b``. Le fichier ``e`` est un lien symbolique vers ce fichier et non un lien `hard`. - - .. negative:: - - - les fichiers ``b``, ``d`` et ``e`` ont le même `inode` - - les fichiers ``a`` et ``c`` ont la même taille - - l'`inode` correspondant au fichier ``a`` indique qu'il y a deux liens vers lui - diff --git a/Exercices/mcq-ex/revision.rst.old b/Exercices/mcq-ex/revision.rst.old deleted file mode 100644 index ba8cb23..0000000 --- a/Exercices/mcq-ex/revision.rst.old +++ /dev/null @@ -1,118 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -.. Les lignes qui commencent par .. sont des commentaires ou des commandes restructuredtext. Celle-ci est un commentaire - -.. Si vous proposez une ou des questions, mettez à jour l'information ci-dessous - -.. sectionauthor:: Jean Tartempion <email> - -Questions à choix multiples -=========================== - -.. La ligne ci-dessous identifie le numéro du groupe de question et ne devrait pas être modifiée - -:task_id: sinf1252-revision - -.. Toute question a un titre - -Question 1. Conversion de types -------------------------------- - -.. Si votre question comprend plusieurs paragraphe d'introduction, placez ces paragraphes avant de définir la question. Commencez votre paragraphe en première colonne pour éviter toute surprise avec les indentations. - -En C tout comme dans des langages comme Java, il est possible de convertir des nombres d'un type primitif vers un autre. Cependant, alors que le compilateur Java vérifie si la conversion est sans risque, le compilateur C ne fait aucune vérification et suppose que si le programmeur a effectué une conversion explicite entre types, il a pris ses précautions. Sur une architecture où les types de données sont stockés comme suit : - -.. Ceci est un exemple de code-source en C. Notez que le code est aligné sur la quatrième colonne comme le caractère c - -.. code-block:: c - - // char 1 octet(s) - // unsigned char 1 octet(s) - // short 2 octet(s) - // unsigned short 2 octet(s) - // int 4 octet(s) - // unsigned int 4 octet(s) - - int i; - short s; - long l; - char c; - unsigned int ui; - unsigned char uc; - unsigned long ul; - unsigned short us; - -.. Cette directive définit la question à choix multiples. Elle a un identifiant que vous devez choisir et qui doit être unique. Deux paramètres sont définis : nb_prop est le nombre de propositions qui sont présentées par le javascript (3 est un minimum, mais vous pouvez en proposer plus). nb_pos est le nombre de propositions positives qui sont présentées par le javascript. Si nb_pos > 1, alors la formulation de votre question doit demander à l'étudiant de sélectionner toutes les réponses correctes. - -.. Une question doit nécessairement contenir un paragraphe de texte. Sinon, la compilation échouera. Pensez à aligner le paragraphe contenant la question en quatrième colonne - -.. question:: revision-conversiontypes - :nb_prop: 3 - :nb_pos: 1 - - Un seul des fragments de code ci-dessous contient des conversions de type qui sont sans risque. Lequel ? - - .. positive:: - - .. code-block:: c - - i=(int ) s; - s=(short) uc; - l=(long )i; - -.. la directive positive permet de spécifier une réponse positive. Celle-ci peut contenir un paragraphe ou une autre directive restructured text (dans cet exemple du code). Pensez à aligner le contenu de la directive positive sur la huitième colonne pour éviter tout problème d'indentation. - -.. une deuxième réponse positive qui est aussi correcte. - - .. positive:: - - .. code-block:: c - - ui=(unsigned int) us; - s=(short) c; - ul=(unsigned long )ui; - -.. une première réponse négative. Notez que le commentaire permet à l'étudiant d'apprendre de ses erreurs. Celui-ci est tout aussi important que la réponse négative qui est proposée. Veillez à respecter l'alignement de la directive comment sur la huitième colonne (caractère n de negative) - - .. negative:: - - .. code-block:: c - - ui=(unsigned int ) s; - us=(unsigned short) uc; - l=(long )i; - - .. comment:: Si ``s`` est négatif, la conversion en ``unsigned int`` risque de poser problème. - -.. Dans l'exemple ci-dessous, le commentaire contient un paragraphe complet. Son indentation est alignée sur la onzième colonne. - - .. negative:: - - .. code-block:: c - - i=(int ) us; - us=(unsigned short) i; - l=(long )c; - - .. comment:: - - La conversion d'un ``int`` en un ``unsigned short`` risque de poser problème. - - .. negative:: - - .. code-block:: c - - ui=(int) s; - s=(short) c; - ul=(unsigned long )ui; - - .. comment:: La première conversion risque de poser des problèmes. - - -.. Ces include vous permettent de charger les liens vers les pages de manuel et les fichiers include standard de Linux auxquels vos commentaires et vos questions peuvent bien entendu faire appel - -.. include:: ../links.rst -.. include:: ../man_links.rst -.. include:: ../incl_links.rst diff --git a/Exercices/mcq/mcq.py b/Exercices/mcq/mcq.py deleted file mode 100644 index 7c25c41..0000000 --- a/Exercices/mcq/mcq.py +++ /dev/null @@ -1,414 +0,0 @@ -# -*- coding: utf-8 -*- -# Extension by Lionel Chalet - -from docutils import nodes -from docutils.parsers.rst import Directive -from sphinx.errors import SphinxError -import os, sys, copy, hashlib, random - -__version__ = '0.1' - -question_number = 0 -alternative_number = 0 -language = 'en' - -translations = { - 'fr': { - 'verify_title': u'Verifiez vos réponses', - 'verify': u'Vérifier' - }, - 'en': { - 'verify_title': 'Verify your answers', - 'verify': 'Verify' - } -} - -def setup(app): - app.add_config_value('mcq_nb_prop', -1, '') - app.add_config_value('mcq_nb_rows', 7, '') - app.add_config_value('mcq_upload_url', '', '') - app.add_config_value('mcq_inginious_url', '', '') - - app.add_node(Question, html=(html_visit_question, html_depart), latex=(latex_visit_question, pass_visit)) - app.add_node(Query, html=(html_visit_query, html_depart), latex=(pass_visit, pass_visit)) - app.add_node(Positive, html=(html_visit_positive, html_depart_alternative), latex=(latex_visit_posneg, latex_depart_posneg)) - app.add_node(Negative, html=(html_visit_negative, html_depart_alternative), latex=(latex_visit_posneg, latex_depart_posneg)) - app.add_node(Textbox, html=(html_visit_textbox, html_depart), latex=(latex_visit_textbox, None)) - app.add_node(Comment, html=(html_visit_comment, html_depart), latex=(skip_visit, None)) - - app.add_directive('question', QuestionDirective) - app.add_directive('positive', PositiveDirective) - app.add_directive('negative', NegativeDirective) - app.add_directive('textbox', TextboxDirective) - app.add_directive('comment', CommentDirective) - - app.connect('builder-inited', add_dependencies) - app.connect('doctree-resolved', verify_structure) - app.connect('doctree-resolved', html_add_content) - app.connect('doctree-resolved', latex_add_content) - app.connect('doctree-resolved', latex_shuffle) - app.connect('doctree-resolved', epub_add_javascript) - -class CopyableNode(nodes.General, nodes.Element): - def deepcopy(self): - """ - Nodes attributes aren't available with the LaTeX builder after the 'doctree-read' event - This is some kind of patch I suppose ... - """ - return copy.copy(self) - -class Question(CopyableNode): - id = None - nb_pos = 1 - nb_prop = -1 - -class Alternative(CopyableNode): - pass - -class Query(Alternative): - pass - -class Positive(Alternative): - pass - -class Negative(Alternative): - pass - -class Textbox(Alternative): - nb_rows = 7 - -class Comment(CopyableNode): - pass - -def html_visit_question(self, node): - global question_number, alternative_number - question_number += 1 - alternative_number = 0 - classes = 'question' - if not node.id: - node.id = 'questionId' + str(question_number) - else: - classes += ' inginious' - self.body.append(self.starttag(node, 'div', CLASS=classes, IDS=[str(node.id)])) - self.body.append("<input type='hidden' class='nb_pos' value='" + str(node.nb_pos) + "' />") - self.body.append("<input type='hidden' class='nb_prop' value='" + str(node.nb_prop) + "' />") - -def html_visit_query(self, node): - self.body.append(self.starttag(node, 'div', CLASS='query')) - -def html_visit_positive(self, node): - global alternative_number - self.body.append(self.starttag(node, 'div', CLASS='positive', IDS=[str(alternative_number)])) - html_visit_alternative(self, node) - alternative_number += 1 - -def html_visit_negative(self, node): - global alternative_number - self.body.append(self.starttag(node, 'div', CLASS='negative', IDS=[str(alternative_number)])) - html_visit_alternative(self, node) - alternative_number += 1 - -def html_visit_alternative(self, node): - if node.parent.nb_pos > 1: - self.body.append("<input type='checkbox' class='choice' name='" + str(question_number) + "' />") - else: - self.body.append("<input type='radio' class='choice' name='" + str(question_number) + "' />") - self.body.append(self.starttag(node, 'div', CLASS='content')) - -def html_visit_textbox(self, node): - self.body.append(self.starttag(node, 'div', CLASS='textbox')) - self.body.append('<textarea rows="' + str(node.nb_rows) + '" cols="65"></textarea>') - -def html_visit_comment(self, node): - self.body.append(self.starttag(node, 'div', CLASS='comment', STYLE='display:none')) - -def html_depart(self, node): - self.body.append('</div>') - -def html_depart_alternative(self, node): - for x in range(2): - html_depart(self, node) - -def skip_visit(self, node): - raise nodes.SkipNode - -def pass_visit(self, node): - pass - -def latex_visit_question(self, node): - pass - -def latex_visit_posneg(self, node): - latex_visit_posneg.count += 1 - self.body.append('\n\\needspace{3\\baselineskip}' - '\n\\CheckBox[name=' + str(latex_visit_posneg.count) + ',bordercolor=0 0 0]{}' - '\n\\vspace{-0.7cm}' - '\n\\begin{addmargin}[0.8cm]{0cm}') -latex_visit_posneg.count = 0 - -def latex_depart_posneg(self, node): - self.body.append('\\end{addmargin}\n') - -def latex_visit_textbox(self, node): - self.body.append('\n\TextFieldFill[multiline=true,height=' + str(node.nb_rows) + '\\baselineskip,bordercolor=0 0 0]{}') - raise nodes.SkipNode - -class BaseDirective(Directive): - has_content = True - - # This has to be replaced in subclasses - node_class = None - - def run(self): - node = self.node_class() - self.state.nested_parse(self.content, self.content_offset, node) - return [node] - -class QuestionDirective(BaseDirective): - optional_arguments = 1 - option_spec = { - 'nb_pos': int, - 'nb_prop': int - } - - node_class = Question - - def run(self): - node = super(QuestionDirective, self).run()[0] - if len(self.arguments) > 0: - node.id = self.arguments[0] - query = Query() - for child in node.children[:]: # Must make a copy to remove while iterating - if not isinstance(child, Alternative): - node.remove(child) - query += child - node.insert(0, query) - app = self.state.document.settings.env.app - node.nb_prop = app.config.mcq_nb_prop - for option, value in self.options.items(): - setattr(node, option, value) - validate_question_options(app, node) - return [node] - -class PositiveDirective(BaseDirective): - node_class = Positive - -class NegativeDirective(BaseDirective): - node_class = Negative - -class TextboxDirective(BaseDirective): - option_spec = { - 'nb_rows': int - } - - node_class = Textbox - - def run(self): - node = super(TextboxDirective, self).run() - app = self.state.document.settings.env.app - if 'nb_rows' in self.options: - node[0].nb_rows = validate_nb_rows(app, self.options['nb_rows']) - else: - node[0].nb_rows = validate_nb_rows(app, app.config.mcq_nb_rows) - return node - -class CommentDirective(BaseDirective): - node_class = Comment - -def add_dependencies(app): - global language - if app.config.language == 'fr': - language = 'fr' - - preamble = ('\\usepackage{scrextend}' - '\n\\usepackage{hyperref}' - '\n\\usepackage{needspace}' - '\n\n\\newlength\\TextFieldLength' - '\n\\newcommand\\TextFieldFill[2][]{%' - '\n\t\\setlength\\TextFieldLength{\\linewidth}%' - '\n\t\\settowidth{\\dimen0}{#2 }%' - '\n\t\\addtolength\\TextFieldLength{-\\dimen0}%' - '\n\t\\addtolength\\TextFieldLength{-2.22221pt}%' - '\n\t\\TextField[#1,width=\\TextFieldLength]{\\raisebox{2pt}{#2 }}%' - '\n}') - if 'preamble' in app.config.latex_elements: - app.config.latex_elements['preamble'] += '\n' + preamble - else: - app.config.latex_elements['preamble'] = preamble - - app.add_javascript('jquery-shuffle.js') - app.add_javascript('rst-form.js') - app.add_stylesheet('ext.css') - -def validate_question_options(app, node): - if node.nb_pos < 1: - app.warn('The number of positive answers to display must be greater than 0.') - node.nb_pos = 1 - if node.nb_prop < node.nb_pos: - app.warn('The number of propositions to display in a question ('+str(node.nb_prop)+') must be greater or equal than the number of positive answers ('+str(node.nb_pos)+') to display.') - nb_prop = app.config.mcq_nb_prop - if nb_prop < node.nb_pos: - node.nb_prop = sys.maxint - else: - node.nb_prop = nb_prop - if node.nb_prop == node.nb_pos: - app.warn('The number of positive answers shouldn\'t be the same as the number of propositions. It\'s like giving the answer.') - -def validate_nb_rows(app, nb_rows): - if nb_rows < 1: - app.warn('The number of rows in a textbox must be greater than 0.') - return 1 - return nb_rows - -class StructureError(SphinxError): - category = 'Wrong document structure' - -def verify_structure(app, doctree, docname): - verify_alternatives(app, doctree) - verify_comments(app, doctree) - verify_textbox(app, doctree) - verify_questions(app, doctree) - -def verify_alternatives(app, doctree): - for node in doctree.traverse(Alternative): - if type(node.parent) != Question: - raise StructureError('Every "positive", "negative" and "textbox" directives must be direct children to a "question" directive.') - if type(node) != Textbox and len(node.children) < 1: - raise StructureError('Every "question", "positive" and "negative" directives must have content.') - -def verify_comments(app, doctree): - for node in doctree.traverse(Comment): - parent_type = type(node.parent) - if len(parent_type.__bases__) < 1 or parent_type.__bases__[0] != Alternative: - raise StructureError('Every "comment" directive must be a direct child of a "question", "positive", "negative" or "textbox" directive.') - if len(node.children) < 1: - raise StructureError('Every "comment" directive must have content.') - if len(node.traverse(condition=Comment, descend=False, siblings=True)) > 1: - raise StructureError('A "comment" directive cannot have a "comment" directive sibling.') - -def verify_textbox(app, doctree): - for node in doctree.traverse(Textbox): - if len(node.children) > 1: - raise StructureError('A "textbox" directive can only contain one directive (of type "comment").') - -def verify_questions(app, doctree): - for node in doctree.traverse(Question): - if len(node.children) < 2: - raise StructureError('A question must have some content and (a "textbox" or at least one "positive" directive).') - if len(node.children[0].traverse(Question)) > 0: - raise StructureError('A question cannot contain another question, you fool!') - query_count, positive_count, negative_count, textbox_count = count_children(node) - if len(node.children) == 2: - if query_count != 1 or positive_count != 1 and textbox_count != 1: - raise StructureError('A "question" directive must have at least some content and (a "positive" or "textbox" directive).') - else: - if query_count != 1: - raise StructureError('Internal error. This should never happen. This is a huge bug in this program.') - if positive_count < 1: - raise StructureError('A "question" directive must contain at least one "positive" directive. (or only one "textbox" directive)') - if positive_count < node.nb_pos: - raise StructureError('A "question" directive must have at least the given number of "positive" directives children.') - if negative_count < 1: - app.warn('Not giving any negative proposition in a question is the same as giving the answer.') - -def count_children(node): - query_count, positive_count, negative_count, textbox_count = 0, 0, 0, 0 - for child in node.children: - child_type = type(child) - if len(child_type.__bases__) < 1 or child_type.__bases__[0] != Alternative: - raise StructureError('Internal error. This should never happen. This is a huge bug in this program.') - if child_type == Query: - query_count += 1 - elif child_type == Positive: - positive_count += 1 - elif child_type == Negative: - negative_count += 1 - else: - textbox_count += 1 - return query_count, positive_count, negative_count, textbox_count - -def html_add_content(app, doctree, docname): - field_list = doctree.next_node(nodes.field_list) - task_id = '' - if field_list: - for field in field_list.traverse(nodes.field): - field_name = field.next_node(nodes.field_name).astext() - if field_name == 'task_id': - task_id = field.next_node(nodes.field_body).astext() - field_list.parent.remove(field_list) - builder = app.builder - if not hasattr(builder, 'format') or builder.format != 'html': - return - h = hashlib.md5(str(doctree)).hexdigest() - title = '' - node = doctree - for t in doctree.traverse(nodes.title): - title = t.children[0].astext() - node = t.parent - break - section = nodes.section(ids=["checker"], name=["checker"]) - section += nodes.title(text=translations[language]['verify_title']) - text = u'<div id="results" style="display: none;"></div>' - if app.config.mcq_inginious_url and task_id: - text += '<input type="submit" value="' + translations[language]['verify'] + '" id="submit" />' - section += nodes.raw(format='html', text=text) - node += section - js = nodes.raw(format='html') - js += nodes.Text(u'\n<script type="text/javascript">var language = "' + unicode(language) + '";' - u' var upload_url = "' + unicode(app.config.mcq_upload_url) + '";' - u' var hash = "' + unicode(h) + '"; var title = "' + unicode(title) + '";' - u' var html_title = "' + unicode(app.config.html_title) + '";') - if app.config.mcq_inginious_url and task_id: - js += nodes.Text(u' var task_id = "' + unicode(task_id) + '"; var inginious_url = "' + unicode(app.config.mcq_inginious_url) + '";') - js += nodes.Text(u'</script>'); - doctree += js - -def latex_add_content(app, doctree, docname): - node_begin = nodes.raw(format='latex') - node_end = nodes.raw(format='latex') - node_begin += nodes.Text('\n\\begin{Form}') - node_end += nodes.Text('\n\\end{Form}') - doctree.insert(0, node_begin) - doctree.append(node_end) - - for q in doctree.traverse(Question): - q.parent.children.insert(0, nodes.raw(format='latex', text='\n\\needspace{6\\baselineskip}\n')) - -def latex_shuffle(app, doctree, docname): - builder = app.builder - if not hasattr(builder, 'format') or builder.format != 'latex': - return # The rest of this function is done in JS with the HTML writer - for q in doctree.traverse(Question): - query_node = None - pos_nodes = [] - neg_nodes = [] - textbox_node = None - for node in q.children: - node_type = type(node) - if node_type == Negative: - neg_nodes.append(node) - elif node_type == Positive: - pos_nodes.append(node) - elif node_type == Query: - query_node = node - else: - textbox_node = node - children = [] - random.shuffle(pos_nodes) - random.shuffle(neg_nodes) - children += pos_nodes[:q.nb_pos] - children += neg_nodes[:q.nb_prop - q.nb_pos] - random.shuffle(children) - children.insert(0, query_node) - if textbox_node: - children.append(textbox_node) - q.children = children - -def epub_add_javascript(app, doctree, docname): - builder = app.builder - if not hasattr(builder, 'name') or not builder.name.startswith('epub'): - return - # Current epub3 builders does not include .js files in the .epub - builder.media_types.update({'.js': 'text/javascript'}) - # The page.html template used does not include javascript if embedded - builder.globalcontext['embedded'] = False diff --git a/Exercices/mcq/static/ext.css b/Exercices/mcq/static/ext.css deleted file mode 100644 index 7f958cf..0000000 --- a/Exercices/mcq/static/ext.css +++ /dev/null @@ -1,72 +0,0 @@ -.query, .textbox textarea { - margin-bottom: 10px; -} - -div:not(.content) { - clear: both; -} - -.choice, .checkmark, .content { - position: relative; - margin-bottom: 10px; -} - -.choice, .content { - left: 55px; -} - -.choice { - margin-bottom: -20px; -} - -.content { - margin-left: 30px; - margin-right: 55px; -} - -.checkmark + .content { - margin-top: -20px; - min-height: 76px; -} - -.query + .checkmark { - left: 0px; -} - -.checkmark { - left: -20px; - margin-bottom: -56px; -} - -.textbox textarea { - width: 100%; -} - -.result { - display: inline; - margin-left: 30px; - font-weight: bold; -} - -#results p, p.problem { - padding: 20px; - border-bottom-left-radius: 10%; - border-bottom-right-radius: 10%; - color: white; -} - -#results .success { - background-color: #1a3511; -} - -#results .failed, p.problem { - background-color: #666666; -} - -#results .error { - background-color: #691414; -} - -#results .request-failed { - background-color: #320a73; -} diff --git a/Exercices/mcq/static/false.png b/Exercices/mcq/static/false.png deleted file mode 100644 index c2ea1ab74e1a161151754adf7d2055e5e1b0c897..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1099 zcmV-R1ho5!P)<h;3K|Lk000e1NJLTq001%o001-y1^@s6$YyJ-00001b5ch_0Itp) z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2iyn& z2^1hZ^_D^a000?uMObu0Z*6U5Zgc=ca%Ew3Wn>_CX>@2HM@dakSAh-}000A~Nkl<Z zXx{CbPlyyp6vltg(L^JdLnH>tqF!ns27>4+D*j_##ES@m8pJ=B9Lzz~qj>ZpB;JyM z7Y`~b!5kvF$rAM<A|fhi)x||bP$Y;*4z8KXp=#*avAe9E=^A@s9}La(bamBN@B3c8 zS2Zwg(>86Dm;v$EhyGeCn-TMn2C=Z!fCZGl&Y4m`3?Q&Z;IFPW`|1QlB57sw?yJc5 zwV_slSq&R1(%(!C4Fipj0Yn7e^doxhK>TW9Lf{?lgB~ytEZkQ8@%prdgOa_^8n6Oi z=oDfH?iUHnz;KV=I05`1li%0=`m$Ly5I^H%0k5nz<v|=0I5zO86^dMCqnClBz)zvR zEi3`Xn~5}XwxClCT#ga8hEu@L0T33TSrSB9Aaj9Mo=YuE=nw1coWPNA>~P*SDXA5r zmvyr!fp%wr0}*-@lj$;zM~ut2_6L67pGPMTbT=Pz1$^Hth*Ch5>+fa2ttZX<Iob@r zE_@mSAr9yzHHfIyF~C-!-2w$K+A|x9bRD)4xYiGdUNi!*0=Sja)&ioky2WM_UhIsj z63?Dq5*nm+S-=u;QLYe#1!;n47bpe~q}{Q0-0v|(<DG&}`Vn_k9+_p~t%Rvl1mYhB z^J`I$SeWqZMp+PVQh?|gNHbd_#v&24g*~r!6`~htBa*+Oys&Er#1CpB^6^nBicTpi z#1p{g2wJ^TaJ6=u4;}P4980U(?V=b@51&7M7TK)P>xM$A3b9Q7lq?mgvK}eB2)5CD zBk)kwz$5<xvm@K&f=%g_sO=yF;~@~9YkO5jp+`B7wG7<(m}1`sEDCu-;Gl)`9k+fd z=<7QJf0{v4%fLDd*CouMJpvb0M-cF5DLa7Q3pn>V@LHt?5)q*+u7+PPa6=UrVXJ_f zd79~GqoI^Xj7vWn1;rD<vL@V(SU|r8?&owguG~gkI*n-93Ct`gX8}fHK=}OXfxxDm z$yltNw~~r|nD;m1S{5EFcbqU*rV|B!1IN3mAh6P8Ct=B`WxL$)v<X9fWXmG33%Jnb znU=s+1zS>33k$1(=fE?8h5dl=6tloZV5D<?#EoIpz`c$jQF-_!MM_~ZAl=dIxq`1M zUl3E}MK()UzP6L^FVLV33{`$&mBKnI#b>~33xC)w04U&zz;a!qQ{yth;7bF)8F!A@ z^4A}k%4Xn(2VxDpGO(tW)QYfm%B4Wtf&YLj29|1=#Z)&9bNcy1!L$w9{s;OG5|!dY RQYHWZ002ovPDHLkV1j2J;XnWY diff --git a/Exercices/mcq/static/jquery-shuffle.js b/Exercices/mcq/static/jquery-shuffle.js deleted file mode 100644 index ec707c0..0000000 --- a/Exercices/mcq/static/jquery-shuffle.js +++ /dev/null @@ -1,28 +0,0 @@ -/* - * jQuery shuffle - * - * Copyright (c) 2008 Ca-Phun Ung <caphun at yelotofu dot com> - * Dual licensed under the MIT (MIT-LICENSE.txt) - * and GPL (GPL-LICENSE.txt) licenses. - * - * http://yelotofu.com/labs/jquery/snippets/shuffle/ - * - * Shuffles an array or the children of a element container. - * This uses the Fisher-Yates shuffle algorithm <http://jsfromhell.com/array/shuffle [v1.0]> - */ - -(function($){ - - $.fn.shuffle = function() { - return this.each(function(){ - var items = $(this).children().clone(true); - return (items.length) ? $(this).html($.shuffle(items)) : this; - }); - } - - $.shuffle = function(arr) { - for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x); - return arr; - } - -})(jQuery); diff --git a/Exercices/mcq/static/rst-form.js b/Exercices/mcq/static/rst-form.js deleted file mode 100644 index cc52f6b..0000000 --- a/Exercices/mcq/static/rst-form.js +++ /dev/null @@ -1,182 +0,0 @@ -var score; - -var translations = { - fr: { - score: 'Votre score est de', - inginious_success: 'Tout s\'est bien passé', - request_fail: 'La requête a échoué' - }, - en: { - score: 'You have a score of ', - inginious_success: 'Everything wen well', - request_fail: 'The request failed' - } -}; - -$(function() { - $('input:checked').prop('checked', false); - $('.question').each(shuffle); - $('#submit').click(submit); -}); - -function shuffle(index) { - var nb_pos = $(this).children('.nb_pos').val(); - var nb_prop = $(this).children('.nb_prop').val(); - $(this).shuffle(); - $(this).children('.positive').slice(nb_pos).remove(); - $(this).children('.negative').slice(nb_prop-nb_pos).remove(); - $(this).children('.query').prependTo($(this)); - $(this).children('h2').prependTo($(this)); -} - -function submit() { - check(); - log(); -//OB : remove inginious -// inginious(); -} - -function check() { - score = 0; - $('.comment').hide(); - $('.checkmark').remove(); - $('.result').remove(); - $('.query .comment').show('slow'); - $('input:checked').siblings().children('.comment').show('slow'); - $('.textbox .comment').show('slow'); - $('.question').each(compute_score); - $('#checker').append('<div class="result">' + translations[language]['score'] + ' ' + - score + '/' + - $('.positive').parent().length + '</div>'); -} - -function compute_score() { - if ($(this).children('.textbox').length > 0) { - return; - } - var nb_pos = $(this).children('.nb_pos').val(); - var nb_pos_checked = $(this).children('.positive').children('input:checked').length; - var nb_neg_checked = $(this).children('.negative').children('input:checked').length; - // for sphinx - var pos_img = '<img class="checkmark" src="'+DOCUMENTATION_OPTIONS.URL_ROOT+'/_static/true.png" />'; - var neg_img = '<img class="checkmark" src="'+DOCUMENTATION_OPTIONS.URL_ROOT+'/_static/false.png" />'; - var scored = false; - if (nb_neg_checked == 0 && nb_pos_checked == nb_pos) { - scored = true; - score++; - } - if (nb_pos > 1 || nb_pos_checked + nb_neg_checked == 0) { - if (scored) { - $(this).children('.query').after(pos_img); - } else { - $(this).children('.query').after(neg_img); - } - } else { - $(this).children('.positive').children('input:checked').after(pos_img); - $(this).children('.negative').children('input:checked').after(neg_img); - } -} - -function log() { - if (upload_url != '') { - var json = makeJson(); - if (!$.isEmptyObject(json.questions)) { - $.ajax({ - type: 'POST', - url: upload_url, - data: JSON.stringify(json) - }); - } - } -} - -function makeJson() { - var json = { - html_title: html_title, - title: title, - hash: hash, - questions: {} - }; - $('.question').each(function(index) { - var query = $(this).children('.query'); - query.children('.comment').removeAttr('style'); - query = query.html(); - $comment = $(this).children('.textbox').children('.comment'); - if ($comment.length > 0) { - query += "<div class='comment'>" + $comment.html() + "</div>"; - } - var $input = $(this).children().children('input:checked'); - var answers = []; - while ($input.length > 0) { - $content = $input.siblings('.content'); - $content.children('.comment').removeAttr('style'); - answers.push($content.html()); - $input = $input.slice(1); - } - var textbox = $(this).children('.textbox').children('textarea').val(); - var isTextbox = false; - if (textbox != undefined && textbox != '') { - answers.push(textbox); - isTextbox = true; - } - if (answers.length > 0) { - json.questions[$(this).attr('id')] = { - title: $(this).prev().text().slice(0, -1), - query: query, - answers: answers, - textbox: isTextbox - }; - } - }); - return json; -} - -function inginious() { - if (inginious_url && inginious_url != '' && task_id != '') { - var input = makeInginiousInput(); - $('#results').hide().children().remove(); - $('.problem').remove(); - $.ajax({ - type: 'POST', - url: inginious_url, - data: {taskid: task_id, input: JSON.stringify(input)}, - dataType: 'json' - }).done(function(result) { - if (result['status'] == 'error') { - result['result'] = 'error'; - result['text'] = result['status_message']; - } - if (result['text'] == '') { - result['text'] = translations[language]['inginious_success']; - } - $('#results').append("<p class='" + result['result'] + "'>INGInious: " + result['text'] + "</p>"); - for (var key in result['problems']) { - $('#' + key).prepend('<p class="problem">INGInious: ' + result['problems'][key] + '</p>'); - } - }).fail(function(e) { - $('#results').append("<p class='request-failed'>INGInious: " + translations[language]['request_failed'] + "</p>"); - }).always(function() { - $('#results').show(); - }); - } -} - -function makeInginiousInput() { - var input = {}; - $('.question.inginious').each(function(index) { - choices = []; - $input = $(this).children().children('input:checked'); - while($input.length > 0) { - choices.push(parseInt($input.parent().attr('id'))); - $input = $input.slice(1); - } - if (choices.length == 0) { - $textbox = $(this).children('.textbox').children('textarea'); - if ($textbox.length > 0) { - choices = $textbox.val(); - } - } - input[$(this).attr('id')] = choices; - }); - return input; -} diff --git a/Exercices/mcq/static/true.png b/Exercices/mcq/static/true.png deleted file mode 100644 index 7f6e8675d08f0744d3839536a2d6004ce92e90f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1870 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 IM6N<$g0CN2r~m)} diff --git a/Outils/.gitkeep b/Outils/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/Outils/Makefile b/Outils/Makefile deleted file mode 100644 index 0a8ac3d..0000000 --- a/Outils/Makefile +++ /dev/null @@ -1,161 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = a4 -BUILDDIR = ../web/notes/Outils - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext qcm projets sinf1252 - -help: - @echo "Please use \`make <target>' where <target> is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SINF1252.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SINF1252.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/SINF1252" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SINF1252" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -qcm: - @for dir in Exercices/QCM/S*; do make -C $${dir}; done - -projets: - @for dir in Projets/P*; do [ -e $${dir}/Makefile ] && make -C $${dir}; true; done - -sinf1252: qcm projets html latexpdf epub diff --git a/Outils/README.md b/Outils/README.md deleted file mode 100644 index faa247f..0000000 --- a/Outils/README.md +++ /dev/null @@ -1 +0,0 @@ -Ce répertoire est destiné à contenir une description des outils informatiques qui peuvent être utiles à tout étudiant travaillant en C sur Unix/Linux. Une brève description sera fournie pour les principaux outils et les étudiants seront encouragés à améliorer ces descriptions. diff --git a/Outils/_static b/Outils/_static deleted file mode 120000 index 7a2b653..0000000 --- a/Outils/_static +++ /dev/null @@ -1 +0,0 @@ -../_static \ No newline at end of file diff --git a/Outils/_templates b/Outils/_templates deleted file mode 120000 index db3df54..0000000 --- a/Outils/_templates +++ /dev/null @@ -1 +0,0 @@ -../_templates \ No newline at end of file diff --git a/Outils/bib.rst b/Outils/bib.rst deleted file mode 100644 index f011349..0000000 --- a/Outils/bib.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -************* -Bibliographie -************* - - -.. [DeveloppezMake] Introduction à Makefile, http://gl.developpez.com/tutoriel/outil/makefile/ - - -.. [GNUMake] The GNU Make Manual, http://www.gnu.org/software/make/manual/make.html - - - -.. [Honeyford2006] Honeyford, M., `Speed your code with the GNU profiler`, http://www.ibm.com/developerworks/library/l-gnuprof.html - diff --git a/Outils/conf.py b/Outils/conf.py deleted file mode 100644 index 7a9e81e..0000000 --- a/Outils/conf.py +++ /dev/null @@ -1,312 +0,0 @@ -# -*- coding: utf-8 -*- -# -# SINF1252 documentation build configuration file, created by -# sphinx-quickstart on Tue Jan 3 16:17:09 2012. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.todo', 'sphinx.ext.ifconfig', 'sphinx.ext.mathjax', 'sphinx.ext.intersphinx' ] - -# ucomment -#sys.path.append(os.path.abspath(os.getcwd())) -#extensions.append('ucomment-extension') -#html_translator_class = 'ucomment-extension.ucomment_html_translator' - -# Point to your Django application, which contains all -# the other settings required. -#ucomment = {} -#ucomment['django_application_path'] = '/home/cpaasch/sinf1252/ucommentsite/ucommentapp' - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -source_encoding = 'utf-8' -#source_encoding = 'latin1' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'SINF1252 : Outils informatiques' -copyright = u'2012-2014, O. Bonaventure, G. Detal, C. Paasch, B. Legat, N. Houtain, M. Demol' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '2013' -# The full version, including alpha/beta/rc tags. -release = '2013' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -language = 'fr' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build', '.#*', '*/.#*', 'Exercices/QCM/*' ] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -rst_epilog = """ -.. include:: /../Theorie/links.rst -.. include:: /../Theorie/man_links.rst -.. include:: /../Theorie/incl_links.rst -""" -# Intersphinx -intersphinx_mapping = {'theorie': ('https://sites.uclouvain.be/SystInfo/notes/Theorie/html/', None), 'outils': ('https://sites.uclouvain.be/SystInfo/notes/Outils/html/', None), 'exercices': ('https://sites.uclouvain.be/SystInfo/notes/Exercices/html/', None)} - - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'haiku' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# "<project> v<release> documentation". -html_title = u'Systèmes informatiques' - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a <link> tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'SINF1252doc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -'papersize': 'a4paper', - -# The font size ('10pt', '11pt' or '12pt'). -'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'SINF1252.tex', u'SINF1252', - u'O. Bonaventure, G. Detal, C. Paasch', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'sinf1252', u'SINF1252', - [u'O. Bonaventure, G. Detal, C. Paasch'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'SINF1252', u'SINF1252', - u'O. Bonaventure, G. Detal, C. Paasch', 'SINF1252', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - - -# -- Options for Epub output --------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = u'SINF1252' -epub_author = u'O. Bonaventure, G. Detal, C. Paasch' -epub_publisher = u'O. Bonaventure, G. Detal, C. Paasch' -epub_copyright = u'2013, O. Bonaventure, G. Detal, C. Paasch' - -# The language of the text. It defaults to the language option -# or en if the language is not set. -#epub_language = '' - -# The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -#epub_identifier = '' - -# A unique identification for the text. -#epub_uid = '' - -# A tuple containing the cover image and cover page html template filenames. -#epub_cover = () - -# HTML files that should be inserted before the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_pre_files = [] - -# HTML files shat should be inserted after the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_post_files = [] - -# A list of files that should not be packed into the epub file. -#epub_exclude_files = [] - -# The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 - -# Allow duplicate toc entries. -#epub_tocdup = True - -#try: -# open('.staff','r') -# tags.add('staff') -# print "Build as staff member" -#except: -# print "Build as student" diff --git a/Outils/cunit.rst b/Outils/cunit.rst deleted file mode 100644 index ccb5c35..0000000 --- a/Outils/cunit.rst +++ /dev/null @@ -1,276 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _ref_cunit: - -CUnit: librairie de tests -------------------------- - -`CUnit <http://cunit.sourceforge.net>`_ est une librairie de tests unitaires -en C. Cette librarie vous sera utile lors de développement de projets en C. - -Installation -^^^^^^^^^^^^ - -CUnit n'est pas installé par défaut sur les machines des salles. Vous devez -donc l'installer par vous-même. Le reste de cette section a pour but de vous -aider dans l'installation de celle-ci. - -La première étape consiste à récupérer les sources de CUnit sur -`<http://sourceforge.net/projects/cunit/files/>`_. Les sources se trouvent -dans une archive ``CUnit-*-src.tar.bz2`` et la dernière version devrait se -nommer ``CUnit-2.1.2-src.tar.bz2``. Une fois l'archive téléchargée, ouvrez un -terminal et placez-vous dans le dossier où se trouve celle-ci. Exécutez: - - .. code-block:: console - - $ tar xjvf CUnit-2.1.2-src.tar.bz2 - $ cd CUnit-2.1-2 - $ ./configure --prefix=$HOME/local - $ make - $ make install - -Une fois ces commandes exécutées, la librairie ainsi que ses fichiers d'entête -sont installés dans le dossier ``$HOME/local`` (``$HOME`` est en fait une -variable bash qui définit votre répertoire principal). Comme vous n'avez pas -les droits administrateur, vous ne pouvez pas installer d'application ni de -librairie dans les chemins classiques (c.-à -d., par exemple dans ``/usr/lib``, -``/usr/include``, ``/usr/bin``). C'est pour cela que nous installons la -librairie dans un dossier local. - -Compilation, édition des liens et exécution -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Comme la librairie n'est pas installée dans les chemins classiques, il faut -pouvoir dire à gcc où se trouvent les fichiers d'entête ainsi que la librairie -afin d'éviter les erreurs de compilation. Pour cela, il faut spécifier à la -compilation l'argument ``-I${HOME}/local/include`` afin de lui dire qu'il doit -également aller chercher des fichiers d'entête dans le dossier -``$HOME/local/include`` en plus des chemins classiques tels que -``/usr/include`` et ``/usr/local/include``. - -Lors de l'édition des liens avec le linker, il faut spécifier où se trouve la -librairie dynamique afin de résoudre les symboles. Pour cela, il faut passer -l'argument ``-lcunit`` pour effectuer la liaison avec la librairie CUnit ainsi -que lui spécifier ``-L${HOME}/local/lib`` afin qu'il cherche également des -librairies dans le dossier ``$HOME/local/lib``. - -Lors de l'exécution, il faut également spécifier où se trouvent les -librairies. Par exemple pour un binaire ``test`` qui utilise la librairie -CUnit, on peut exécuter: - - .. code-block:: console - - $ export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH - $ ./test - -Utilisation -^^^^^^^^^^^ - -Dans CUnit, on retrouve toutes les fonctions nécessaire pour gérer un ensemble -de suites de tests. Cet ensemble forme un catalogue; il est composé d'une ou -plusieurs suite(s) de tests; chaque suite est composée d'un ou plusieurs -tests. - -Pour pouvoir concrètement exécuter un ensemble de tests, il est nécessaire -de réaliser les différentes étapes suivantes: - -1. Ecrire les tests -2. Initialiser le catalogue -3. Ajouter les suites de tests dans le catalogue -4. Ajouter les tests dans les suites de tests -5. Exécuter les tests -6. Terminer proprement l'exécution des tests - -La suite de la section détaille chacune de ces étapes. - -Tout d'abord, il est nécessaire d'écrire les tests. Aucune libraire ne peut -les écrire pour vous. Toutefois, CUnit vient avec un certain nombre de macros -permettant de vérifier les propriétés qui nous intéressent. Pour pouvoir -utiliser ces macros, il est nécessaire d'importer ``CUnit.h``. La table -suivante récapitule les principales macros. Il est important d'appeller ces -macros lorsque l'on rédige les tests, ce sont ces appels qui détermineront si -oui ou non, le test est fructueux. - -============================================================== =========== -Assertion Définition -============================================================== =========== -``CU_ASSERT(int expression)`` Vérifie que la valeur est non-nulle (``true``). -``CU_ASSERT_TRUE(value)`` Vérifie que la valeur est non-nulle (``true``). -``CU_ASSERT_FALSE(value)`` Vérifie que la valeur est nulle (``false``). -``CU_ASSERT_EQUAL(actual, expected)`` Vérifie que ``actual`` est égal à ``expected``. -``CU_ASSERT_NOT_EQUAL(actual, expected))`` Vérifie que ``actual`` n'est pas égal à ``expected``. -``CU_ASSERT_PTR_EQUAL(actual, expected)`` Vérifie que le pointeur ``actual`` est égal au pointeur ``expected``. -``CU_ASSERT_PTR_NOT_EQUAL(actual, expected)`` Vérifie que le pointeur ``actual`` est différent du pointeur ``expected``. -``CU_ASSERT_PTR_NULL(value)`` Vérifie que le pointeur est ``NULL``. -``CU_ASSERT_PTR_NOT_NULL(value)`` Vérifie que le pointeur n'est pas ``NULL``. -``CU_ASSERT_STRING_EQUAL(actual, expected)`` Vérifie que la chaine de caractère ``actual`` est égale à la chaine de caractère ``expected``. -``CU_ASSERT_STRING_NOT_EQUAL(actual, expected)`` Vérifie que la chaine de caractère ``actual`` n'est pas égale à la chaine de caractère ``expected``. -``CU_ASSERT_NSTRING_EQUAL(actual, expected, count)`` Vérifie que les ``count`` premiers caractères de la chaine ``actual`` sont égaux aux ``count`` premiers caractères de la chaine ``expected``. -``CU_ASSERT_NSTRING_NOT_EQUAL(actual, expected, count)`` Vérifie que les ``count`` premiers caractères de la chaine ``actual`` ne sont pas égaux aux ``count`` premiers caractères de la chaine ``expected``. -``CU_ASSERT_DOUBLE_EQUAL(actual, expected, granularity)`` Vérifie que ``actual`` et ``expected`` ne diffèrent pas plus que ``granularity`` (:math:`|actual-expected| \leq |granularity|`) -``CU_ASSERT_DOUBLE_NOT_EQUAL(actual, expected, granularity)`` Vérifie que ``actual`` et ``expected`` diffèrent de plus que ``granularity`` (:math:`|actual-expected| > |granularity|`) -``CU_PASS(message)`` Ne vérifie rien mais notifie que le test est réussis -``CU_FAIL(message)`` Ne vérifie rien mais notifie que le test est raté -============================================================== =========== - -Par exemple, les méthodes ci-dessous vérifie chacune certaines propriétés. - - .. code-block:: c - - void test_assert_true(void) - { - CU_ASSERT(true); - } - - void test_assert_2_not_equal_minus_1(void) - { - CU_ASSERT_NOT_EQUAL(2, -1); - } - - void test_string_equals(void) - { - CU_ASSERT_STRING_EQUAL("string #1", "string #1"); - } - - void test_failure(void) - { - CU_ASSERT(false); - } - - void test_string_equals_failure(void) - { - CU_ASSERT_STRING_EQUAL("string #1", "string #2"); - } - -Une fois les tests écrits, il faut initialiser le catalogue (et donc -l'infrastructure de tests) en appelant la méthode -``CU_initialize_registry()``. Cette méthode retourne un code d'erreur qu'il -est impératif de vérifier pour s'assurer du bon fonctionnement de la -vérification des tests. Par exemple, - - .. code-block:: c - - if (CUE_SUCCESS != CU_initialize_registry()) - return CU_get_error(); - -Pour ajouter les suites de tests au catalogue, il faut faire appel à la -méthode ``CU_add_suite(const char* strName, CU_InitializeFunc pInit, -CU_CleanupFunc pClean)``. Comme on peut le voir, cette méthode demande un nom -(qui doit être unique pour un catalogue) ainsi que deux pointeurs de fonction. -Ces pointeurs de fonction permettent d'exécuter du code avant (typiquement -appelé 'setup') ou après (typiquement 'teardown') l'exécution des tests de la -suite. Ces méthodes sont utiles pour initialiser un environnement d'exécution -pour des tests le nécessitants (par exemple, s'assurer de la présence de -fichier, initialiser certaines variables, etc.). Ces méthodes sont bien sûr -optionnelles, si aucune n'est nécessaire, il suffit alors de passer ``NULL`` -en paramètre. Par ailleurs, notons que ces méthodes doivent retourner 0 si -tout c'est bien passé, un chiffre positif dans le cas contraire. Comme pour -l'initialisation du catalogue, il est bien entendu nécessaire de vérifier le -code retourné par la méthode. La table suivante décrit les codes d'erreurs. - -===================== ========================= -Code d'erreur Définition -===================== ========================= -``CUE_SUCCESS`` Aucune erreur -``CUE_NOREGISTRY`` Erreur d'initialisation -``CUE_NO_SUITENAME`` Nom manquant -``CUE_DUP_SUITE`` Nom non unique -``CUE_NOMEMORY`` Pas de mémoire disponible -===================== ========================= - -Par exemple, le code suivant crée une nouvelle suite de test nommée *ma_suite*, -avec une fonction d'initialisation et une fonction de terminaison. - - .. code-block:: c - - int setup(void) { return 0; } - int teardown(void) { return 0; } - // ... - CU_pSuite pSuite = NULL; - // ... - pSuite = CU_add_suite("ma_suite", setup, teardown); - if (NULL == pSuite) { - CU_cleanup_registry(); - return CU_get_error(); - } - -Les tests peuvent ensuite être ajoutés à la suite de test. Pour cela, il faut -faire appel à la méthode ``CU_add_test(CU_pSuite pSuite, const char* -strName, CU_TestFunc pTestFunc)``. Comme pour une suite de tests, il est -nécessaire de préciser un nom. Ce nom doit être unique pour la suite de test. -Le second paramètre est un pointeur vers la fonction de test. A nouveau, il -est important de vérifier la valeur de retour de la méthode. - -===================== ========================================= -Code d'erreur Définition -===================== ========================================= -``CUE_SUCCESS`` Aucune erreur -``CUE_NOSUITE`` Suite de tests ``NULL`` -``CUE_NO_TESTNAME`` Nom manquant -``CUE_DUP_TEST`` Nom non unique -``CUE_NO_TEST`` Pointeur de fonction ``NULL`` ou invalide -``CUE_NOMEMORY`` Pas de mémoire disponible -===================== ========================================= - -Le code suivant ajoute les tests décrits ci-dessus à la suite de test que nous -avons créé juste avant. - - .. code-block:: c - - if ((NULL == CU_add_test(pSuite, "Test assert true", test_assert_true)) || - (NULL == CU_add_test(pSuite, "Test assert 2 not equal -1", test_assert_2_not_equal_minus_1)) || - (NULL == CU_add_test(pSuite, "Test string equals", test_string_equals)) || - (NULL == CU_add_test(pSuite, "Test failure", test_failure)) || - (NULL == CU_add_test(pSuite, "Test string equals failure", test_string_equals_failure))) - { - CU_cleanup_registry(); - return CU_get_error(); - } - -Maintenant que le catalogue est initialisé, qu'il contient des suites de tests -et que les tests ont été ajoutés à ces suites, il nous est possible d'exécuter -ces tests. Il existe plusieurs moyens d'exécuter les tests CUnit, nous -présentons uniquement le mode de base, non interactif. Pour les autres modes, -referez-vous à la `documentation -<http://cunit.sourceforge.net/doc/running_tests.html>`_. Pour faire tourner -les tests, il suffit d'appeler la méthode ``CU_basic_run_tests()`` qui -appellera tous les tests dans toutes les suites des catalogues référencés. -Ensuite, on peut afficher le rapport à l'aide de -``CU_basic_show_failures(CU_pFailureRecord pFailure)`` et -``CU_get_failure_list()``. - - .. code-block:: c - - CU_basic_run_tests(); - CU_basic_show_failures(CU_get_failure_list()); - -Avec le programme illustré ci-dessous, la console nous affiche les messages -suivants : - - .. code-block:: console - - - CUnit - A unit testing framework for C - Version 2.1-2 - http://cunit.sourceforge.net/ - - - Suite ma_suite, Test Test failure had failures: - 1. cunit.c:24 - false - Suite ma_suite, Test Test string equals failure had failures: - 1. cunit.c:29 - CU_ASSERT_STRING_EQUAL("string #1","string #2") - - Run Summary: Type Total Ran Passed Failed Inactive - suites 1 1 n/a 0 0 - tests 5 5 3 2 0 - asserts 5 5 3 2 n/a - - Elapsed time = 0.000 seconds - - - 1. cunit.c:24 - false - 2. cunit.c:29 - CU_ASSERT_STRING_EQUAL("string #1","string #2") - -Enfin, il est nécessaire de libérer les ressources en appelant -``CU_cleanup_registry()``. \ No newline at end of file diff --git a/Outils/figures/graph.dot b/Outils/figures/graph.dot deleted file mode 100644 index a5640f9..0000000 --- a/Outils/figures/graph.dot +++ /dev/null @@ -1,35 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "245e4"; - "hello" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="hello"]; - "hello" -> "f4dff"; - "hey" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="hey"]; - "hey" -> "22931"; - "hi" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="hi"]; - "hi" -> "4cd75"; - "ho" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="ho"]; - "ho" -> "22931"; - "v0.1" [shape="box",style="rounded,filled",color="seagreen", fillcolor="palegreen", label="v0.1"]; - "v0.1" -> "245e4"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "22931" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="22931\ng"]; - "22931" -> "54978"; - "f4dff" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="f4dff\nf"]; - "f4dff" -> "88305"; - "4cd75" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="4cd75\nMerge branch 'hello' into hi"]; - "4cd75" -> "245e4"; - "4cd75" -> "88305"; - "245e4" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="245e4\ne"]; - "245e4" -> "05e80"; - "88305" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="88305\nd"]; - "88305" -> "0ef13"; - "05e80" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="05e80\nMerge branch 'hello'"]; - "05e80" -> "b443e"; - "05e80" -> "0ef13"; - "0ef13" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="0ef13\nc"]; - "0ef13" -> "54978"; - "b443e" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b443e\nb"]; - "b443e" -> "54978"; - "54978" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="54978\na"]; -} diff --git a/Outils/figures/graph.png b/Outils/figures/graph.png deleted file mode 100644 index b5465e3c221b1aa654eb446d355149e5264e028a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51948 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 X?hOCD5M6Nu{78$-ixrE!{_y_*^E>Mv diff --git a/Outils/figures/hello_2ff.dot b/Outils/figures/hello_2ff.dot deleted file mode 100644 index 473efa3..0000000 --- a/Outils/figures/hello_2ff.dot +++ /dev/null @@ -1,17 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "c1f21"; - "pid" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="pid"]; - "pid" -> "c1f21"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "c1f21"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "universal"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_2ff.png b/Outils/figures/hello_2ff.png deleted file mode 100644 index f52d94cb89008966f6eeca0e6c1d94229646403d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26426 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 E1yim%`Tzg` diff --git a/Outils/figures/hello_branches.dot b/Outils/figures/hello_branches.dot deleted file mode 100644 index 9e79052..0000000 --- a/Outils/figures/hello_branches.dot +++ /dev/null @@ -1,15 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "b1485"; - "pid" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="pid"]; - "pid" -> "b1485"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "b1485"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_branches.png b/Outils/figures/hello_branches.png deleted file mode 100644 index bbec70b0306b282838afe7e8378a21f32756ee5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22908 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 OfR3i222#y2=HCE2noyPi diff --git a/Outils/figures/hello_dpid.dot b/Outils/figures/hello_dpid.dot deleted file mode 100644 index 35980d1..0000000 --- a/Outils/figures/hello_dpid.dot +++ /dev/null @@ -1,24 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "eda36"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "88d2c"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "eda36" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="eda36\nAdd pid/ppid info"]; - "eda36" -> "c35a8"; - "88d2c" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="88d2c\nMerge branch 'master' into universal"]; - "88d2c" -> "e0c31"; - "88d2c" -> "c35a8"; - "c35a8" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c35a8\nAdd Makefile"]; - "c35a8" -> "c1f21"; - "e0c31" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="e0c31\nMake it universal"]; - "e0c31" -> "c1f21"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_dpid.png b/Outils/figures/hello_dpid.png deleted file mode 100644 index 1a3fb40d840b13a5aa488613599b21cc0ba3f3d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46080 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 diff --git a/Outils/figures/hello_fix.dot b/Outils/figures/hello_fix.dot deleted file mode 100644 index 424f3ba..0000000 --- a/Outils/figures/hello_fix.dot +++ /dev/null @@ -1,26 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "eda36"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "6fd2e"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "universal"; - "6fd2e" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="6fd2e\nFix SIGSEV without args"]; - "6fd2e" -> "88d2c"; - "eda36" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="eda36\nAdd pid/ppid info"]; - "eda36" -> "c35a8"; - "88d2c" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="88d2c\nMerge branch 'master' into universal"]; - "88d2c" -> "e0c31"; - "88d2c" -> "c35a8"; - "c35a8" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c35a8\nAdd Makefile"]; - "c35a8" -> "c1f21"; - "e0c31" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="e0c31\nMake it universal"]; - "e0c31" -> "c1f21"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_fix.png b/Outils/figures/hello_fix.png deleted file mode 100644 index 33a304013a6d6deb6072ad4dc0f9cdbbb9da65e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53857 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 Y)VS~jKT@fmLBKyLaam}|+s{7#53U_>-2eap diff --git a/Outils/figures/hello_intro.dot b/Outils/figures/hello_intro.dot deleted file mode 100644 index 8967961..0000000 --- a/Outils/figures/hello_intro.dot +++ /dev/null @@ -1,17 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "c1f21"; - "pid" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="pid"]; - "pid" -> "b1485"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "b1485"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_intro.png b/Outils/figures/hello_intro.png deleted file mode 100644 index 6b3fe35366854d23d704f0f08511c63bdd5dcf61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28273 zcmc$FWm_E4vTmax5G+`L;7)J}?(XiI;O_1af`veEcXxLuxVu{j?hLNCv-dq8?)?L2 zm>y>4=~=y2$y=+c-VRfgmq13uLj(W-SxQn=833R(0RUPI0UG=Ur^0;#{0IM4MnV*L z{r8vEUKk4i#DJ8jkg9vy@tT_^rp5wr&Z<*9GR+eT2iN*l1pU)ZAc2yBP8qZ1*V(v< z54mAe<PAwh)fDR1MF@yRnE9c|@i~%b>G`$6>1R=WE*8@bU8nbaLy+U~)n+GG<B9cV zRwqWG7;@ros`z44P{iLbQ8A!|5&j+i1^WP+r37qSPsyb_6h~<pxkA7frX)*QWFzhw zQN59bET)|*31}W9^b%SxjcAWdmFVH}KQ!Ff;Ogkb#c)vpguuz!`FZxb8P;^c{G(yp zs3e4F>1}oL!p=@b-J}V_=_OCgWjb~jWXgDPRkd@h4_NWS`K3x8x<X=Hjo(z%MvGwq zBP6eFc_bQ47p-G-3@Bx#yy(>QD+75?I+b)=+dk9k*#H0#u2ZhA_8~s(!BE$Tg=@~& z!tGO~9jjS^CFo^V-oT)Q&I`X=UCrb0Q&&$&)!P5?p%!6kq0`3%3LO!RJenLhzn@Dk zP77>v#26to)l-Ki8O!jMg_Yb<O%SCLeU?EpPCOO2JiJ1USowmDR&0S2x{mobA)gZK zaR1Qlus%$9E^eNm37vSZr&QMK_K7J->STH?R2=8Es9}YU__A6L0P_3P!p<OdS`X=u z)`{w^z!{k!ZC=Vmn4e2rf0lDS>nW!e0DKdC|HrPh;iq=u>G!_0r>k2(8LKy-$PlG` z+;qG4+)hme^WPIC)W6aZlfnXblgZin<)%wg92{gBvD;Mf%gpG+YD(H4wBr(O*82R5 z=U*P-@Kj6n3=Q+j&9dS%><u*arfy2Wv*HC~p6WOm3G`eD^e$ZPe#XOzit2r5H_$<{ zT01;EJkE2nsl)+={Z>qif3<|x>C?rS2LUrus5h@f))Y;DLD}jkCsbuoWc*iBL0S?< zNb=8${*Z`Z0uH25gaC5U=B`Oid;qcbw4quY6yyCx^U_ZK&ck<YVDh5YUsBEwDqj4{ zk){3RMtwE+zZ2rI_^A*kO_}2<kV0qE$f_1Cck=V|qE`}HK&kF%Xk}Cs$QLRW16g!h zf}#lI+1Y*MQZ*%X9rRdR?*GOw<#ZOG(ej^Md<Pi!1yCkNB(N2|?EcI}4d#;~JT|;0 zZwe?UFa645L1$Ax{`nyYUYkBmz;H2IJ~Q+Nh9pQH2H@w=A@Ka1>)l%=<{xKJuPB(U zh&hcN>XV9bLyilOX5@<xnEJIaC4L$lVf4CW+nF$m`Y1u<nC_RNqPz5$;f}WhJ7TDu z+FT}WkyLQFvaJqNkoem2==E;F?Qp{$Fl4dNt=ODhIv4OwzYi-ZDGlzUP^-3c;<fAK z_k6mLtK{fIq9wX3BSXmPE*FJ`{-X6(BS>w%1XT$}2Nq!nG1I{3^bae**|dQLjO%&# zZ>#y`@Wx9|&CGq^AKh&<F#QH+`?Y!&I`B{BhBtkPBB*2XPx|~*%^oH`Ua93;2aAP? zTE0T}HfKeqwkwrU_YI5#&|UeT7>#j_kY&Lu3>VjK0aafQ6amd@=TLVk)@J!LWI!Ra zaG0`1yDAFE*5-E*%i^NwBY1<G+}Clt!JN!?3kL&b_$#${{;chZuuVp0PgA=pRi#so z$_E%^G@lvrWBn2VkR)?LHewGgvyZOUJzMaAtin=eCvCgzXkIUdoMd){U|}tIO{4|{ zw37VlM}!oW%Wc{iUMB`<Ab}B=RKMwup9pV7JFgf2pU0DJ0Ur`Ua;|(d;2m;Z3Wh8G z7g9mV2XM_8v4}vI$#OM!>HAnj@bkcr!+B#0j`keDa8mG-mZ;{N3_N0TpPZF9+KuXe z=Tb)vUflt}7V;oNU)KL`jx^ht8tYBhDa4__lg@awj-)E2W%is8tB?B27t;PnH^{FQ zOM^P2$X8>o=Hh5yfATn1Qj0gNb6U`1eHbJ$1tnOoY@~tApzEuzM)858zd;@ZK^df* z#i@oD)OEe4C-3J&^vnv&{#kvqSFOdg^=}QmDlp&jWSwjMjXAROOd{Thka1u#eNct* z854pjpRXiDzdVmf)li?cV;@8qxAKqMNR2)L0@q>aFbP6s;}RV=#LV!uuB!JN%I4w? z!8Lpf1CR7zNi6dtbC{*8pl1S1k;sYyA&rGeTN#RfRv9Hcw+RU*f~Qmc3@fCrc8+^! zYEujgy1B2c%X5h|KR|85u&I6t<zH;Olpy`j^9n0$diUPm@$QVm?U;De#t$pn&9I~Y z^H_@mZp9)@d8M6@FG%sUIG9efnl11)Pl_N~UFIszE_wFDahU*F#?4tJF$UVBbF8lB zMtuL!pQ-MHfl~J#W;i8^dWLRvy#A<aZtXjX#%e-vSPJu+$0PjYd<q=IQZX$-Tt^`( z2NNZsX0e4ZSRorDHE@6urlXpwmXy))zuuaY)lLCb+DX59zEm%9+t{K2AkcH~Tbk~E z7O7#CjzFa4r#q@@_W$<xn=oPHa?Rt{;@OZepcqYL#N&IxJk8tto%}yEB0R<ngR*;= zIPoi2Y2CB?bn%Fw_so5r@@dD8cz&_5WiAwHK$47+m0=hjr*7D1`H_D{UT%58Y@Fx# zt*2ymkxa}(Yj?gyoKl-eS@2B~bGtUNtUNU}eMMajLB1KcUO2lEh?2Ba_no7ECFN`i zOsMo+kl}&4GhIRKT{Yu8Y$ze;(}RK`LgKZ52tKE#^*$ckEx)ZybwY8aOHxK9VhY76 zKoOx&46AvG0?R}fW@g+p9Y^J0EQKgv3{(@A1h%P%N#S=jHPtCxHk*W$7Wj1OTyJ+t zDdv4=+IaD;i;_<xP5Jq1d1#s~52l|h4(YsbPrzU*3;;W6IDPjDBQiB5w8L=FLOLDT zL&d=XBw;dZ+I}mQ-?4K`0u{_A=h$89Tw1G;)AucHJcpa4k`T}=1w9-bOB>s_4%&^E z_Ds_9)E5MEtytLK>9l)T-B3@YlguiaA39rJH{_hz>sUq$v_<`28wKqY792p>|9|Dp zOb*$s>qnHmrCPH;jdts8Q2vj%XAy}^$+A>bRB)p6*054B;Xk3Wf0ozP%?=J0m6ViJ zL)V&)wfH`_@QPT{@UjaQmDknR7s`V&W?$`~MCchClN%?g$E1Y*mS;E=Loqiuhg>l| zJDc{|CM9j#f(8T!sqWul81?n_M~r4nADs5aO<0mIQH%fSjvUUJ+vnx!{vCYoxFcay zqy3g}@V8mgMXk_iXIOanpM-oZ<H8~$y~oGai23cWe;RJ@&<?4^e}1$uHYRWW)@?|q z+f?;z2Gu3%A6=(N9VZrnEtNrV?%sCe*DeUFfQ%NCVm6V1jK?PVG{3ye&BdkVuvG_u za2td7=FJ;?eEcaZ?(`1#i?4nCGv1(9VhSi^5+)CvflbK$>FH@WN@4T)EI?ur9u{`6 zR7(Y1?N5<?{;WQ=#fI~55K1qvM}D6NpsU7Y1d~7pX>%q-GWeIV!&eq6nr2>BRw{Zm z?Rpe;b}z_7y_l_USB62JT4At_8#1d(`{~*&@;mS&IVe)vkg^K-tLv!ty;RKS6dg4< zz!Y0O`9N6)mV$RZxT&eW-BYSmSjyTb$TsNvRSKWXMn?!{X`iUSs!ZTSyT6g26Cx5F zT{(|iEh}r|EGtt9_PLCVbY4@U291<YxlNvCc18etltz4FdVEUEhgXJ{B$e5GjSXg< z&iMn<^map1!IB(Kn)~hvFASsHW3Owck6b^?OAGfywZp+Jc?@~*P}oH`>KPW+U*r@P zoBe*qqS2NK&blT`5VWxJ;9=L+YjsldS#AF~JB`SLLYqS%mL!G(z6pQ%3ptM__JdJ@ z;QBokC_SF;VlPC50W|G{v1WuXUM)IN8L<Tu`BVGgk0LFX;c__O?wdInGAW>R{a*U2 z?9S#j!okxUlVk|_{Rj#Fa1LA4A)$TC>HQTRbpj0(Q8Pl?94nfd%%{TqH0Kk_%l_?= zzZOFYE%@Gb1_XuhM5X8LYvz@zxB3rk>p$GO*DLP(?y{*Qu7w|-e<#hWqlG}uj-UHl zR2F_2QPOf_7n4Ep8^ZwbL0m=+UM5<_uj6{<r6}N_+9YpKV4_vb=!xV0{>VakFDab% zZqf4rqj1dQ@mR{z(Eih5kEnl~iu&(b4I!x9etA=tIZT3x<4}2IOGhCbomPehS5y=N z%*%WFaxlG6mfxaMz)enCzCJA77c?%P=L&=*Nr~Ni*j28XThN0@|DIM#O6Erx-toRH zTFE(%JhW7(V?aj0mxa@tUv8&$b%<)5vXVQ$A0MW0e^fNMhNFnu^55WG9rF>hQWW!k zY86`naaWp}o@Kg3#f(-hpRl5wOQPy<Hdr`2FZg@Cxe=(lw>$ZTc&SOBxDoHk0?7Ae zzh`uOd3n6Uwh04;o_!hf)h6L*POc&XxLO^ZLSDv7u~cx=F<d}RKejj<IIvC29o-T- zH2&MzZ0Rf{kM%=af1#;uv~;>CNxY(#Zdyi)v2{scAv`<FjEcXs%@idVh7rIGM=_I< zNc+`8JMsX^8p7LoLzcz~rwvXc`7ahjI0GnN65o`H<K|)u&h%@Py<;!8_c;d6)=}KA zNkdeAPfvbaoO2yHhGT%Sq+~}|)yQl*ayiYm6IQ1zY#a5@-!@;c8vBd8{eX&@i7A;u z5X~=?gR@8UkbZUjQ`XyHXh#bVZyfLRY3-?xJ0&G1Rdw}h#q)46UIGe^qA!pKYMKx8 zUzF9kd?cKhlmHZ!l{yaY(D99C_z3q%*XMqSzSIuf6DG_@3^awVbNf6uyZ81?zkf}f zIF;bPed=6e{r(g1pOf(AIoTs)h*s0I=Of?ul#ISZG9Z$QiMToI_~35PMo#j{>9t;l zU!hmTPhfa@5|h!O&2Qp5TKvd@3`Bzx1{$8Dxv81H1@C#e^tXVF??&%7gd*|dZ8JRs z@6eaQwago*iidMs0Z9S3=dO|oshCx#`!w^DovaX`YQ{(Fq4}t71r?FEt<Cj?)RHmO z3F-iY`~?+|zxObB*Jf8?XTOt51Yy{yXga`ocr*yI_7W{5e?E55XBj_loLU!n(e`{^ zr<#^71(jWLdN$E{XfzX?pMC!vNC7D7>g$^gJ&rm%Y*m_$y&nBEi&BeV)77KHo>=$( zqX4+arcrBKnHa+Y+0{y&dYw-jFdIG7)5SpqK5nl!VeOf1d&ody!!y%@MI4ljM0)o} z(*?-o4H2*@E?K^Z5LLFu<}s;A@8WXc>y7?T7!`hrwmCSIMBiD<Yso8<$UKkGpC(Th z^sWaki~n4RGRoU5?{=I~b>b*I>+@pKCv)1LcN+Lu{hqh6KFc9z@q82q(9~q1X_mzt zZOd1_Nn9T+3@a?Y`=@22X)AGN%v*$cEz+0Wvz9wXsTeEDiN#~?h2crf$ZqP&lIaw7 zA>H^~y~<lEM)BW$-$gsaLcP4s?qj_s$UYMaI9jay?7v|sY15`I>kMZ^lkAwAo3_0+ zvwjao!<0`XpJ0F+1|9m-2|u*^HhEmU_(SuBk*NwCfZWu~RqK?}mH-V_C?+qfC56)A zS7)J1q1oAn*hgOeLG=`jggVR{bmCdvgzw@&)!A|%XlC*rOLGzdr6^~KbWDy%-yx{a z(+~*k+?+>WnpISg;Gf^!iXq5=1`%9%BGA=RTmdjW57@~+tV@j#Rs3~m_V(2kUlzDM z<@BwWw<SUbGb{FmlCYVE4E~$i0S^bimzZjd7q87v4CmB`*SSRtE)CjjrfvIue}zOQ z9yauv&bF%p^Asj)E@Jg5e-kwOY}blB3ORsLd{)<BJVgQRcUY@_u?N@g!}nKwj*FH1 z2yzUeMIyh<t9HowT*TEAF9EWgj?>6%WNOpb9?YrbpwiDptRFxxU`0YApLj*BT;ep^ z4>jU%?ERYS7{SGcSYKPb^bIN~;YYe62Xu1x*66RAp&#KbO`g|XBxK@InK}EKnA?ll z2L94|+iQUi;b5Zn-#owv+@kMmX@U59fZt%DJc%;aGyHwI2Oq5(Om8FcBGi;eNrHv5 zsCU{Z<w!!qFIidMfc!*8^euBs|xB1y$&T|qQJQ8T*I$aFsE1Y9JAvAIopd@?-w zTk>MzW`ANJt1d}JUE6v#*W{K4ECfgon(kMXUCn}{5eum~2J8#HjgbwF$e+R8B?IBs z>L1)L{UGW!WHFH7hXII%?kCU@awvD8+B|Wm%3lRjv`0+6fB&0;o=oXP5%WYQZ%IiR z08j`>6nU7(!1}u}+g&==KDN@ETM&TO>xkEIfkYdR{c%$RqOY|A_udAIKMH5_Y|W}D z_rNeDK|Kh>a4L8iuclNl)xR^=7k9$L3k=cbNPwWbB#@}X^>wCSeHKicXv*~?u(h4* z+dZyzEu<XANKGtpB<tXSO`F+Ls%)Y0h?hc>sg$<_pbYZG6lrGsRus%w_$r@n9sZET zsD9Ta9)>1bhE6`9xjofA+T$(Q2+uDsL(SwD9WFoDTkX3((&9eWg1i>ykCkXi18A@a zJiA1%A)kVC+}@sTtY5Sl&lisz`~6fhFZVVF{-tAL4rhFw>%-fQdV7p7oH8sz02Bcu zj${Lz<YnK?B;aTFNb+<0_So`(qF1{flzfT5&hKW(^?aOL_46ApZth5v@D5gj3O(W} z?7@*C&&{LwUkSX90gqV|3k~&OK|QEN8(-yr5_-*m0z$fby>4)`iu2cgId+H8MaTcT zc`y;3E!{Is=Z;#tj92RHP%gp;XGNonvNx3J*NNiZwc{8mH!3?ue~lbTjVUeUn~@{( z2&=r&6*{uByJMW6Po9u~iT@$_T}Ee@?@Jo02HFZDIDlAS_%QkFV;BiZ^UzRQAg>Qh z?&y`Og<6KPHeOnCbCZ{wg&G2Yi72KgqOvhNIy>KR)Z|d!WU@a43LaLCf+DyW+z;w^ zbXYZ554l6cwXvZ6wJP<M%gXsbW+RX&8dc}r$<0KDK`r^Y<RjTp3nPH&{htF01S2$X zkB9KT^9BGBF2_i)$Vf&;=4iG!R*~Ae%s)5RNK!KNUq)dK;)i-dLV`#L3I$mHsfQJ6 zYHl9l%1Z#<F&dLjuO&{{;%-GWTM?U1lX%Zv8<eH6GLzYO8axJ6yfguaZCXG;z>|n2 zn3p3+1yod2L_{D(ikH@=kq?2{01bH_b~iYXGo5x_k*^;~P`AB{i<%@aeIS^A9VGGl za0hiq>k1dn6w0L*6c-m4MW_5L08eLUXKx)IN*B)b$-qJfw6?ZFi&*miyFw)RUXU2A zb8db<gUuoadfVc^UxQbT=zHI8`kw@++^J^L78Jjv<-YU7(>+AY!1uq&jhMu&u6qQt z@H8eSCY$9fHNeEiHab3Td(4n~Q(z<-rYN!X_ph<JIRap7YfC@@`s&&v5t=fkSbqFP za<B&lmc!72<4W<f;U4js6{gWjkOs`(S_wXagl4D}O@-FfX8u@t8!==M9^Qw`FrK6M zKv+I^`1k&LU5DewPHFk>;1TcOF|kuCfrK%0bxa2kQ-6yL?wed+D|lCLW>w7I34cr` zC{01pcsFr`YV_y*A~*M1t8;xr9m{7HW0ntaaKV@F$gW;&1{`K~8hGGiv&)Osl(kdh zQ)8pkK4!)V#xObj&dSGlQ_7rjZ4?D!%Ug!dhd4JdbQC^#wiu<S*_4&P4J1Y&h7#<1 z>G$AWkKm{z3JET@C@N3lH<f*5kh299LleX+-#4z(SmOjq4~hD)*myRe&n>)D<9~;d zsG-X1jrqh)X_+%KdCeNa@mW`ROx;EnR?Na8zOT=wINRl_tZbHlwRtLo=J0MX5_FMp z6sWJt5ZBDhJhb253tI4=4>`dlOV~w>EQe!jk1wuzJg-&W;qbBRn$_4;fzx$YcV525 zj0U^;h3fH%N4OtM3JUAEma%K=PSY|Id#C4EYpM^9_sv<q@XD3L>5<jU$p4I5Eh;Wn zv0(F2VO7ytso3sMMsbaH0uDSV3<$X^N2Zf`deu}!wzm=ItiW2z)76kg@q+Ezp`}r? z+w~9e5G6}r(m}85-3tRhD)G*ODf5K+^hnuJEjj|iC>?EW(#Sy_af1y(1Y;pvTXj=y zd38z^xpFW@i0~VX7}xF){g7<s=6B4sGaTG;ggDkrE5DbK2}k}R3qN6CDBy?UT|+`k z-?y{M_|hbpul&lfA?MA?*Z_AZGd9>{e-aMK@--MES~CnVrGU0Yr}`Te^eX^Wc9aet z1$QbxRqq+<111>mB#E=z%Ge&RBg_;CF))V*DP+7_#$qQ7vNd`5_#H(^{9%cQ%6`-> zFp}ly^Kl%_dK@QI{&={Kzs`6)`<vbvMl-Uy>O$cMsJ7A*OI=E~c|R{dc5H~>;xeGD z;ZZLclMZ^mcW@d&0qhBRhB`C^xcmlE&Pi|pFjQf^_ZGOcNOEy&Eq=UZcG;O_GhY~x zu;u>?4gCKAKWv-%rMkFPK{uIWX0E|WuChsX1)AoqU679*{NwtMuph)yENt}wYv&%T ze!d$QT}RTkuAcRR=Vxn)zKsn0UQfjA7wP^J94xgT|L}gfXgTROO`tE=qP1OvNXaP( zT%WL9d#1z5kq3eqsqer`&FQMm@DGo7rmdWBD`l?w9?xkUYgl>t#+j337oH!TZSV)Z zr{|zR`%pw6wu)hi{u@!44fV2qBl2<JY>6V`6u(38ZfV`mW$D<1)w2Kf*EMcHu39<f z#^%EH@0YU)!X?OoXPt|4l>Xae%Y{NQb{R1bvA&H$g-E<<yI#6N?oxgiM(4jntYCJ0 z%4#?`+8nWRX3$Ix=gk?@Pq}+KGCyrz7jd+J)7PGOkipY`@e7~iEv!;(;@huXn_H}V z^kH5XvrZ>_!eJ6u`F%XR4OvCzWwEvHVP%hS)-6kwi%-45k4l-;+ipkifhX@LPeo`B zw)nb}CBNR=&S$UNonE({7v{ds^mZdt3l(i$=kozM`ts&T(G65N<j5~UZv+thlvLH# z8U>B$1LGc{7W`J3&G#h>nK6uUGG}LPan9XWM_x0)EzH_Pn$pZnd>;zWA~?w*S13VK z&*69ol~<%aVWU~1^KI=-V}y2!c5Q)glb6EJXXqTFb9lc-iN(opb8{p#J^kE!Mx<ow z@<ctVDyX5Q=1OBWRNTV4glCgsoq7X5HUF?EI@<Ko2j(>0Hu^2Cl}j)dPBGMkN<Dy8 z2X=|fZo`&wgPzio%ZEd&nwF`1Gwt$i0-|QH*)`k7T3eOD=^}4D**mCWmfsYcmUCG* zI;wxeCv;`U&`zgFkEYAzV}6erQq5N<zG7LH$#Hn$Q@LxsZ!X5Ejox!;34E}XLvJrP z7%fQU1I#UsB&k*t&<IE<gQnW88bkM6B6q%HbO*I}TGlSc7K|K_Mmx{)OH7&`jHb16 zUO%rCL2&XrN>Mz#|B7FJgvyer>=5~w9yI={laN7D&d2MMDo#TEIYFIxjukq<|8;Jf z=8c=J=i{!23D`v}xioQ~oZp%DHs0(=d;=`r95VKC>wE+Dt!-jcGKO|EWEkv-(c4-b zSh-HiM~pS_%BLQqmuX^P@9wC~Ep3<lqKzh-{XRi1!F8i}gENqXzF?-|`T4Ole++T4 zRY7}>%4Fx@=wRx=`5*&bm(PcjbWuT1#R?J?V#_au6kf@_h0E>OGrDVypYl-MXmHiy zizGn9@Gz)gfDT*z7h;!>?TqvbFzpwg6aFHsUS3#rNC{oj@-UUm%6IIUs--!^%zIG0 z#_-|u*LOl)Guy9{<qto7!FlB93Fc3WbGEiccxODTa!2i8V<y(t)#tA>+TZqb0gHEj zexrIf!M}>((z}n@?HAYmc=MG#ly$FgkOmUtu^IIn+t0Glm5Xa#>gqLt=w6ywT}=*j z@`nefaK!IXc#NG*dGa}WSrysL_UEA-LQsJvEo*t@x$i*SAzy}DJMqHDOBVHXm(2gl zkf~6}nzzoAl<?sVFlG&1CpinLs&^8{{%bm>*<^V=Pg%h@tSzOL9N#RaZd?8f?~pQ3 z(?H<U(RhpJiBCxbrDPqF=dDvwNtxu0A9Z|q{9iC^iMD3hy>>fHWU4te+f=es@R9MU zSn{FNU_VSgMg(t5a|W}nY1lpQEEZ-$$HCaDnOKT@@)ur+3aTT;=IFZ|%!_mc42jFN z0&Mkla%1!u`OG}+%KtTJG(GDRcV63vTt%@rv(%*wYf!|CX9<``R~??NE5pfZ@mRG9 zWseVgomd%gcq*UJF{vmWOG`%S%CN8^<9s+Jm};xWrDV;$e1={BV-HZv+}v~ouJW=! za&j$Ze``fRZJsL_=)c~Y>$}2d4n+E*cRbh5Pw2XDExzy>(3fH(>@qxl9XZWC`HUo( z&WseHG6VRRmokPBV8o_F`Cq-YbO|seks?ND$nd?gqH$Ikg4~6El@UPxA1;989`T@N zZ6IchAjx9O1BKR-BVy^!F2f4i&E%feV9>_v8RXx=ZFRJYL+tw)_UQNXrA_VX&tY<} z#>B@2-5reNffxJ0rSO#e3iXIAQmTc~9_giiI#MaT$cj=sRki8)fq-}jsD<d+FGn%n z89CeLn33YI+pB96ohuu26{tbQ1r^y`hKof$g?68~89a*SNC)Mm#$^?DFtN-BeP7f) zUWRvej7<tCa0&_<95@L)2#J2Vu49`Q=Y8YMQeJ^z;owDf*k30Emp0BC%%yGYahs&v z$1+S9y!1OKz5ReDTtilR!792Jxs%b6s_^8&M;<z|7j?8}Z#cJ?{zHx&Db(*Grl$6D z<{iZMFDpB|(P`*Zr(c7-c)*ZEP~n&hcKABtDeTi9hnKvw^s=6w@qz-KJv!abzRE$V zSC8I(rN7;y>|Dp49ykX_!P*zZZ)vH~X<<-6AuJ)yZ{KZtfrsV7ha%C;!kp8p3E~F9 zIr28|38gJ-I%vF}t^O1RjVK)s=LQYd9;i+|)4ldnqvMBY7+DPuIG3-rSv~rjUSOa$ z9j;Qh-R$19dH(99`D$T~a%|aZas!<R6=dwZA1yrSN}S%;dD4vjp3c*U^?0iG*3N){ zue?ytZE`9wCgzt8N8a8Zl%R*&9CM~lbDtOsa@n({i~FmE0MXP@qebxu>hYYiO6Cz; ziSN*BWcs<u*Qfgs-<Yt?RTu$4liQXQh$e3~e?5%|xb3sTsA0J^X#ERe<Gs4grHhOz zWR18zYbLy8mMZ7JOyz_J25IS<2;V#NkxRz;r**t6+Nf)4|9QP!dLG=%cy09RR}@<( z49SyeD1@Kb=tO$DRy?@&g7QMu!o@4x+k5t`50LP`(Q8f0$TYJtrek=bJ585`u@ZPP z;D;>V%UrN$&iYl#6LEh8P&PW|4W(|Uwk=c-+xO7nh&=fqGT}Z3qLUVE;I~klahbP$ zU5~pD@ERTW%x9M;;i<maov-YJ4HC}M(-VYy6s3rM_$SZXmH7*2VI7BwL4?p<^0y`j zdle8{0qXPf%jNrsI}X2?-so0=lRe$*tu^0h-_wTxwai%Z=Dka<WP<m3K#d%%#JsKJ z>6(I!o{ws#Z^*ng08~;TuPQh`N=XI<t92L4trVcR8e5oa<KYqL)<XgM?2aQr=sIpO zy=WbRo9MbuiFp#|A{~NELtjF(QSbrzbqKt_%!+T)5!<kTe(ty-O6`${$0I60Y?~PN zQLEMBGAmpA@Gz%QT^uaP;o)DeT#vl+ozv6Nr*kh(x!v03)EkVYye<$-5SC(FG_`2b zWwhV_&IHaWxs>4Fz|j1#RzObk^!XSy)a)hzNDdE`7|_x1ly>)&bQSLnD9|4Y(v({p z4kG@_-=_57d&@_(*=Tzx3vj+FI_oRW6cRr;{#@@s=U+9FgQjU&Oit4|I(#nTuSYop zSGs!p{P*@x@kT^p4h6;=l$YC5yU4{B!fw<x-!-+@a0{%;XMH%)@+|3~lVNlrG;*mJ za+;3hvY3T)z8gy-_$_Rk>jTR|6x@P|ufcudRHkMz<lj0Yr_8Dg-VxGje|l(9N5cOQ z8f@TI#iU1XGt~IgwS7Ia?E^Xv{`+T2($kanJ%v-gs73du!F(GYSG}i1@*(zEGi%p$ zD--jwe#1BoHH)zxq2#zoYm9ENE;sX?GhF{odl)PL)}<f%tYu|43i9U}R~>L`U1}o` zW1VVjWG(s6z%y+s6NGYGxuPCtj{5IIUUDj*dz7|65PcWhw^%z^dUQj76NOr1b1{R) zMmslEk(jH;2uO~OAJ?qP&2mc)4g>z}BkB>AJiMWCGw(VjGmKXxs<zI8gzQL1Xg|Ri zNZ9ha!UDeyT%=|~-q}^z5181^y#+p}bH*ej>S$|i5ui6*MmvAs(d70e1#}V4JJB{# z-|xWzRkkIc0NK}z)YuNU7^j*~9=Z&fM2Wv{Cfa#^8u%PK9uJn|j|*JMOiW;?YV2V- zRq&w%qDK13h>!t`ZYN*ASiCK4J3h?qQVY42*$K*W6>FdmgwnH-uvww@wfbV%WOLf{ z(AO}o<<5NWD{cF;>AY-<Oa<a-jF&2Flia?!Rf^NtD`Fe6z<b@aYEtu;qD38lvEGZ( zDzzw%9N1qghWJ-B{81a}SMW?mbNhP}Ie}7t-1<O$=<*CdlEb_WWjOcSLPvq<acR5l zuBG?CMbnjni7bRtU4q<<kfmFE@5`H5N+b@hQ1ca}I*u9}^t6@B=kT{G&h>TdbF-%J z2+-TkB%f0e0Kv>Y#C130hsmuJOH0q?vI$CgzQ!G%WOz!e*pJ`S*4x@c^0CszYuVTy z9HuTY47};fhhI5tzoz4S4Oy^mdxa1=iT_|(;K-UWKYVAZV3o?Kw-;u|VW|k#T`QBA z`ucyz$>)ZhQgU~E88JBOg!N}M8{6poYQw>bM47(6^!s=~Y(&9knX(*}lw;_kT4|ye zAf{v?rD4zpTbyOp7xFtI4fN1*?DetujTx&=^)DsdZfi?PN$blO5Gq7xPEbfOZ4zjQ zJ~{9LhEBuQ$?b+<Zzl4@&AKzd=n>i4+9n7K<>ZS%U5HQ6PBEtR^BOzVpljdJB@K|p zn&eHmaCBMB==wx*#OIpT;E%u$5<SucyE@&TKLXav9%#Vn8s~uBfPx?`BFJs{OZeyo zwjf>W&yHHm<uqFP(|Vo;Ug|UG#${!e8yt5R3AJM%@Qz<yZPeNyIaBBq4bojZ+~<R8 zL)<3t=7*Y*W^C%xZ{t~G;K*g9Z5cer%1fS%2ENlgM@lTt*8REnUcc}3(_^XLFxQEk zYQU4BylJ(!?iB2@yGMsEa<c3KGk^9*<yZUO<Y~j|#e!Y+LvEXNHDRr&sMVw-t@qaj z8*%K6Q7QnF%?l!s)L_^bK=j#DkDuN1^5fL<pPWD!C-Gg=d>BC!vF5#dBQdz<m{bm} ztos{V1DApAx_uYvo)tcwgi<TZ$YhpAu9cT23x});mkS;KsMe`9ip!w^eDQ4~{l0-V zM5H#a^ESIr@XM8Rq?1R+>G8ix`eJ(6=<*a4AGutNnUcXSYD+?b9L_U24Iz=5sJ~#B z#>{NY9zUdpH3Rm38h7+<#VNql?Sh`({R81<WJneRtI6Klz*fB_toeHCQvm8$nb#|X zP@iYnn(vfIY#TEYFOL)M_XC(--wU}TGf@Byg@t!Is($j{xZB@NG4}Wg96b{^sMf7+ z&vp+|b!*ezxOJxAcqAV|SZ-II3)$*58HHhZ<q56Dtn1$g6ofGYaR~|DX&(e>;u0{e z*q!Th^5d@W24SE8Q7wzGf&kq&{x=<t;+lFVyi@Ug^DqFm&V)ygY_{UQ({))<7g^^D zaK57;@qp^0zA%f&WIel^9zt$qULy$csePS2uU28N*90?nd^bW^|J&-yl;)Gf)}Qb2 zS+$-;@UB}u(1Fh{_J+f4Ce}V84INvv_akEIS-y?hto0fv*g{dKn1~cqta?`y^Wlff zg=xp{V2~mj7IMo5Bz6%1;yYd2FG3kYjTMe7^inZy6=@)22$C3qBd=El4YXBeV6CMj zCnvxH&+vX}lx?qyW<$~`bd%mO@k!dw(Ei~y)26mOhKtlgjm2RO0F(Ez>QHcwy11pV zRmN(0Jc7BUrRjWn?E4KEDQF?uflN=AdSZI6shUho(^Qq=Z8E2vT+x`~p|`@>lhY1K zt2a-ibi}Oe;DVZ4L%lY^S3uCz@=rt+&@4vUV^|Vq(C92`WJ8cFdq}T-TOy<(F>u#7 z#cPWd4a7heTr|%%#3A=>6&U%fHr1B|L`(14(<K4_eGbOaG8;BIxxWogQztN)`c|eE zFu*VLsNW+7-xm&7ENlGhLX|~aP6m4MjOLcGfgWhfwNkvxO%(5>^z3{v!O4J_A_ey( zPV_*D8U=`iyy#F#ZOxoZq@Q?M=}2$Q0&%BzgX(hF#86pG0*o(uvYo{$smldg+&VhR zc=&!TvRZGc&QFm8i7P@VrEa={3t}?1ib1WMpGMZa{~0^t4BTzMer|h*T0+O@g^ulR zxF<g3nL<ZQZ_OtHxbOSK57>Bm@+T%EL2Yi1%ehs)4$zG5VeWbv@OhapBm$c(xdE+r z6v-d(p#<GhwPW4p+iMlqx(o-elD{<Cfj#+w=`VhFI*FIov5t_3otd`P<Dphpkb*(M z!_RWH^+WLL^rc-#+!WgtlHyWaCS@&G-$puKICAHyzv)m4ANhfb8$Z$5+Vp_Q+xj<| zpTPvusa3<nT3b^3uNvQV>ZxU=SkoQjyl^BAEkW&%1F|<Ao;M-LM4kPaO?(b7;c_IX zZ3bez4;GMD@<h}RpDowJ6?SQ$X=!Ppx&&M2)z0B<sU0<IrA1UA4$*#NUNxqVC?O-| zh;Lgq1}x$_+S#aRR8qFdMCxOWgmtYg9eW1rt=^V6+Zxs~%}-2xy1ROMpOet}k9bD| zNeCO>-#>hHp<lFka&|$M!`88T=$UZ+SjLX16APDTvOOMDi(Sdi+-N(l2ROq+&c$9` zHjc66y1P_W&MX(q);Kx|InQJYS@G6>0D<3D1HHl8LV<>rT+ob5Tj!38)yDc;6|?Kp z+b>nx!p;Q?UwrSr31{!czk+qLL_N+*h7%ceX?t&D$v-~;fHN2lXZ*=zt@d_SM7gzB zfSbbYsQXpDiIIgp!5~T`L;?_ketUkdbl!S*`+A~D(p<9@^0Q?u>GQE(+J=n+vRpaC z+A)yTTOaW3%{!y=9_PtH@K6hg`*SxaeZm?TepyqBqfm{EO!Y!K*4%Yc{zG$lnc2Z1 z2_fZ31RJaj-uURg66zh6+0_;A-p%bYv_IUfw#B48eW4rsIjtZc69w&^tItQ&Y1)1P z(CD&TE5709uOV}Y1OVFM5#GwQZ6w&4n-}Ss=v|*BSSWcI&-QT7-tGF!dC$2^5+tDO zG4D4iidl)#8Mhdo94u@+%TA+DLc?069yiAIVeh``$;(5tVAt(s+Y=j|`)W=64N~3= z`&<@^r?+vDt4<cNz->=*=kSQk-s#FjjqTCc+VvR0T&K1s0UkQTbxM4sD0UGxA`$$X z6}O}5wHjO2<Q9-^)o+=_@?niiu4H@+^|C`tS=ZR~ix^I1omAb-M*EMtIGu&@y&com z)5Rs9d0DNqie3UD+!%8tg#Wm&x2;DNa^&8#PuyC5EuCvovG`uB^TsBV*UBm0-3Lu0 z@*0r0E#URQ!2dEZVR~R*GDp9d*6f4feaiQAWUgk?$5dGD^MLx5De2_IJ4r?L1D>}4 zC2dWuUS;)$?Lzed`9yo;>o%DV5kH+2Vl2jX5YhT4+Ch9aljX@s1I6UXTf;_N17h9# z5iMk7<XbMMV$70b*IA{xacB>?doxD8kL*paIJN0`)GMP>9dKCj=n}8KhbM5b&IhIo z#ZDYXDo&quI?KwMYH|(+YV+k4HUuSOg72G?aV^5mjAmw(K?+aqLfHvR^Xb0c<<vS@ zs7*>rPK=M=H8IOCAn)&tVA#cUIhb=Bov(ChSseUwcE*a>K-6JwG-EOU*Mh#yOk)Y0 z3q^i@A)_AC{LG_I??>+P0F;1TO6XrDJvm9G3)_SO!;;cyHefX^o+2pqQwk{l_~Z;k zK$e|7HN(eK*4`s7w%&c{J)YbzR(9&AJ4{tIi<yIWCD6WvOAqjC@W==3UJ1@;%jPk! zklPT3RYGRtqS|eHkJCoI(sVeGpvT~)&q&WG(6qD`TE29SO)m}mHL#?lXR$H=Kr3zZ zDyFArzJJBDKS4dEfbv*A-I?1BIxzI-Pgi^UBsPobe3`@~*@CC-ViBbQv(d&Cw<h|J zbFB(9V)?&wQp>*=hw0zi)__%X*}W$N_f_P5s|}}VcN|)=oi}SG>2REVeTlr48V;qt zy6g+%!&Os}+KC9u*@X(3@+oXX>+3J$={$4^nBqkHp$LKJ=jTZrb{RP^zZxGI|3rDZ zr{bo{r!xhV50eedjzeFBg*85(R@c|NR-{?jo)<F)U*=5+1;N9?!BLQt|G;IX6c8|& z+9Gbo<H$N<%xu+ASNq80MafC0I@xA+7YABD^&k6+)yu0Ums~TARFTv*{&YCOWNlc| zv-Ng-0pB*T%h=i3+1%U=^2a#hZO}szzV*nUlG?4KW=|KjpLi|1oS2$^l~z>E#rXwd z87(0r4F$!n-f`<4tcXwhT<rkL>3Z3oZ9F|XAZTfMcz3bw!JE<9>9<gEiH};yr+6Vs z9HXJ@z(;*K1)-LgdYdlKG0S1d@*&JYNxS7cW{KnYgO#Oq&mKf(SQ;rJ9OznJ_3o+S zj}5uWVs9M~eTxAF{Qdh^Hi?OZifUkDqSEcG#Z85lSr#@XC&no^re@j^u?PCOU7l#4 z-LWP;*SWvY!j5iKb}soH3;{j9N^iGoLZlwv9j3Ar78VxR2tPbH2o4GP#EpFq1)!p$ zib+iUM1T!s?6`vl8f;ej_aImV@{jqv>A@~lOV$Dc0&m`gIBfUxdEY65Qij{K=Ts?> z<#Ih<6nK5Abvx7VTQ`~>r?DXg06951Mn*;)oJ5P6g0)sRg?~y3kBlVXbw4lFsDy@w zR<F=4-nU=oF_DJ_x(t~rbemZ~vMDaBscyTc8hAEWv(MvAG>OQf^-ZnW#76=Ga3*iE zo+2q|<2@g)EIy~6?Cz>7E7yGO3omFCB3P>Ie0f-N+h}fWB@*z}l`B6raxD@X&O`wG zi9=!DpzQDOd*3XX_4V}`_}=H|kO{LWDJfNhKmMdq@$>|l&}p=_Iaq}%k)?PaFbG;C z$Wd*yUW!RgZ3UMl77~<4$IkAuJDMydCFORynhf@Jb9xU9RjJW|E>KX;&d&3d1_t{2 zzIW$ep86E=wzjrFO6>I1R9I-}{(N~Vc(Qw3TWwVbyVZP}fZq#f7&3_rYEwMZ@#D#? zX5x`}JDZ#5e}^zeq04i%>7mg%I5=!<PCOvH4$Z3|LQfsgXUG!PV?YNOK0jPj$)_!X zSIyw_DhmG)D#TT!8zE?XI9u#?wtjta;o#y@URI{+%vr=99v)sGo9uYH+8lwyc)He# zQ!A)bWDcsw%xo_Nm5ATt()iEsFbWEaaFjRova+(Ho83Vh9X|N)-~ZX&E!el`=ADy+ z1vWP~(ZFsr5mA)L2WPrQ+ci9H=c0}dUrkNT*O!`<7UBFNXK+lA={gWa<iwfwi%i1Q z*qEC8<1B0pIVi1z!$WSc8=sX$%*x6tCXq+3%7+g4M@Ek2N<<Z@mc+)Y2n!3(;1k0Y z7Zuq%Ijw;Dt~MHw&*WbtgfCRZOF{quSvff(UiU83+Vr%voSYm?0u)O@Y3bqft={LS zr?&QXjdJb$efv0M%0N7Ead9XpsB|7TLLS%Skwiu;0+bR8YHIVzEFo`x0aDVQJ~6I0 zI7)P~utW#@`*-*E*Jm4kAZwR|gankr9H-C2)wj18-%*JOv9Sv*jV6Y`LABY~*lagC z_<Wz-ad2=93=G6Vau4skUk>L=H9*S+Eft@`*4)bK6E|soa99=te2~Na<qjMYwrnQ< z^K!jaIEsYJ&dyFGKF2B8>rZ4fSZ{Ws;{QOZQsN%r5L={rI223e;_M9a7wkcO?2IIW z1I1$y5bzoG{{U|{nw*^M@Oh-={<sqomh}Zz=;>mBsK37-G+jCdhV?d&+8i=v5)Qj{ z-8T2?prBrGQplJbu_@BsqUSU#4K_2AlZ#CbM)L9~C|`)*kW2YO#yB2tPINkbp95gt z*f%LPcf+iGL&pCMI!T#kbs+gryVvcX<dS1mRaH8jhS8ZB$YQmTd!c{Y7gF=(7z&vr z+1)>V5#ZzX;fN7&yzvvv(9jU8+4$)2u;=+^Kx}MmPOlOdxMwl}iQCJ|%TBwaGz<(c zXPvM12rvhT@7|^HxK-5GUxSLKqo>Cr_(|JC)VQ0%>v0KQ7(Atz$K&!ZsD!libQl;I zW+ZAv%0TQ7T#k9>2tiV@lv`-<HdHMJ=GTXFt*$36p4TNHY=a`uOG3~#-RuhJ?(V+0 zxG);{*+=qjnUsUW?Rc>olzE5C(LCriRXFO^Oz3q<>FMd_2r!@{jE>5Rh0KtMiHU(C zpyT6vzStg6DU?@p=0v~{Ds?`bm16tW9g0r&9s}ba25lc4a9J-h;p3-*A*^IJ@A?Fn zGEkj`nfWauA`1%(9-rqGh#8m!@&m+}h>dm|{9ZT5*GCH*AP9nnGliaw=YC&x?d;-m zw$Uj7N(S_nhlhuoqXmT*W^yVjq+sD83N9|Lm`F?&6%`j3m*#;v|I5ouFbJ=MMgY>} zIr$t~MRFQw7#TC!EZ(P%`99q_q^p4xmrDKin1glD2VcYdbnzk+5)-LrfWyrTcVq?y zY3ak6!l<w?sehcBZK1Jmh441{+1U<|T{+OA!3PNL7nlEnax%+Ks$IvggY~u5RlFm+ zLgnJ^{>WH}2#>(?)eLAahji}{5bW*k4Ox;or92+<_hs|QVWGQ+<3HiP>#w(3kc{z$ z>>`6q7ay_So*v`IjhL92{{HhkMe0Nby_mI%Bd^<2f=KaPMe2@@jz7U6C<HlE<}wL% z#bsr2W=usO=U*~Xk^1Sdv=a0S5VMx78}^5|@FG7u?<*#sy4@TvA+KMS6%?rJ>od&g zEo>bh%jQmj_fbwyhet$gU$~d5m**%_gBQU<48HsU`|q{`i}#4ZR`X?3laob|r?S6{ zd9!Ox4!JK&Q0ek+PEN6F@<)%i8-9IJMpNc&PEL@iTnQ^nOMNg7Wqiq+Cy|V?e!Pc! zKQub}@w2t2scFGq-Vs&Wdho7+U%!5_w0Qg+*}?npAuc{%ih&%VXJo``IF6=f(a7ii z{$8)um7azM{gn%BeuCOmP?&&%fghxTpT%C(qGkuREH5vwrKRO!s#94};R_;rxlW^T zodIPmm)of>d=N=<bl=w@r^PeSb2@TzgfAt6C-%&Yji12TIz~X%hXv}859fflVRUzA zSEIXtRI`Z;J`=Z$<FhlyW*+#UYR_v++>_D{5I+>yTwm_@h?>O$wLx0vG&&(+Mr<q@ zCL;dF22pCv{@=d`ZDs#58})y{!wcWIbmwiBL!-k)TqxJM4eQnhW83TT66-x|kTx<# zfb$Q04h9N}zJ-N_zP@1MQ25phF!mmCn;}mNgB&adU21+Frq7=fR)_^aTl9N=0FBrs zNJ*(!HHQ2GHXBCKIac(on7B9yoH6o+3sP?|5qJI$#j-40xVtx*Grog28cCpMS(YI< zI5@z=!*hAbK?uy6GFPQ_na+~};THXxAj=g6BcROK%<T2N7nPfv8|1_}Bg&zD1MOQ) zEuPMm3KNl@j!x8|FEkWE>o}*Q*=bLjl4t5@z1<58BTQsuBK*w6#a*JrIv-KYUSFO~ zO-=s|LHfL4;5TG$u;KU02RNTBtBGGPprfG?OWWt138aqcH`?l%n-_WC{LDi-BQqCN zb+lDgR@asnQnC<p)b?EYL>}BTo3vM*?JLH0V5wbpfbXheF-`Om7n|yEdv~f&R(R!_ zaIZ+zV;L|}ohgmvM59`w)wurI=X;9FiBxvO-4}Hoe0=Umra3dWdN#b(Ug5}}QN6VA zgtt+b;h!qri1B+8_R-K}&m4SzfR}|Ap^oR3Ql#@jsX6ANX1soGJ%8gc5!i}~`zg}X z>I-g4Z6tk}7wRwh(M(MI7yshoHJ^P>na6;4^(nT2>c@@Y2I)Gg4~I719%67o@@Hmd zJVwT^zIw8G9~mqW8^D+gE4-Ee<`>6Vh@!>p`VHSniz_QDGX-@Go>-Jh(!_l1kVwE* z!0q>+Dbx`uN7REO^Bi&G3-JIk6u9F*!@$rV5H;J|eRsI#RDL8$)=;2&C@~fg2CNtC zobk97W`%BZnpbUSb#sm-JcT(1Na_j)`fc`xmq_1A<(lzq3z|CS9ENSaMBL>PuABB3 zs8Goo);ePn{5&KD22t+?73tkS5)!^g=Xad+XWWa**_u_ZDVz@5OnXI&YK8JS@sh_o z6YlH$EEYQo2cSKlmM^q>rI*v)RJfQ-7b7Ce-4~x4bb{Fup&N|&J6vv;9??<g6R5X> zl25eP$LmH@s~$tRxSeSbHC@FLVX;o&*M*j!{w3jLVI`PYi46qulR_b&J);7KUraxn z9sbyxvU}~oDjBR&^{1tT?htg}oYrGi!AP9S#Uel|DV1-{aw?QJN)z{d6WlI6s;;Xz ztbp~1Ab-!>jPaqv^T3h7#->mFkGU8iXl|MN3j6=kkuEVP#C%tq1{Wa0&)i^rmf;mL zFf(vlJEPLHN=v4K6tZQ6Q@LVlI@c`E<igf0fm=LdV1HWjCUbzN+6I062PGM;TQOaf z$`-+svHdF);so^A*5~Dl`{2xA-t$(E>X*y?M1>Ab&Wf6+Z8ULQnz!H+q&g8cUv+hC z7}CJf+T^$faN_*HKk$C|6TFgL&H8=i6F1vVo?{`r28@9+jp{(R2o`~4?V@w7LG^tI z(rs=E-O!%HtzWBa;8D&)DauPzaZOv9*(-^k9&!tj${!*X?<;A;D1Maq9g{bHtEz?e z=Cm~Tna=#;rIHzBNqDJOr(fJy&%>a%m26Am5hULewuc_BlyU@-JnKB0Z1n`~W2L$+ zFWy+!{O$C6(M?LMeQEW%*60&!hxON!V7yi9xVrowE&x7@vWSe1O2nLB5hTM%qpx(C z{?e$Eg!76hI@REulwal-6b<8?H0%^jGnk~`G&F>x<Rz30hZ{6jX3Q=amZjg^Oz755 z$LeT{SoX9!N!(UE9S*?TJ+iYg+gXc{sYE24%8ZMGbnmXw-`~cj-}=O6?T5z2T2cgZ zge6<PD+p71^eix0DClcs$e?DREuv#Yx@m8AZBThzSS7}O{AgQlVz$Ed`q<W8A2DwW z=TC5i(-!Wos-&*1q>gt_e)m`p0Su>>ZCnr;lNTqNk(~MsBidIqu>LkgWE#}$`c*a5 z{ZO#MA)z4x7je)W`~d%OQoenEa<nH=3CkZ!|2#w1wYW;l@#*<#qw}*Lq;=ud3mxx# zPQgzZ-$VLq!Q)|i2&1ZcTxB||V;Y|o_*~O9vsK%v$W1J4olF10#=nb|IWaOa-sE$U zxuf!CXV19dB}gi&NYBvRFj{4@1~V*0s{XwYNE|KDZcW0|oK6%VI1rfC0y#ciRZ6LD zgwXy2FZyGv4c}DUjc>8RlItU?i*4DDsupgFEgM_)@&GKy+G&gpF{$yqV>aK1jfFs% z4UKh=U+vqQek~8;9!t1XuXovMnNkmu0LU2&50@5ular=;bou40bjinzIlE%tAORFM z+6R8K0t$Ag6@gptv2AsmyO&0VI4%#vy`|pPlLwTCr`G3&_6Hb2-PsYc*2Xlxwp8NK ziH>Co+MA=|lw_Q%Bufl4`uRDI<u>=P`y!d@-lVug!$at*Nb8hlH~Yo~`<ii)mh}j6 zQDB1z%Orp1<LJk7gekwAotVlq_cVC_H9v!Y%T|e?@R;iYyH@>{r|kA00DHts;}={- z9{(`G3sN$|FoVu_sL%kbOe%Pvc^bY5{;?-{urNSP&tPd?s(~H_2zI8sl#$|gi)Oj| zJ#BnX+!6wvgs}%2^>`HlAnRAK+HG(-eMR4ZCcj^<I3ot`d{5fIhDuH;JY#Q=s0Om< zl>=J*Qk9{#|3rOYn{|MHW@@}Iq~}5}H38@vd|RRXTvn8>T+SbOQ|xsHb+i}xzLTA$ z9?f8`)akYJ&L-mY{_$zW2Y<D{zr(Y|*0vl)jNK&?WVJAQKJ#8}K_)|7J|9o#-VQUm zefE<m+U~&)_;d1qdV9;LI)ZLnv~h=>5ZpZkx8NS!g9UfD;Lb)8Bnc4QT{cdzpusJ; zyK8W_V7K#~JI)(#yf?=AbuXj;K-Vt1tE;QlnsctX`Mew#g7Fpvn)ZoPm07u-n(&8A z59F$zG7&;Eue>?jpIo>UNCYy(VO&GZ4uvcqoUe}uGatjk2S{%)Q#d_~BN}-Uq}6Aq z_Q(57j;@WAR|0a&^O$;MRhtWRRVY}OoE2p|do}G|k)hgRwY3L^6O2Mv8z7a$vSeV5 zrNqBl+5fR#c5PCtQ9wZV1rrR%#?t$D7*tO?8!uG{#_SOpk4zsdP1n~aEsTQ@nA{(p z-(U?U1p2q1Wy%91vek0M1^-~u`?&x(pY3)K5z(_?K%G@GDlt9e^u$0E1xWJ%DI{Os zk+VA?DU{FO%Z#b5=ggp$xxq^n*Zu|s<$JcXVd}}xbI%?boGCVPi&`V3i;{NljY1w* zE6PjCtZjmJ`eo(jn*5rIV*OXkic89hCT}abBvQ6Idy(1f0_r;V_y0cxW!2eT%LVkg z$=tLJBqH-1coG#4J=f;~f&z_TFTuB$Lh!BPo|8~#q2&X{D#`BbD9QFj+|kl!{@LP# z@vQp91pNAqHA<U~AUWclZD(|#aM%bAn8YvRJMEIL9E3@$WYVyz>TCRP9FZL#Yfr%2 z&fJX#nN|6jG4r6EwO2cpDMz%aM%mT54?CYX(<K-&splSSZyb&2h|eLw`<E-n^VRy` z0x%Tc2(<4y^ENfV6G6i#h>G^cqqum(e0tn*(aOEh*O(u$RLeKE+w_M=E>_f0pO#<7 zOj^G4v)R2Q#ozP>qLShs+k2Q~c_2$L@|J~_5ZZYGS2C{tGMsVn0kuE~(Tl^RxD<L; z*Y&y9r7|~MSG%)##Hz|HIjsrsD*2voDv=s>3h^`EC6NAld3$|zp%P!orJ-Z?2tQnT zy+`x>Xw~vy_C>f$J)>6zC9o8R^Hs|`U4Zb8_QThnr{nrb5jIzU!<~TU=lDYW11amk zzTY9S3GdoapC8L^LgpsMG$ufrx-E?WOKHgS*}sQ@lZ~=s<C9g9!75mmKmJU9*I3Yp zB8NdAjO=B^Pg7Rmk@@EhF=KeojB6&l`s-JJ^@W*OFZxg3a&yy(Utn<eZQdKkCR|eN zKY+yL!u7hY))DW$3KoT+rutV4d&@@WU2(vR;$FU1{<5_7EDS+?hsErGr1}aAHe&SD z6D10?pJ<iKrL--%o6jZx-cQv9*4*!Cfy2KS6UmIO^FGLmJXeMYVUKQ?oB-l-^Z0di zs4fbwxB;!)N}~%hP&i`5YRKo_fexIu`e+Gd$64<O{Z)S%&ZCpfUp)~Emkp{RH|Sz3 z^~&$2<$IlM$I(DeLte^B9d{EjzMU(M-Igj3o%-Y%i-CekLKl#6dW{8?Wr_NH!g6@W zuph2GwLTNiPtz2hCxIU1kLdmj6{BBK2{BOVnAKg&qL9876@%~(pY#i7M&yuU`T(U` zj|#ruK{!$=8XpV{+LF!LXkxjhZC`vyPDxGS=1_fxIT1lB@sxyBq4MxmAOjs%Y{39{ zU0qgr{XVdw%367M>0XYHny=^Jua)5dN6DN$qajO$a|{G(CLKpQ(4}rX#%sTO44O-8 z85R%gsb=Syp0W3gn_+|lw^3bNTX=CE?x!v-txmKS-w?|1gB&^cCuwl1FusysTPCrf zBLzOXq+nwy$x+ULa}C1Nf^&Ggq1l}`@Z}s_#j(L(CewagVZyED+-Q>5%YT`k+2wSl z0!Wt{_l~cg`99yJclw=_THzf1eF^AWGTYmi&MVBowa;u%IvEM1BxDYimuy`$fCO+o z+f&WJ^x34Z`2>+S64Fj6-;e6c;+f(gas?Vjny-{Ww6>ND6<xCz@X>la*4=#LcRy&& zxD>#kkcRy3-p4TcvF+-=xkc*CSmUXD9e$$XjdLY@>+gT$TW{-~#}~>2G6^^*V`oN) z7<D(cIBB?8imM``;o6;t%)yI<&Yhl>et1s$i8npN3+*ZVj<QloP5xMW2aO#BpEZw@ zR34)f$dx;fvsGsDS9>mk5|SiYIi2F4iCPNv62mzlqDjKl72GL7o~07LGhZPyb)Ixc zAJ1*E!s$#zX7Jcnfg~82RZ)@i+w?%m=ypCTWS16XKC}7Vt|GzB<dDzu3+UPKwVc;% zy`*jt8nj@w>~6p0{c&caj(%q*R{MO>(82$|smCL5!R^p6D=GG@JE%EMGr~!~0c-5C z=01XwV;rL<QBZ9miR(%nIijInUv;#1J)iWv{Pp3IyvEgaC=xT3g34B8I(3#3R^->C z0v*j*w_R++fQ$Tzu~1`Y_54o{0@o$|xc6f0sWc(i*5v90N|wR3^4nh@D%F?!NuyNC zxUAI1#u6V77Ym>jGdl|QumDA~;D9A0CA`|QTyDJ`J@a3MYcG<kS+uIFzBqpLZ4DG{ zf@=RKswtHM0A322tn*8QU*^TFndCt2vxoSj)feAOa<2!=Kd`jbFC|*ivav$`XD#Fk zcB=yE@tX8Sf}Y13ZkR69%M<LcIXM`43Zng0#$UoOxHq@Ao~(h=l9B;*xM(Zed7Gxi z0Vk+nL1D$XNNGY0fs<idRMbMNTc}8BhV<NcvHn*8=rmRL%xd6tDlB!_WzD5KYBR_l zXwW}4f~jErv1wlRPtP?|(=C~nq2wGIu@xI7_w+l#bLPvXBP(bVLqhx9NwVS@2oEl& z+HTAPig+Mr;a6{-OP=Px{&)JzmsAdTc7j?Jk*5F~qCG*ap_%Dk5_Ah$Dcm69kZb5* z;Th5cQ@zk22SKd@EgBAmun!(?o&C<O;oDviMg3iDN)hxy(RSrnJ@Zv?@`=Epn2J#? z<Q`)IAxP}w;LUOK%?W`r(dOI2ED(YWc#{FDF{0J0E~d&4m;83uX^^jv6mnDn*Pz@2 zOY>Wi7NhrC*9G_7eVJNd=X6CrAdLP0SB})KpAC^BRsQH@tzoYi&6>eGLS|=^pZ6zR z0|`W&85?_`hEPJ>r1qKdy_JH}x`Kp=n4H2yEf1}qxsvLZK0ZGAs>wzlk~0&CvXYY% zQz~Fxh64VV$xjBa$Wm=P-l;0+`viIZNlU6aL!zi)rcUAH<r?fCLIil|Co8@V6QT(2 zwq_K+I{cBqtB8oj^rrmVDDx0ou~$}X#h(wl#+yqV3cM$OPWa@<gSe9lBC1~KO?HMm zSQJezz<vMz%9vX94WhW0m)B4l@5%FG^GQSD$WNTL*&y070L~l({WTs+Zf-PX|ND;5 z*}*K~dU|@E_a9b&9xqswHt15YIF^4w|6(sCF7-}LP5fPGwN-NU%l`Ym9FAVVWE;}Z zO7Sc^(o`AuR`l3)B*V3c6;UolL?8;FqD2h>Yi-2?A)S<9T_G}Pm&X3j(**njJm$Y@ zLkQ(30BnIsh=@wn{(q<mKs=3<tvp|Cp<rT?vlb8X4Io;s{t?dK-#=pZb3SIr=2=k% zocmIf`@!|mq6}<OG;?}xuBf0OAuWxGCgf3M3i-k4UDI%uC<VZmJ7!%A)(e`TQ#u<* zi|rGUkXTt-eo0SAPPTS*WL@|9&fO_W@ZPB-7>ODO3nVN!kiI9gqvo$zW%>86fBZy0 zv3ChF0;=zEVx_&T$4HXX(%QVvBu+)?#342|HXxq=O6zkz>NToQ2-vKDVBmappuhhc zxiGOh5P=ht&3k%&Zfk41(UuSs)3FIZ#Y%|yD=0HFv#yTkS>8llJq`wAsH3CW3l<+! zxV^oFAi@FF)zuyz9w0uZq5UZz4OyHGq@~1>;Q;Wosvc&n0NBH))YR0tI9zeC${Z}J zR5QSi<-E<yV^!BwPtxly{1NzjQopOKi$Q=7PiqQaYwEpbXmxCGYay{_d0tcp<)4No zWXGYJA(Y=l^LJ8*=jbd-!}as?uV%U&ijoS(=W7FuP6TC4h#s#l<>&0_yuF1TlrB0# zqw<gsintidP$CdeUb(-sP<lN3j>3U9x_@xsURQf{<#u0e*AL<BIec%6fg!SYaCk)* zIg<SY8LzN9ois1Er25B?KMu-oVKH`Z`@Md<k#I>Wp_fXOcTrkXkmFRWC<qYXV+j$8 z_PTVBnJCiHQL0Q_1>#gURi_ts<~Dt~X^32!y1Yb*#y!VCw`XAy@yy6Bp_Or0lSRY~ z_9*hwZhM@&nsr*y)%})g?Z7hn9U(9?4qg~P8innBY@TUu5anBzbPEpIr2Q}7*)idr zEndYR@e!-ej;-+z8ffdKrON`RsETk^Q@q@Wq57kKX?1Sbue1+xG?GF@0>vp4YyGYZ zA9q1+MZ`U=eCXk3ir^Y)A!4@sYk2F`>F>=uE(ZS{YjJn}Kf*1xV?V3+n=)h&z}EOa z0RzU|Sz&g^D8}fuC{&Vsf_xJ;m#!UZ$f>q(X^>S7Uf6~rd|7DUJo|ZXP`deXXV~SL z66rKNJCD@fJ`|I<_C{aT(u9AyF58k2(V>C#f?AlVZ*p2mN~h8LWf0>SBck|_TV~0S z`ElFFkbPZMF3jMWAEmaVVN!a!-zM&Fc!h@Z?wVPV%COMvBy+n;XJ=XjosDPV2{2$( zLvoUut%lsfPs+5=<AZ!ySinMq*8(AoN>LD(A7@d#?fF#GBr{x1W!wagX?IQ_g;6kt zu`=C^1ebhnJ+@mMHfg1pdj5AfZ49Ndsg8=4UPxz-cvWHClcMd`<?KC@w|Af;zo2ZP zn7x+FTiy7qnqIs2T1}^(5p6s%FY?MtJpODPiCdmHS$RF3{JQtFhv?cL&HTDZtT+(U z+-QDDs-gP9%k<*CPD+#v)&9#l8f!JOFkjyFJ817WD)sEad-#m0skz%n0@s=eBO*eq zr|A=0bC;gs_<doRgiK`pCYzan{nS21fGE*lT99?>-}<tuqCX4T=#;#^SblmU$xKQ( zn;lI9jC-I^Oy~$Ubj0v%l>%;UG^=%Z5Z~W*tHRWZC#Nh|Xh-MfXK;6rHkPj2u8yUF z<YUqL4gkE1ZkGNicql&+hf-oo3^n{RK4vfCLgaM9xw7)PZ75=_FSzuBpt4o59joi3 z%ETt$Q}+QulrtaJ$nnZoEvSmJPVL|OdK<Pbgb~BGkM=#hg3V3@+*8vim%J@ke+oj7 zRx~3`!Mh$0$;b3JFrbr?Li<KgR9b%LKDnzdbM4BhzEZm+EV_#Y)uKuAJ)3K#n`Frd zWhYa_Ydf!P^Q8fcjr9d_09S(Y4Ok%GH)I?nps@N4R9@nc1xOay4be-Bamre1TaNI5 zIcSU<mw%}!Bve3pjjDV3wtj5vW1x92#^HxuSHVm4I{|tj_U-vR_4SB1%<im77sI(k zXB;mc=(4({L?gaN4R8EX^g{(UkMvn@@BUJVs-|a6s_2bcRv&ECrRnTH>e~L19zz1y z$wa=0(g||m0mxWnj19>VDg1!BMZU+j@|OuCZIDc1Ep0FjOtf88$a4%44#rQ=)GDd^ z5Zm}Z`J8!utY?weNQ<oHqk`V*kJqBRLq=`zfzMTs;B}zO4_z(ZAc^!xDVGYqgb0q$ zV*zt?QUJsa9F(Jji)v23^w5WN-lx7Bwlw~VvRYYlrj%ki6psKUNO!R2>KTKUwiXbG zu3+#{PLl@<D5^NTK6uz?#s{|WwcR`=i`)qjb2X=@uGF<*ljd};hQ?hZ2zkAWjITLl z^yVv9f8qeg(#UXPe-b8vA08Lv(LHvxZugT!E?s>e9$mNrz)ML9fKZT~4UPlnw5y{s z71n##qk|(4_tE7PyfG=MwY_#O?wX%RlhUN4>SDSLBXZEZ{`&YxZJ!je=2v!6LRjj< zGcuC2RW+DXc9?tT&yC_>kH5LD=ZT5|F%P&;uU~V(t%V6Q&<iv(mX?6Wd}D*titkIH zKMpn6kao$4-_z7a?TNV(FUx6(j_+%6E;^8~O|hg`oLlw^pgsM%b6$PE)Y4M+5Pa;2 zT8AAXrn`4dfeKjeBnIOS5B0%|>HJ0sL#|Tmuxp{$OsrXM5na8#FnJPImP3{<1imMx zzvkn3+~xwy-rpW2PN<EBh>y_-MYeT8A8A>MflJJ9K>OGhE)X8k@b~PEB@JlOIA|4( z$k6I{4FR}oSD)8J=bpRk2bcD3?JU`D&)Y;F>Ehu5_TB|JK!PpnWx8xDnT5q_gulcD zVo0{kT#fftT*IFQ&*^B;X`<PI1(;LJL<3lB`~l<V5v(K?@;9vg+uTzO!cmL0OJsol z&MnYBf`xJNPQSe5b!o}#uV^?+jR91^T=Nh;ukZEgv4Ihr<Ccpse&yXxpCkng0EUw5 zKPg*%LP;0)K4owbWWYW|$KeCjkd|JoiBl+nuR|rjNhx^8-CVW0Zc0a|n4XN4W5whJ z9_cUTb-~}_*16qZuu(Xkru_Z0qLfqDFW&9@v#ix^BYTW_Qzew5)h|q_#c5j`lS<|5 zoi>paHiu!2#VBlW#`9xkcVb$S=fea4E}GfQ(9y~$Q607~qHrhv>Liz_K}lIjVRn(Z zpv6p9l4<{eH#f2W=-!y->Iu2I<;eFqaDos!SUfLQ*=^~Pc#zI*_zo<&1P8y2Q??=` zPGi--T8;^vyUyIYcbos46|K)v56U}=^1%)r`PX-8v}wP?7wxu_2U)*7cyZ}GNArj3 zhs=LPf+qh%+!xGR+qt~3@cqNiUkYb@#|vlV48IjPi6bzq;aSQ5<rnjj0*KA(wJM}n zGf=i;Hy!I^M{SZG^A-im1-5Q0U&K-qA{qn^ZhtZm!2%9`-ocB_B}|ekBTP$CO<{wl z)*Q`Mb!^77b7+=#p&b1~E$Id>yyvNF@ZR$&tE{fB#GUB^)vL!RS~Jr#s17;9NFvhL zrw0eNH}*Qh{_#H}$L|Fv!;JVZ5@3(<Cd}vFVc=Hx!9cUaNa3S<M;BsD7^VcSo^5>k z%G8{f>2q{VIr2hEzyFRgzTcTwns1N~s$YdT0cz743INttBL${pu`V~eJAl_8X5;$1 z5yX{^MlwFcXCVM}JSXrYr1(wCUTGM$ruPC_i&RN>PM{&eb=?IG{OB2Mt5r$V*UQsh zqd%to16`p!?7HT&^j*Mw?Z)5FW?KjKdyLJkI=R{1Zt2J4bdkA^pM`@*z}f5%Ayc;M z=Wq5!2&}pH6Od#Tp$~o@TdxU&G7XH5k5jZmU4q6Ukr(x|@#La6pZH$*U0C3GkLG4y z1iT2^<#xY>J{*|#Pj2WH^T@!P4ogQ3D=G<iuQ5QpL~QNxqn|5(H8W4WUhNW$X^uvb zqSr?3wwPD;Kmwl4?iZV#-=Sd!kD#}DwG>y4kMv};z`mm^ERW2W7Z)>jKO;7_XN22P z?*B&eb6_3&f+dLkfnS-%$pIS>-+e|7Btv<2PCxE=f5N~}$?o@UdPH&;j#A)IKI!nJ zFY^3x)v*mtnJYf|&4LfIUHu(=`$1Af?%O~gQp{lG^)s(oHgc3eqKm{+hLKx0MgZ|X zi}K{@ok-5wCIi7~U85M2G}J3^{W5+RIGq+kA)!ef7Sl-!s>Vg`AFAVk3w$`_J({b! z<{n^Zz}Q-zu`4NUDp8v%KP4513AI9**gzwv8E=&rsbG?ScKcM$F%z|{8(3YEx~9kJ zlS)h?Y8X4XUE9hSOz9;=9^JROdf3ofp_MLuN9b}MtY`O&e<}}5D!Bbw+{u(!K$2sI zz|OxP;7{_C=;%{nU9)qAJ0nWLMgZEfy*ktZiCy^qN^6=VrrHW0Q3n9x2XW06lUx4O zV`_7C0IMvYUdGCqF@b~^mc2Go)BL@8mc1=%Kb^2$FIfpebmo7n{)dSGl0-*C18&Lk z?iP(lue2doTkx%K2_UQKNJjAOy>u0`Pj`Z%yGs5BEU+9ACYq~-#yqB_^4}I8_EP}} z-r=gM5ktdqdxs>P@#;_a&))Mq)0*I_F6yK|Q^ncMAPJG8qifn9SYC$Ml93bF%1TCR z4p<`KWPe7X4ns+ID5@l}<BAX>#|NF4jrltmpOnqL+I3FY-by28GWGl4C%}aHX9M;R zJC~TBIvrRkTlX@*s>fyCQiz@o)(`6G_AWT<{&<ckFa33^-aisNySqx;ExjDk;<39b z4&mBiSvSHyq%W|r0E~;Kk8pI}m3NVgf5mj;cEz|zTMgeQ_%00XnEVu6=*vo<q^3D} zd-49;k-0XK6dhh-Q|atEODha1$=)@{L#NIE`3dUCr<hh+oTrjEzP*L_O)<>>r(aj` z57-twIL}6|b&B&u1EupYDy+BJukKf)vDk?u^2Y0~FcTf-TKAG@$XF#68<Fln5zpVp zCd)vCeRgmS_$slfj$?qTTW?wrn``O{S(BNb9=SErP*;0!p2sY~*gN<kGe+GUBkkhW z8%F^8o_me?eG6<-W=wm0%P<&l2`Rx4Cq!gXkI!4wO%;`uEh@+5D-P8ebI(0lRadv* z|B$R|fZ9oEJzY(t#jP{1=V_X{YSxy0VBX>#_pm=5s}ohtc^mW|Oe}d6y?dABa5L$D z^)tP`HAa4_T;wOkX5ifUSv)R=f?-x-Ck}uKLn@bZLxjom*I9U`(kC*OuaCha;9DiW zo})QEZMUP8+k`)b8Ip~KC~j}C|3(F7)IvNqM)|S%#ZYimllzUMyzYWeWs39ypI<ht zozgmuSUupv<>t%40C;oSn%YoyoSJN5FQt}KJ+&$v3NIzkS|X0XeU~v`z9=z$A|wmJ zDC8*~Zm$uS+3A@8(Y(*jVY0IRl9I;#S3~tW3RWu4b>#A3&V)dSc%*t(5pZ91P`TPt zS4+q<zMz{)g#z%+6e$Ujx5&yxeThI0o~!+s*h6Vh!X(kjj=B)m7gBl?JMviy0jD>* zij>2RP+bnKCYx?a+R@hMZ%7~79TL*dMEtB~WmV1Cyr$Q*@W|pa8Z%QAINp%B)3Vl9 zLu~~;BbEBB&`?Y&b$wlVcbh47lQ)CEIo_1K!NB;svSaQ_+-Mo{ElIJSgKH|kiF=9~ zGdQZ$Zmm~n(C>SCOoow$uGWf*Bn<;w^g`^pk*NA4N4$37xxF8hY&kgARFhs^MQ_sY zN6uzZhroU(FOQ@!7P5F!aY^wYi>bO^NJ`98W=I%JIZMt2Yd{|TZ)&cS$tNG?77Fns zHLZ9GPSxoBH)2NW<qYvb`4~|&py?C13;*ATWBy;b4}cimm)C?m<s3(^^d&la_gSW_ zwA759kdt%xP8l|di;IheiCM%1kwf_ph?64VZmXdYZ=CAdsDF+m4gn>9$?&qIUe=V$ zp#Bpr7{afhrR6c6D;3LvBFBUYzgGwvNP&t>rX9Av7y!VA|MwjMO!sHZ<k7q9>r{8K zAY4QF-A6=3ghB<>Zh`8{si~=WKVey76Nv0De%GDTQS9?GFQFK?pzpGTi0`9&OdA^- z#;hs+fysNI_mW1!r+jQ=aVK`@(?f5s^pl=IhKTEqqJ@P8x`M<65(wD*^O4ff*lOE$ zX<S)Zc{LOApZ1h&Y$wOZ;2r+1mzS3Zg@y$`X=x4EQGL)r!8CRl0)UAOA}*53%26P` zz}-RB`wKB?5cHC=teFQOL`3{H6SUy8oj~+O{Dl}PeQ|k-2!Q%3UtiynLGky<P`fb^ z3(Yzk@57CO)G1zmjalk%g%@Z5Cg`_k+)h?v_rfweuRO1C%IK>_QSn0Ock6d_nDABk zJMqYUBG7Zr^4ga4eO=w|&9kip9evHm{y9YOGli9~q%_bR<lM!@l3qG0(b9t^(!zrM zr4PE0%vfl>6dnqj3>~bnMnhASgNVDmT~$v(J*wk1i-o#DDyo|JE}2z;ygMHC>(bYg z=H?1>hv^S3wcoxSwvf7O&QNQk^r_KnB!vR(sJd#SHkTMt7;X2ek_N-SXGW~s0niHy z-U}F07v&<4o}Gw(;TvClexBSgN5B>rmP}ZA^^tSzeL+)hE0}83Zk(q&1ZZP?kw2uL z`$oin{%9PKyIUAI^?P6#E4oQd$KY3oZ{ZcYWXa&(Bs=Om*^xI-<7{G~lsk>1$FK@< z<->J<IL4lBm&(x3t@6G{Jj-WXG8kavW_Hw1+pn}8=RBpAq^8Xhn`7G>3=T2eaLI8T zmw&lFkB8v7!WwmP3YyYI&?|}kvNsGKZ^GC(@Df^fyx0jbU8t{-n()K}^U596)i+m@ zy11v4wJg29iNTSoUIwi`N0b$pX9&9Di-MUg5^cx0$A(xJobRY1TWLu_Q(`MB4%SNZ zGv`4c4T13Tl2T+^rH#9%QTu}GB~d^y<?%0vm+9~IE{=n<oHTwwkJGp%q%F7j7QGc_ zBWp64m6@C-)lEAQ%sLU`vU)GPTIQI??<Z5}o8I~RKW6nkNaJuVZ$)nA(P4#T6NN3- zJ|xB2GAHgbd%Ao<j6&5#4<6ULMqyjpXk!@|)!F1>WO_^(GiC8F&~uX7(#^2XEfrEw zMn}h4yh@mr#Wj%o`So-xTj%4_;6ybigP!2iD>Tv<-Iiyco+5u%qXZVa;-4nj*xEll zeQng)tHk_<{JihU!`ZlDDSwrzo&#pWbq&inL|EiaZjUoHyoR;4V!LU7-p~w%?pxbr zU`5A$Y)17(9M*aYh$`+*7w)RN6ULiGMR!>psd^h5r`?dLn%!^T+NP@U;~9rZSaX_t zWXUThr+6~uD9#`x`nliJ1UDn;;SC)n_ieu?(<S#QwnA)(Fgy_0S?xLR?cEgyhFHPb zhw>(W3e<(jopNhPz(=yy3rcX<J;zIC+HxcHk9*AS6BX;-h&$cbH6I2hpN=CbITrD1 z(0<>VpBf891{}x{Pk+8-Aw&cK9QA4oR3aJ#$?QvFaWD@#U3Z29TK*q^W2BCwiYq3~ z%%RrvV8O)$4N3$eB3HS4t&1}SLMlb&-r7dm_q41&n=iE?(R@m>-^#uniXnvLU)ulX zT~0EA0D$=pfn8DQ<enS443@A;`0$8dc}{`g%ua~w&S5MyfZF6`zj}S;twThrEEzCD z^1OMUG)$_krTdO`6KW6jQ~VVC()ID$KM1EfZ*o5hv0K><|Aw`9gPTfDKzE^0>Xo^w zQK&cosOp|6OX;L6RE1DIF~GIYFYE1e_2HkTrUH~A0vkzraO<P<;2}!Um|L(Y$|iVm zBKk9S@RK1w7GTGFa`vG`TA^MvgNhf7+Sz0fy6tt->1pLa;IX<%_x$ME;@?<Zkz!|z zWV0jjVO{Z78hwh60<G=DBhUcRLw=6&c_kf9@E9KH@xNG!1KLF~zGuXs0~?-j0%M<O zof}BWl**SjIKfe|`Zp>q!@q}r4;K6gOb#yv!`_fEon%ZRDsF}PXEA`CtNvBGwWSC? zFd*MlxXKztzfe%tLe0br+b6^3hzGL;a;mKfImk2_0Mx{o!L5N_c)_?vBEF~q@xpMP zBc_rF+`oRw><rTBRZl|2#e_ZNOu&(3j(poQe6ZQb>gop=?}mQ%q^{7?jMvnR@A-ss ztltI!4h<}M*|-)_fa{Z`k9S)+8^QX@lKvB$4N8N{J<MYN>8(v9-_WalUYd1wz&X`N z^eB2aiqwt^oO=ok*a6LlA?iSH7N${C>z!g|-^TP!o&@=F^IhMLCe+@Lt`;eWs`sJ( zAx3J0JIIIk@P#T{?e-@8L?{``&)ZDSe<^x*{v=UoZy|=Zzb7qaVsR%mLH76`U*)ih zzX3OtT&|(%Ey1}H)=c-SQ3kkep>NZ~evx2vAOoihE)5YVcG`a8?o=S7wsBp4+lK}% zyCVJ<S?K;nKYa0D;l%&I<$#+LD+@>;lGd(Hl#AcfKXB(`fP4o8gp&)(Vmy9%&HA7m zzNpnxfNq~wW>NmvX@~@vwaXOUD72PWmM+&=TwSUyyp`q#thZb$)Bn0QrcKwX>EcEb zaj{&r-kTnGHS>zCAtE-K9{BHRWtz6HbEn@O%p$SkV;6n_4-9?g5%QJcZI@5zrT*H# z4i0+a!b(O+^FYv31Sn#*axxNx4t%UDrn!GSsXsx2CN8XN-d6Uk^1MS6;{Ic}ID5B* z-8cljKX~>Jc<khOTAavz026bkFnvdDnbg5;zZz?4KSf070Ej9vIFDE92q{ZG>YgyF zP;{SK70@vh(lM;Gk?s4^r%UHuz)n82Q3@~vz>22!Uq?Ndow3__d&L&)Y-=eF1xn0r zjq1IbH&Payk93W?pmaK_n+BbaCGUH5roP=7d~;r^ETV3`_t!yt)76xdxHB{1ScIJ0 zapM()uL$4oRc^n-&+}Iy7y+%||7O?xu=*Upyd|gBAD4ULanH!1N#3{8bXs4zCVgJb zrSh3UnqGUz@RSZX)UOZhvVo+(^xA<+9C;YyJ&{K=+J(O%L|nG(ibBwen(V*-j1c%U zlL`=02^YR;Ta{$XC}Flz`Ix%yOW$I!Xur*f3<3p!F$lm<3KM|F6gtGIU`D1>V}S#_ z(-&rFh>2`|A~v_I=+@9_*+Bs@(h^8&Y{s2#(K7bGdj+#az2>LX7!}@~`(w{Ghtgl0 zX4JQ2_h;9vX*Zb~lVdNTY2`valuR^u06pI@B;8tY{>lo-k;zQMrjTk?eZKJylTaU+ z?~x!mX@4WDYaE^J3j&#Ftz;a%e@%xDo{^UB_nTKq3x_pTO?#KI7n|M7w=nX!w)zPW z#lzFj&x8*JexS$V6C%daE96BInjJm%Kt0K>MaeQzfrk~iJ9pbH7rj*pCKV14q(ln5 zua`h%SZVgoXv5d+UgCL&hY1e=n{c5`3)GHuE8AKl8H54bifRGMG)a1fx}<o1XaMp4 zL4PB&yAlwNe!Z*mqBsFY_+3T%bonRi<$1A-ha7)1Er?>al92$$1I#aQl)e*kct+-z z7D&YvtY;|Dp^d%(fFJQ&Uk3;1##BuoGP-XCC2%vAcjMT~$Y4nKS)l3FBd^xhT{!p# zusiKF`SOO~Zk~LPW>_b2usCUq4@Q89fIVucYnK)kQN}cZTo1ShJ}nU6WYL~^iMd_y zCFKR(RAxL2t{ZBo1z@X7O}F>ErS^5ETqMT2&N^Ns#A$~|qBAlM;gZ7Be)9X$A=Tz@ zqOELYkv}jnkQzyPzjuxWh*|X?i4u5sjPg>S>T5~A5r-g4hrk-VNA-S2DO<UnwARTF z8G!q3VD83C2Q2r9=};icPE6iMuXg-q>ix-G(}IA;Z1CFJs!TcakXGZOs(~y;@GhuK z4<)uOe$B)HD|~Mtn<eehcaDxez{FH01E##ntHI!QB?d7T^zqvGx{HNXex<8+LxoCt zUl^S!G_w!m@PUYY*2!f@P4%9OwzaqY78#w_^j+kOV$efp@Gc|U^5L_jJHI~|*>fo+ zZrC%V-A9urRL^V7PRN{jwR|Uukw$*BQX-UhX93%E_+F4QPkkuq;H4%`BQCBesD!jA zUaUDwh^viP>v&8hOnRC?T4Z3qAAXo?si`>|Tca8(#9%({rpL#+aP9mIt67#cYxyV% zhZ&56IWv3PIY~#y!?W`wTw=E;>2iJ^?DR<wo1$rKJ{DYMUz4iR+Mg$PAlZju<kW*z zy@kq|)J!2d^H;aC;G(>zDX;n=xyt1E`NFxdwnzjE<yC~ort?A$Mu*Qr6IXhM&YKdA zq)9<%l19(XjpLp^B~n43E+JoHOICL<@{W%+IA7d5D6rU`G3(QbCX>lCIVr|Cy@xN} z+l#5sv)#A-1rr#mA`y2t@FznSw`)*RdS3D)_S(#3R`LLOR?86NgS|g5IlVTAv8hpC zGgW$J#5^(c7iSlJJPbEsT4u1ViZ80b070pohTI*O%Sk~rHt?bCxq-&oqWs8tpA6*P z4JOR9gG?;kHRWvfnp269GaOAU1?)CnW8k)kjj0<$YP-JjO0jWX)L<wKme{VC@2VO^ zao=^%h0`nivHgKeWF1K|VU!uwrz4E<PjArozjvkoXbu9OQ6v(3Ax)l$h5+~@C#C$Z JLc%!se*r@-Z!rJ> diff --git a/Outils/figures/hello_make_universal.dot b/Outils/figures/hello_make_universal.dot deleted file mode 100644 index 43f21b9..0000000 --- a/Outils/figures/hello_make_universal.dot +++ /dev/null @@ -1,19 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "c1f21"; - "pid" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="pid"]; - "pid" -> "c1f21"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "e0c31"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "universal"; - "e0c31" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="e0c31\nMake it universal"]; - "e0c31" -> "c1f21"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_make_universal.png b/Outils/figures/hello_make_universal.png deleted file mode 100644 index 8e38f915584686defc73efb6fda3bcb63aa60156..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33221 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 diff --git a/Outils/figures/hello_makefile.dot b/Outils/figures/hello_makefile.dot deleted file mode 100644 index 53b772c..0000000 --- a/Outils/figures/hello_makefile.dot +++ /dev/null @@ -1,21 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "c35a8"; - "pid" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="pid"]; - "pid" -> "c1f21"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "e0c31"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "c35a8" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c35a8\nAdd Makefile"]; - "c35a8" -> "c1f21"; - "e0c31" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="e0c31\nMake it universal"]; - "e0c31" -> "c1f21"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_makefile.png b/Outils/figures/hello_makefile.png deleted file mode 100644 index 1216fc32a4334a393c717e6356b4a0f69437c13d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35866 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 XsqB>axg|ar@JC8q4pJ)m>FfUkH|KIY diff --git a/Outils/figures/hello_merge_universal.dot b/Outils/figures/hello_merge_universal.dot deleted file mode 100644 index 1572c29..0000000 --- a/Outils/figures/hello_merge_universal.dot +++ /dev/null @@ -1,29 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "0dd6c"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "6fd2e"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "0dd6c" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="0dd6c\nMerge branch 'universal'"]; - "0dd6c" -> "eda36"; - "0dd6c" -> "6fd2e"; - "6fd2e" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="6fd2e\nFix SIGSEV without args"]; - "6fd2e" -> "88d2c"; - "eda36" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="eda36\nAdd pid/ppid info"]; - "eda36" -> "c35a8"; - "88d2c" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="88d2c\nMerge branch 'master' into universal"]; - "88d2c" -> "e0c31"; - "88d2c" -> "c35a8"; - "c35a8" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c35a8\nAdd Makefile"]; - "c35a8" -> "c1f21"; - "e0c31" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="e0c31\nMake it universal"]; - "e0c31" -> "c1f21"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_merge_universal.png b/Outils/figures/hello_merge_universal.png deleted file mode 100644 index 9b952cda0dfbfb69c75f56f57f8a1e1b40c17320..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62349 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 Rv_N}+NQ*1L5U*Yb{0k`r;)ehL diff --git a/Outils/figures/hello_pid_makefile.dot b/Outils/figures/hello_pid_makefile.dot deleted file mode 100644 index 68e7f20..0000000 --- a/Outils/figures/hello_pid_makefile.dot +++ /dev/null @@ -1,24 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "c35a8"; - "pid" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="pid"]; - "pid" -> "c35a8"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "88d2c"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "pid"; - "88d2c" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="88d2c\nMerge branch 'master' into universal"]; - "88d2c" -> "e0c31"; - "88d2c" -> "c35a8"; - "c35a8" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c35a8\nAdd Makefile"]; - "c35a8" -> "c1f21"; - "e0c31" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="e0c31\nMake it universal"]; - "e0c31" -> "c1f21"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_pid_makefile.png b/Outils/figures/hello_pid_makefile.png deleted file mode 100644 index bde2bc1b3ac2bbff0ac939dd68a8ef1f57e88d12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45865 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�%m?v_2|)H9}_z6RmkHN%HH$fBaixjQ<QKE?0!M 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 diff --git a/Outils/figures/hello_ppid.dot b/Outils/figures/hello_ppid.dot deleted file mode 100644 index 2d6e0eb..0000000 --- a/Outils/figures/hello_ppid.dot +++ /dev/null @@ -1,26 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "c35a8"; - "pid" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="pid"]; - "pid" -> "eda36"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "88d2c"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "pid"; - "eda36" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="eda36\nAdd pid/ppid info"]; - "eda36" -> "c35a8"; - "88d2c" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="88d2c\nMerge branch 'master' into universal"]; - "88d2c" -> "e0c31"; - "88d2c" -> "c35a8"; - "c35a8" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c35a8\nAdd Makefile"]; - "c35a8" -> "c1f21"; - "e0c31" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="e0c31\nMake it universal"]; - "e0c31" -> "c1f21"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_ppid.png b/Outils/figures/hello_ppid.png deleted file mode 100644 index 372c2b31bfce3f9d325a38288cce3116b8ac4e04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49504 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 diff --git a/Outils/figures/hello_universal_makefile.dot b/Outils/figures/hello_universal_makefile.dot deleted file mode 100644 index 49380a3..0000000 --- a/Outils/figures/hello_universal_makefile.dot +++ /dev/null @@ -1,24 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "c35a8"; - "pid" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="pid"]; - "pid" -> "c1f21"; - "universal" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="universal"]; - "universal" -> "88d2c"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "universal"; - "88d2c" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="88d2c\nMerge branch 'master' into universal"]; - "88d2c" -> "e0c31"; - "88d2c" -> "c35a8"; - "c35a8" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c35a8\nAdd Makefile"]; - "c35a8" -> "c1f21"; - "e0c31" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="e0c31\nMake it universal"]; - "e0c31" -> "c1f21"; - "c1f21" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="c1f21\nAdd intro"]; - "c1f21" -> "b1485"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_universal_makefile.png b/Outils/figures/hello_universal_makefile.png deleted file mode 100644 index 96568a7b841cc59e29c4ca7b0f7ecd6155b597d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46353 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 NIVmMrsf6LD{{g>D%clSU diff --git a/Outils/figures/hello_with_gitignore.dot b/Outils/figures/hello_with_gitignore.dot deleted file mode 100644 index 7be88ca..0000000 --- a/Outils/figures/hello_with_gitignore.dot +++ /dev/null @@ -1,13 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "b1485"; - "hello" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="hello"]; - "hello" -> "76c16"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "b1485" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="b1485\nAdd .gitignore"]; - "b1485" -> "bc620"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_with_gitignore.png b/Outils/figures/hello_with_gitignore.png deleted file mode 100644 index 43310c1db61a4c80c124f02da0c5ac12112bc335..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21564 zcmd43bx>SE+b4Q(f&`KP!QFxfcMonsgA9=1?yd<A!Ge2mcONvkyK8WF_dR*{+wa!a zt-b&5ExMQk)u*TB^wZBzW<rz{B+*guQ2+oymzEM&24Bwr0A>*x7QBkvJAi^Oh~H!- z#etW9Kfhb@V*r2@kQNtFbxl1?bJ0=JAn47Yr2HD#5`^{%Z@ud~`QI+aV=JQC=>^_} zqEatyjfA=pUh`$`&+RZMuLDs+fB!%UK5QWyI(&G3^Yg2u)G>O(#nY+eapO+<h3xr8 zzr(1&jSfoSS6|^MWV&%!Ok^HE{%}%)zDeY&Owk%ZJPg^@C^Z=ihN}%)l_-pdmPe<u zoH)Y%d9o&7DG8n~`V9)Nq$(%(^oh*Hu|}-19S?t2EdUf)u$mXU0m7L|>@_ux=tP%t zz2m!3@dNWWn`Tr$v{Rxlo?)9x{Qu+}>=v3=s!mTOv16m;$1DD(!;h2D$USTLv4C%F zgb)Pzj0E)HMD)yD6smH-2Gqiz*C_jjG$8DmpgO!wGIw;KC&H0Mrv-%HoKUJSB6a2K zl4oMlGZqbu8cmwg#S8S95kyda(Rde?9}+amDC6^_2!Vtr1=M~27)I_~Wsj$YhE0pB zj|-gMbu^cRPORg<8`L#+ruWSf_e1ZSgjdnH<GdQiLqVuMFv}^Dcu^|x55!R+DeWf6 z{WPt)XS4vlpBXtQU`K~FlJ?`5r)-8Ex>O?J$|XY-DX^iGQy)q*yFGu-07~84IW5dH z-}V-vmg>JuOR>nI)S}*>WR}RV5o??L>~=n~1HnMHRBCo^srl?=6y)=-i)ZA@DoRqt zcM>yAJ_w$zRv2*j;pdrhcj$}~@W3hA+3b{ZZOshhfP5h>8kzDG5;(-nB8IBwhTkb^ zFe++y4!g!?n5F1HYcA2)9h6VP{A;@gU^mS~+gZGw&l#;C99EG2Tk9Rx8r-v_Z!G}~ z&^?rZjvto}@F;J=p#WQVB08^omt^cel(FG!4fRrr2PklG8ewlyp}KB$nTw`V`>r?R zT0yQbC|uHJ$G(aCe(tK{WS@cct$O6^LJ>{xArP$pomV8Ws`L)vZOiPQ+L>X;E{Z5~ z|J2X-ZJJbZL*7Y~Aplm3fm#!dF;DQ-*S&%nRkg3=Oy8BG^3U?hs3q0H6>`S`Uxq*& z3fP}nW&K?&KULC1f4^q;!MC|hMd8i15>uI)g#*-^>WA&^q^sElmWC~SrmBC6z?G(d zVt0sjRFTU=k(HgEkyv%|oqptb3VK~<{pkov91V&BoHinu|D_c33h-TLUqSu^OBW|2 z<*y(|_tQNd1{nXSY4Z+Mt9)n+B~-R3LtylAXP1Jj{7KM3LA~N&;qb@khDBB4(t>g$ zvNZ{<!iK!O8n&<S@h~TPzdVoK_6L9^iB6~NZ`WSF$8+k8jEZPxFr;5vj_$Gz&u4eF z7p7jfdS^xeSxY`sDOo_~r!Z+z*=A9-`N9?TCS2$w1VK>G_4peaaJYB`2kbEQoVs?X z?@yYl3P7&DidjA1dzq`w@#4sGu=8)Z3-c@3^8x3M8f)rfi&^XYf-S?XI&0hOmg>q{ z4s564KYOp8KCae$#R7Do_oC7GTX6sCf;|H&9;?az{rdCkE#6tu1ObrVYy3eXjbG%h zMtO1|F_3|SO4`|)nD6$Pk6Oj(&k_t!VY|{Eu5BH_@0yUN^3^PpLiT}k<{nT|mNCp? zprBQ7d8Lr%MU55enRhuesfGlA{WXj62os;%a~Nl>BYhi!^+759H+Sh&4Z9$t>~Lfg z%i&a`De$GvwIav%?$;lUvKD?X!TbDS11*vP%$R6RL?93`xvGyEXVdKb9e(<+cwH30 zfQH1XhMuv7ot@t($0U-I;8nvFBA|ox<%4LZr${5x-5U(qdYkgZhFLeCV>bY}FusXN zVF>uX&fZ_BKYO<voUcS{_DV?8Win<Z4jjg^Mbm2dEsAqmg!9I<iNEM)BWxP7N|wJf z2R;#k>$dQ^#LM}LPJcdo@QI{TzhVsc&}kqXTtk+Ktg$gP1uAOB@V1P6PX08ZCK$Bc ze{(&MmrvXDyl=a!GF<WZv&Z;FLF^wd$QNt8mnAaRA<W??!ZtQ*OQe4_{k}7U|B?Fd z{&`-d4v)xz$KT-tniLrLmIrN2Mscz!RlC&|MwTku%H7IXT69_kiax}1_8*qN9mJc* zCuU$vjzap<umb5IYH4M8WuJZ{V&$I&%BbvId?K-ypd`RT=_%Y|n;Jr%^5qZblH>4F zNOKK$e7lgW-HQa|B~yLJ2X~o-{9xedyHmH#8Yg*<42kTIQ^ADOBH-4QU;eI&Uz^o@ z+{qY{Q^nDg6`yM%e3<fYSJSD<OO7_wRNw<r#uf@hZK1={Y{XI}Xq#rREH$_)+Joh^ z@0ej^h_!ciDw2vE<1^n^vPR{<5*EwPXpPo%mPnGK<z&aRg!GruGnZEG9?NHr1*`qw zmq#;pz6cO4AuV4Q6WOV&m7*OOF45oHHGM~v1LKxVyIW+u&FP0~Upyd76&B^9rEL%u zt<|%E!sx+7u7v`evwz3c8sTI=iciu~R-w}TSgEqW%bfoMqHD0h9#?2BTZ02^ntiL> zy^Euk-SJX>)0CwmVS(0J#WsLyKab-qrg?uXK3Iq}%t3`49UK$qTG7nC+MH4r9kPwY z<?_SGGXVCpgt-}Z)5ySz%BUmCxV_*H{!%O~<J93n*WAqRnwl9k6%)YMei5IZzHE4y z4hf}u#w<Nh!6)mA9dOgqEGYJjN%O4DgUXC54Yo_Eh{a_3*WrZtLUgrNl{B@7Iaq2r zsv+XpgEgDz>7<JE*k3fCOMjHmDli6(D2;zBEGnEdqnpBTNDuz5kUy?kz@J`GmaMJT z{YSigVw$V^?6U#S+kztOsQkF-<k0trzjip{?ot=<zYC8=m(x-dGaO1Um|QIQv}i$M z{uFLa;yH4lTQNfTh{Rl=bkQo(i|}sHcS@ZjrZ<(|&)>rm$_mS*Y+O+39MSWjUz;#` zNgOj|X@tcVq07CYM|06QyhNs+_#&K9`ELy2-2Sg#lupZX($Ud<`}U18rChHK(f8rz zL{=tIF0ZMnil0LE&2NtBehD?TxajCNL7irW9hZBPV6}*R%2Y5`%#Te>B(t0S3YEEN zYsW${T4{FUmhHgXG<#d+diE_-Y3`5-9X-51hGwG#$s{UYI=H^RK0aQ3(jL+8qs0sZ zbxcSbB|jJz$Q*gSMpAju5VJq?ME0f#`3REzI)zW8_!U!8!NSa3E)ftI7>Iy?pi0*d zhu6QVn_$!x{6<1TVuA_{(ct;<E{BVqR51pdE)HtDCc1a&*Sitz-6e)LARr|xC-<|s zxY)2-yWScP53j5L4+d7g^kDmUI4eubuJS#{`>ao4!P9<V#%5@Iw%+Z?O9b3{KL0>K z4UYGFM|(rc_UhFu1qB6QtXQMGt4lm<>o0uhq+!qa_;`0W0uavxk*UFX6uvl*MMN{m zH&V?pncCdKHa6)mo+isPF5lQ-43!b}d4lL#Y0cfJa<NSx%!>`T3+q}9yovR|M5D&a zLs*q<CP;neOdnhWe3JsybR(AdA^jT=DFxlFLxyt1-0^X)-8J4hw;o5YUfodBHZL%% zkv1P&9?O=b8<1gSXqvyaWnrtIVq<xWa;p{>XMae=#MYw7MZm*ZV4~l(VHb*eUd=kG zywYN%5xdB9gV%WGVa4ZmJz)*zJm1sO&;Hg6O}t&@=Dl$u_^2hR5o!7<0|fy9SkT@X z<>ZR<H*4!^9rD_pN7b&5C5G=L{Vhdv!}qBY?X-D@s)XeVEO>-A=5mbNFQ6lU$shob zNAIc~PSUL1pvevAAK%HgtQomA8<8n)3>9zW6Q}dcXD3YFeyCPe-4!3)BfT2eYW}RH zyy<esj`;Ut@g&g8{axNGH+;pnOpsUiJMH>hiZ11q!kL(il1%@}1+`U<e69#nAg!l! zJ|))iUC3Zm4KEoxwP<^^Y5)C|IJ@Uv>8Doq;2D16n~5Z!0P^u4Dl|z@-rHi4SsmM~ zvYgFpk~Wv>W5I7ZT;p1suMtoG%mHYK4*Ne5oTk-o>a1zR(a+fx_~$(UAcftFDS+~W zBn3-5?OVNr-8~P*^dzhc26_fqpAUVLu2CdJ@7@#d^O(cN6oSt|H`$25zLk~9iN49n zss4-Ln~ccn*PCYiuI`Wi(IJI?4kTFtw8@Cl!M%NFTU6cBvyZko-}y^z>Da0#->#t9 zU;I{rcI1b{NW59p8f~xeQ0&#Hx7jH9P477XAM=(_)Px1P$cM=Y&n37$qtNoOW0W_$ z`Tp;`z<EtazxUO^z(TylfwBteK@29n1s`2pG7(;Y$!gyuN<KHu;9OU#DfX=&j6^0I zp8I_u)rrdKA+DR&+LUTl?Ux1dVp4cCmeBZkXL-Ai=`G}n^zrA1mIf-Q#F4T!Q9Vl3 zu3({UCHXm`f2yTxsP@LOkTMe3pF2z~aWt4@O7xhDNr-vHj-M`&#SOwAS_OL4b-CaB z_sivx$2T5tGe-=q(_8e9rjm@*;#LU-FmZ`KWq)qN6*Agc$Np7(5V_j=d^0jU*6=<6 zdyBy-9A^2bE#;$&<;%U3IlSmvC13rB0Gh(^XmLRyr@mPe54R7`*Zo~@I7-bR$NTRH z0bzQnKDhS$+^1>_54=pH6JxgbERl>3IA#{6QY6X*m{n(8<HeDpvh?#m7Bd?>MXSKW zM~C70LF1)Q5&(~n>f=>E&YrwBU7q((W!`vxt7WMtM)OwVeU<C-Hz%`FuNjJqnr~RQ zpNqe|yd0(S8gc`kcBkbrWFo&%?u>G0GyL^@-ZGt8tFWMHH+bxHS43hANDYrJdL1c` zUF1jmkbEn&kQ#V@^n7(6gR@A66YD|yeh=Z!E=ZxO9HBIw9UZ`Vd7_UTO<=m?+Re*3 zzy0oaaySQBBj{?nBi&iLYN4Oi$Gtw-a#(Lk=p=z{pFxmy7=i38dn&na&6Jk5g=IH% z&3sX6*u(%7{NZ)cnrzB!Y_Ec>x)W?>5dFoUz2>G{XBUSq!Eq(b+_CRj{jC!!E?c$Q z67r`7kGwDni&m$~N`pd+M|PKwK!t@leq8hDV6^J9^L=V({gX$jPQfwT%(wBMSG~_L zzO#5{>n-XM5&&k>?RNP=!l)oJQ*lu;dmp3gj$Y}d_oFo_ptEo}$l#&~7hi|($20Y3 z?|fSiXg`tm!*fQ`C{6jxE3P6h-)f`B^m|FHao1#4?6G6B6H*^86FQH*K1}}xW9O-{ zWsi}FkXZ3?y$dRj>U@OkcE-Qi?O+#j<11p)`ZO*jS)aSo{eq#JG7Ib5@D+{4?mgZo z^fDU{=%v*TpDKUf<N!j9u1`?brg+8Ykgl#p=JY=-hl8(FW*>&CSlQK$Sj@Qzhxaxp z<r{gp+l0J7^75SZFV2qlOS>3kEQg2dKAilKP4Tuabg|nIjV{<@Y857JDJ-5Js^*A= z-`pFKG52Ny9xE?V`-8juG%CaQ3&u>XUypzVh*FO-skcn0G*+R-LhFPV%?zFTTdBfz zka%;Fb@Oy!UM_Ai=1E7Jaa{5RA0MW@%;NoE5gomGkrzooDSw4Fv?DlNFT)4-mx?k2 zCQ8^m_AGIbpQ`b<f>Jo3HL`<}3aD`Zg#pOTUw5AUUBnAOaN=i57*!k@em*(2s<+YD zxSruf4xLPki(84|O6R{{jJx>tCZs#NC(R3!q40E9{xO^DEIdMs+y3WmH~cJF{>gGu z+rb8--xsCZiH{q4dDJA$dpCE_%VTCD>Bl9OiGo3*nS@Oa^u-NhI;*z*rY9sj46)aa zQ|T1Fel|isJ)%{VOG?YW+E_Ol*4&)iz3cY4DSgxm|AXxQ%wAri%BvxGy0uU!7D$2) z#f!Vm3x;Hh=FTT4haa3kU8fp)P-3xbaDII2_qf<zf3Jsz%fDnXB%W1^**X5y1{Z#9 zMC$F*^!vZlrLD=(Poo0^eO+>^QGFcXxH<*`15dUju=26P=)%<c%i6`sfB&*COs@N_ zWNuNkhrjQ79RdbfM>MoS8Ck%O$;1LY-3DZ2YleqT4{^W{i0gb1pOJu$i-<cDU@4yo z2xB*8K|`&kP-lyOfzh+qxNqz+wPYdLy#06aoEE<(LZ@=fyFJIiyVFcp=LoQA%buTx zEJ<hO-@rqY)aR{e=G4m#Y*)+A<8d3`P`a{Wcrcz4Li6&%cKYT_BDtMv0pW8>|8qOW zeV13|VPPou!zp3a@Zdp#3%w@5m!~3U&+$$v8P}o{y>M$D^Y}g@wj_sy-ld6f&Q8qo zMXPh0(e+~A?fWJZ_W37^LS%G6F~i@!(W!H`v|A4uJiEA=Q*FkV1>0|Q)To+TgXR9U z1SdR^(qIz3MvR(Zs)bom@d~V`WIFZ1=O~XY=~-jcTPOZiXP>@BWu}n$Zgc8TQ+@f> z74E#tok>@p$i?|-&LQNyyS(+A*@0X}wYW-{nw|{IZzbU=p0;3&PUrQ~sT=9~C*~y0 z#o^l%TD5@0r1#+YsFMD;^70VQ&opZ?k`;N7rc5jReZ<6K4>|lRbGl^U3aTUFA?Nn& z5qIP&2W9|&xX{vh=;Er)kY~c&==AWg7naK7l?&9A5j!&s^@0R`bzpb|_oK`AgJd=M z1CT;NMDy_2Grvtz0a$FuSZETS@sqXE`e#Vc(lSzrURdwtbxM+Ij|xs&Ire2A*(|_x z$6x#N*<l97Stdq<PFZD0Qek6mYv!9c8AirGPJgx);U~FR*6ka+1McRN%+%s6;V5E6 z9JYB!k_ssmw?Cy*6N^|u?pq$r6w|Sc3{_)s4hV3!wha4=&xVSMf}5K^33v<?ivYis z3(fcO@AHiFuCJFRBYR$oWDY<`LX<i%P{q*bcCT)Gny~7X@Ni$-j1Ld6nV9g@QM-(J zG06ncg;7aP?ow0wPBbaC{<dI3uKNDJ*u?+K7c;6f1oQLrGcz;f(FM6E*4EaF>HL3G z-j4j{mgi((WDG*X6E#~Kr~BVP!1=sM#^=IepK4V)r{kqY?t?%7paHAH_K>lFeD=6R zB(asgzVClQ04Nk{&>Nv<c5Z5j)``QUBNhA~Xh4Jdp2^ZZxlf<P)6)}q+>fSja?@}i z_5&KC7}Q@OAMAyun3x}}bi;Rkd4;LzX)jODT}Nn+I4LH>mkM9u|NLJIhv5q;CNgD; zmX_8=ZzPQphBXKm;wue$tG+OtS^Ni#lt|1YYl2XO@qa>*ZzLD4&36|&?@Ezr#%k?Y z-w_iZ@9n(;{wEG$ganh}LDuD+HJ6r`(b3Ui^g-kU=^6vZT)z;Hzr{t=>^?l~2<-?> zKKvn?wbd88K^l45ZlP-M;MJNbZV`>`VSy?Z@9x4T0AZ|kCXC=;MihO6gOh-RACs7v zJhEmF)4nvsz{MPC3aKI=s~a2RkYg&7Ws0EE3M*L(D@iCS&z>Bu?Cr`NxyHG#B8fQP zn{hp5y&4)GV|5P5P5R`bt&OU}1}7l!UFwUP=BJt(Mbh(U`TB8{VD+<Cy9Wn$Zp|H8 z>qCbnE`=YkE$gydmXq-)n()j9?YYk#FAU#T-aH6O$;dl6+Y)~4lGl(7GW`TWJ5$v} zV?mQ09CE#-&8jK!T(X@Vr9sau9$VnXa)W+|wyC~OZR?+yI49;<m>5bm<$++Mv?JMs zif7F=XsjuwC*l%VLIkIkv|DO7qVfss_STBSzGHYeoqX)}@SH5PLe{y%EbWesjnlop zfkS&RYmD@Z`x=HsrYP&MA>C1FA<~J6eoeT&(ve1v>=_*j(!wg*2Ogbm&A(b)mPH-l z)T<>O<37r2279JBb(|bWeJ|7PjLwWhMDsl-(}y!HC?3uDD60b5=%tvQ<5)6|6izS8 zZ!WT4&0XYNhKAz{{xD?>4rCvq#6|1**{@=8u>TBoET7+})hpRqO;H5kGG4{ds*;P< zq+lZe<kebo$ZRSx<UioR@>chg0q%^9{Kv%^Cba9ev6|uaA4`KTM{duz-XaRr34<S5 zYjL?Pr?RF~hDt06Ld?Wd1nA&PM665mv)Rl_Zl(#IKZh`h5tZOie@aILf@Oz&2no2l zJ@{k#DYaw?hA!-*TI`2nkjP-(r^L5;-5sXfWgnOqQBgI50W7JIjEjl5`Lez8gp>z4 zj_(&GJRDF_Uw!b^<mTiG366_7vzT3qOX(N}uob*542h0*C|9gN{XBPRtJC_NfO@l9 zqZu>0ar|sI&7EOvExc531%b%ds<izH^6EUHQC*SMCxPP63>xV}<gZ$-4)E0?hB|Uy zHZM3ABs)hWBTs1=nK9hsrwVY+**D`=sq=EsortC;l5u6a1CVSI%2&+|PNs~9*<K#i z)pc&C<00}cRBdjrfJF?*F`uhHG%r4ox_A{cQZMpe#`y#DT<^svFGx%Jaubq}*K`5O zIlF(0%-69!fhHFktv*Tc@bs~M{^m*I_xZI}iqK8}X#edLPL=X%8sBAas7?JIK{ETY zh3Uk4040S=nBoztO^$@9J0G{v);6}<l+=l2df@Db`I&fic5?y^oioD+=qGUY3=$G% zrd1{3kxG)+bTvO;OEVrWR1HkbcyIsW7(RwHm{S0ckJC#HyOOojYG5f(|MXa6&IvH+ z)E0i;>R#~@I80PQ(tNCRGcx<^-Lw+bd>7^aMO*Xphp8Ru`3b)0e6sS2xvsuMQ*3mp z&`1GCjzf`e(?S}e;lrh&=MEzzcPiJNCptn8<gAyAL@#4n4X=5v{=C=5&?zV`)#PyK zGL@VG%f2SDj>7V_SVI1g_IQE4j3{BoC_PhOi`!Y7QH+i(N}PcLIifHOVp>^#enPq) zc?*&oev!HP7Y4>GHFo{Z2*0O5*8(%sYm)s&?*nhZ)$=6&XRo??EYZ^4@|@Yl1Nxb1 zVT2Uzkeoc-z-TlR!@#Jt$Bl%$8s^PMl?a_MWDh-;hfjY-A4c}~39#R960cs!Hm$_K zwga^76H{~sTzvx2`!BlIc8wvGA0tO8w4~tfU)v`%<7l%n^FewHUhb|uh!ZZZ6n$!y zcWzfo^Dzz`cQ>HMgVr89-aypj_ST=Y)ilA17?6m5K619J6;fQnY#TEua#z&LDYmKc zj&|AX{O#OK@##B^pTf>5zNZ&tc~XtTNt1_XAl}2#zr8r01ucbttmJd!<#g(zh5~H+ z2!)0`V@bD1_XaWBlBG37knGHnA{7Y@!8df`TY#Aj2G5;ac-gPaB{4iV>?f)7`>jb^ zfTg-7`s|A)buNcTPe_P3s6R2;>=l5k5B#>78WIjw20{DJ!@Jd4=8VAEY1Ou1l*J|| zMgWb3O|!><074$ELly0PG}em^cx!PyOjjeHHS`YVudUlf>N3G~JGG|s(XsDpnc008 zZf71CebsP!a_tlbqu<4Cq-R%NyhA)7J-YJLmVESKo}INe3ayeO*^g}gF^AsM!h7lJ zs`+z>-KfT>xh-*FQC=%JduIo8eL<Dc7z9M7v&A=|=-Ngn!I(;^>Jr{7F4pHuTUrZH zFdsQK$R}>a`7<#dWALEx6qNef{iE3kE1N6<Z<<Ix+Yo~l^(e&qend9k+ppW{`O1gY zZpMUqd)btZ&Ky6vMF+8L;ql=tWwfToX{$i|jpLOE>@U{y)@2_%r56|jftKKzAEp=& zkwm%5f7h>>si^*&a3@v#FXsLKba6>jJ<&Tn99s2lKwp!tN%M0ugi7oh<w&@P6MMXt z)tCRt%rJ+tH6$F?*I#3Nuiqvlp5mS1m9;FXq7QyOQw9L=`h9RK_3vxIL^?ZgqD9=? zQxqosyV~OY8kn(KMgm-(M$Y06^O)hm8{S5qEYmSF?jO(fnye)(6X}2y8u4n=2M8H6 zpVwrlS+=`b#EC)0L$6vYbU}i#MpFdGo=t^|DTUnHa27+)e&3wH=>0^>1T&?Nd~yFu zi4-lrm;TOW<_xj(kelx7?;48I78@6CJCTo#b4}$5EzpFP`)?<$?<0<JkZ;5B*X;MN zA0Mx}yn8yW1V{d2T=Tt5TaH#L@PfB%9xr1&)m1`6mm@}zmfxMeT7ufc0@S0LuYs5y zrqzeR1?>bySNX&bD}zkT5CI4OTjN9M0{+W|<e+R=4u(zj4+hoPI8UBVNb`sU#7e$B zz=wWd)7J0z;qY^%Tkfs11kfiZe}C0v1TH8A%?K<Y7}@0fXHH|3oH9=3?Yi>Y^{kHL zLq3v{tn;(Aoy8eO6jUhFd>4!5;zGcL?8BCEo-Q|(@BHgnrLPqF@b+wy^((A=qud74 z8%<Z1v_FJ9)d0|Q$B@I8IR1t#!0ie(Plp>?Oe@se)tq8z7SVN!yN9z-LW&Abj;2<u zjrmtb>&>z0ik#aS;)3bjmC|^7)A<yy=iQZKmHK0<il+?Y#>gaCpp^zA*agB<c>-=E z`S_9eHU-2M1{8PA%Z=lA_{k;jqcb%kPGYP#kHYeOGG2Q|eWAi}I5-c9@(l~5-sX$c zL3dXpOxD@1Yqa}cUI33Fp^3~$3-|LyHYA^isYqluEp^!P^tZ19h*t#HwH3bbx)X2Y zg@|X7u1>C_M2cFAI><UmnSv9{-|8a^jrJDf=RD+|TjRQUHT+!h&{gp{hMirr$2i`i z{us{pCd6(XvM$_oozU{mgn4?LYigV;mEB~XOXvi~H;Mo~USql9>F-$dyD4_|?v#2a z5+vWF7ae>ayZDH7P<bA9Yab&DVuBOCg|sPpG51Zfe*ZdmRGbg!Pox_C>X3FwfD`_G zVs_Rdx=zKN%rs1vIgC;jm5~Mmc<BVm%H-(P6U?W?%`ofAWY$5S``tCo`T-WpDayV3 z^)Kmh_X^O87bV5L;i;Ti;B=a>e2tT?v()Tgfqpi5T_1z|K&d3i_>MVC^rC74&|m&h z8ScDgl-m-FLiCsO7cvCCUB5_1x88$lPJ)Xg)bEEBt)-UA{iCvkQfhq2Oi&gWYGrNN zA<1H*DcFX8rY7)#^>m^5*sflFvnR~T3xC+}o+(zLais!)cmU^@g1vsfML^$ZwmJ^3 zTNWdu0ejhzEXeuiZx<)Un<~!ianrn>($Y><h~^vT-bm3*ok%&GOS=c5;Vk9CuP%>8 z^z=);3g5Tmx1+|45i~Jhs!pEnQoum%RLfyE9(n!zD1Q*NyNd_g-YKj{oIufQoWkn7 z;0estJ1wUjn9vW%fZHF|OYvm26$a>0NLwBF&W2Nt=o>zmx76&&FGS-vSh#V~08Swn z^K<<~Z|RkSeE82JD2MAK!hnD<M834FtSk=Y&+~g%orr_e@n3Nbl(;FHuL(Kn?#Em7 zUr<q7mvG<OR+4h5RIvx`-0lT5YW^CqQa6p4P;}L7FgFN(31~jNRAW2H$lVllHrI7_ zmz7O~^<C_H^}RLU=k7kcI2p0cnSC*qXK+@)4HNhMlWFfg)x_3Qko$=4%7V{H*Su`Z zYU`zd(`lr9#^6d?;sR95AsbN<?|9!1ACN=443&}5>PPD?47i-nWCx!|?Ah^|X(3O> z4zD3B4kz^Zh?Us8jF;w<RL5aX`o14!t>bGJZ>%Y3ii!%W9WV1n^cu}CPR1z3;*5`G zye8k5vVJ_F77$%JGfn~NXbhd^`uiXuC|?6hVv(F$?eS}-VxL=wlRJIhwDJ4OgL)!v z+r8FV|0HlH($P8Q6(xtaOg4{lrM4{Iegr1;an*IS%+03s&tl42TakdrjT>4zL9^j= z#RyE9j@rqW!@IkKXEA}7#<xX}!vhJ;KYql#A3f1+>-xN3Sx2kjr)|@O!pYZGfeG+- zzJut4@f%!q^CEiLuyY&T$CFivHqh?yh_+>^o=MrFI5RV0UtxKgYK)Z+)2Y8#o-Y?J zpXVBh1fU?qK2n(R+SO>Bz`P)e*WEoRNL7b|D$<L?`dr_iCv|x%TVm-&s1v=&uUG^W z1X}j(wBQ2bI%loqWbr{Wf?h$txvkt(s1{75iMg48(Ml-E3vXsoURmleT|{s}-_nm} zc~lzH0#0s4VLNDg`HgPj#(Dg(-rR?D+8|m+dOqjtAxoRc0E2t3g@E%tcXhcdT3R~y z>-CK;qD`yZPqc3lS5U{N$I~~a>-Tgw_uTL2l7|R)&Pd4_)*w#~pT{v0?SFj5w52I1 z$hploQXvqC(?mPJl#KsL#N9rBcHQzfm4C}s2S1CaBb%6pipGb>!V|;c$(SBI5dB5J zli-9O8CyHA+?b1=^X=LDvyx)HvO!w)IzOCWI@2{kthrtK>KHMH`(3JLN5-`4BB2uz z15eO37zJIPL<xnCZodA<$@Y7kvLrS;Ri7qxb8<zl(c075_b2{E#f6b)r&aaUej_Z_ z^6K!gBAXYxeLLg#P~H?A`F%69F?X-cJ)93k1w4oEi7%-CboI@3j~51&rj<o--q+Z| zz5D8ha2N97M31H!8^wQ80waa1s2rvC$P&*DimscB1MlA!EbBhHaltV)jedEhsilRd zX(g8@<_Hfb;KdZFp`+EYbK&%b;Ra@ejsG6se9-+0$xVxz+f&5xn}UqOXK%9r;ouh8 zm@Daif0bV`*T?gIU)gvk(HJdcQ6Y>@vIbrz1S%#L*@^;$ZpoWEE$&XBObOZ7mN0Pp z{|`4q+%EQil5qK822Np13l%tvii&>z{K-wIAd8)+nBo0&@5E2F1`4Eof${M(Inptz zs>v@1c}lbw+ryojZ%06SB&s{?J!(LQv5T3hsa!fgo{0cAXlxQ~ZfU8lsY#A!!~LmQ zZTvAw?vZK@<Pu+HPVRxc&Q})P@BugemB+h_SJD17yM)oH{s94QZf+cO?Ck6ew6wnm zPUnUc(ElF|7d@Q;<aV}4GZfv$;Lh1KGnETL#wS)m$d#XXPm;gu_mW>tS65d96e`2n z<a7`p9W9bd_$X|bT!Ti)J=W7B@tCZT&#YAw{6*j&1!RoFtSgs43FAAu!wm92raau= z?J-zmqN4t8Zo&gC?pHE$a+F%H6+qg`n2?AFqN4-o?@i>2Tl~RbXI6a1QkxQ|G0xw4 zpHNY3(b&Ay><Qbggnk69lkA-8K6%Cp<6U!dI%0<wwko*DW{b2isP3V#6Q9>CVFrtf zD8~HA=rP*fgz-%;W0I8(D-(VHCV5Gd2V+FuExXK0xCHIB-WOF}?1Wfl(C6`c@_~0w zk!ZZUJS~L$Ui7ZU(=|TUVdzA}&P;Rk*f~Og$P(&gz=|sjqx3_O>w{ok!k}=L+LRA2 zw&nFh&D5=bJ;JAevX(UUyPqr*<53QheUn5v@q?>QXWl~x^#YbhJ+7{M`@2&oO0UJ} zu_s8R?alXFDuQZLp$Ho-#;%v~CSYzsL{^`3p6~)oS6oCBd2wuQ@nDC<>WHcYRA7)q z2-CVgUhc*0=2PfA*d%TglII^>A6?e?c7BkRD;nr8?;9y%V2%lkRqU9Xkm+2K>s`=V zoWZBXdPD$(Mb*z{3|h_QY8wS7ooZ@@j)eoQvCXvM+814<>yKAzYpZSz;xJ+qV#FRY zHq8_?-F}>0ZT3dmPpWhyB`0fd?HD`h^yYsv{u-AMg8;~>sS(h;M>?^q+vrg;wZ9cN z%qhq+UQWLN1Mo%Os3i*p9-bB=zLyk_o7?**&xgyyN~d{v9(Jbee1ux3@t_EPjAjI^ zii0(MtHsW_DV?xf6-f8CT_e%#S)pm=7j|rSP3h0N*3JtLU8#q1L;_yr%o_9Zr#+cB zT1-Ai>9RV4FV$|SQ>tqJ#u1++G0w|Kv0?AK>i<SeUEb-ybg;^mmt*(1Q!I!(bs_UO zTj#!!6?f=9!y~u9n|@%BoZ^_K+0E$SFaLh;@B-%y%F%KAmE_lPW}y_WRi)Lx1|L{2 zX(o2zJn#uFNXZ{(IZ*HCoK1h0qbnMSj&DGG1W=pz4kvuNq->nf<pJ=xVo~Z~X5r$y zcwQ!$R*Q@AS^BoMmHAs&`Fw!$(aZg3{%m{elVJS7^q93e77#pSZW0D2L>dZ*9=N+H zDbb>t$`5Gv8P%T4q&FYeTfpQ8rP1!=_L*NvjSH;cYTuB3MQ_8WVlILdO-^%~$Fi5L zmupIzW>~<ZxAj8ZoA29F&Fkh;V^gfs(L3F>3)fyw#vI4LgoPZ67sbVJZHtNVr^biy zBs+p|f`pkmZ=i2rVO~atEly%qem+{dt!`y}$O=2bczB<nR`R9BpPEN8!NvbLI6v&% zp*2Z}m;MTpZ7*%H-b0X?Tk5fE{>269y>$Q9h6je_>R7?Tg5LFrW@{Nyk(S89%v}Hi z4YTg8XU}b6C*k6<epoh5q7v5aa?jzW3)>E(mA<K*8#+2bM|asT=l}_dXz<y0?J&}7 ztj~yr{5lnM%6UNU#)DD>`*$$vjSR_nnV3y(jK1Rn!3PPY+6j+G{%TZYo7T0$Q|t3y zIh%{Fpr?id^Y^FOy+z}APPM~xuSLOR4rcnJzLOLf{jD25KfMHmHYV-6Ck24}aWSv? z(DBZ^2cRVp6jm{aS!p4J?MQdZ`GZp)9&~ieA+R=l7(hS7Sb7k)@AEo#8`bg^O82rw zsuFFp$L;UDkjl6nWS%-NzVq7j2nClE46*S6&@hMGbZ~RM#byP0>YOFNL_esWAWL5n z;}=Tj&1k(4y~nJNe&=+FrXh#-c-^fcy>>)TbLY9joq>?y)$&Q_e12A&RpqVU6Z2B5 zz5SL8-zGgl%sna6^?}d%`rZ2vcTY_zb>+3&8<!6R_1{jGi3GgO;l$`&{H?o!qgR$K zp{vhN_0V5$c{m9&Vi&4|yu9l2^~D_a&0m%tyKe;%vk7ZBeU4)?V#wyHu#n5rm)b1X z+dsFkw;WD`bjIE7Gb7O8bHNG>Jz9o$jaBJScD@1FYXx6d_DTf8w%_7~<rar<=}81Q z{S~MUo}0l!NlZ%It*D{U%dcxHH0B>JFGPR3Dae+6S@9BDx|`G_ufYPPg<qpO?G-d0 z7=6XVRYlN=P!s}LdVrt&5+qfub@+Rjm`jTbBamNz;pl9s%0dI+VV~<W<d^E5AQK03 zAb@7dKi--=1yg=N_}h{LfV;ltwbj*{)Oo~zm<V!4*UwdTStYeThY$5-fN#r1ugc2d zr6I6;JSPcFPV++r40EXlUrJ#CPeK>aGo18m`nmt-u<QNaGaTpuc9^=ox7rf?V2MDj zGHoz*+i*JexSLpKF(_=ViwEHD9&E(eQ+D?fL-DUkEB7<#GkdnxKi%<w5c$<V;43ca z4-$4|t93$uHJx2ib`pJZT*b3Wa*zRQh(M#y;(c=oyI@8_M$DSWetT%Y-+*jb@)4E5 z-O(SSRb|@PZVT^NEOm`47~kA%8i<Ov1_=N{Camj-gY4SO?;>B#9+(xlt{oxL(w3*o zBG$y{fk(WVncdvi#}<a)?k{g&HP)!Bcf$bkPEMZQmH#lWO>j_hpz%v)`a%6Ml5g*g zHB38En*&gB?c-t0_|(%k^<zYz7X$ac*XJ4V1*tPkBI0xKdflOEHS!KGNo&(6pXB8s zArF#6)AnTioVZVS4YJ}74X=AQAhigHzcb5pwY6uDaqvCvkERb)>1tQo$$$aA*Nl8v zDAP{C9$Fm-MTe;o_18=ksK7ZYD&I;h!zIzB-6zOddw}Z@86P7akW56UJ~;;On{k~= z{Lwl&zOD=`LG`0A*Xb~TT?gZE%3OgOn`A7`mSS4ld02Rx%*lkI8JsWobaXotGXfwV z|C%=Ou|xE`QdDg8Y-=Zh2QL+Cl?O8oqDn2>_So=5cEY=~5vfK3(HcyCmf8wLASkdp zmq<qk=67?B$nl#ymQ#?Rr>7stW4!&gaUw|o*{G<gMDmUG=icj>>T(4ts%kZY9q-25 zCt+XHFtZK!)Jd8s^5kTWt1^^YRqM4-YW2}v(A`IGUV*G3pl@sjnzWq-U`WX~B__oP z?;Bu+zj^vy1a;l+fQ00uohifE&1D|;B*=|VzAt}%uBVV^UO>0Kfc52@9hG?>%JqPL zb=dCF;fI*cBrEqeM7$>tCrx0>)W0&sO*(?m9wT-BqODv{5WT#((EAN`oy&n1fGcRs z3b-oj!2?LnmJQz9N_HYl8NFT)>wDXyUO>A?4>>Sb`L#bgiU16Qbk1(#w(SvDvOxQ! z2ee@xRnq0<{zy4fn8jj`YxRhK>QHT0+97^??<WX}O`h-Mmqzyd+7KV~eox}X7}Gx- zLD9<^Rd=ufUmRI&XE7COR{+4lT6yy(96wq%Wx}+wrkmzGEiAp|!G~i}rOM3EywY}> z8c3|YJSYef`KU<z_|(SX^I{WzNd|HtqmP!uAa=CW8Yf+>JKAgZ^m^i1&s^mU)w@mS z{p(TmN7!Vn_#2S`9LV!lL9RMUkm_u1U1sBbT&$v1zkq)mtJnQrVh^4?Z1zN@CkS{w zg9)3_%f|YVesqLdt1tiTqSXN;<Yp&8%j&Ex3E$OeE%Mpl<WLl^(MCRty2In+za9D@ ze73j*dG>=%`LoXibtI2&tC|VlJ3-0^G!Dd-KK<elBEE=xoN{Ptq@Q{59vU_J%L2l2 zuz<C^g|@j|y4~;E6x}9C6*OY8whVJ;r>FPcQb~TSnBU^j+;g(5D>K?CG#LmnY#qmF zig>9waGeC9*yWv`C)Z2ZNwUC_$33~7_k{a~)%x1e#@Z2ufzcLBsiq$(!MWzD81369 z@2yABJ#uGcRF{`WU^1e|YuxM@aDgEffrQj5<Du8PrHPNPK(bwFG(v8Lo@D)F=hdyp zlNWP<kkm*&BH)2Kh>)H=E1&YoX6++?FjIu5W#xJMG3ba|pOv219K3$cEG*(2Tz&`I z2>;6xHM%4Fzgwc}zgjS52ssbdzp)W~9ov(e+m)NU6yk={e8FsJA+E9+<FVv{=U{Pg za%dr<Y2ulWhKC3sS?j(#;eGSg_2Xe{W9y%3k~(a?R!suTw|6&RH6C<r*d~3N>|2N9 zZxC)JnnNbX$M_q)9maDBJ|$SEeyI=1EqjCiVz1}>m@i2o<?G4s^=&y%+HdL0K7M?l z#DlswI$&pZ<$w^miVp7!ntzhEj?LO9)D2jIc)1}fkEp<{K!|Czk)7{qll?Ggl|ip{ zLaTL(4^OMuxhSV>!VH$^+o@k%-rEomn(3hil+-lnS3J|A5dqMo)Dd*>3s--gpocXS zWx<k%hl>E9Mz^+QK8q#m)E8<V+%q(AK=zD^%vZ}zCz#lU#?H0=vmJf*{4UJYLV-C! z`$#xgnBp|_;4=R3>{NR)9npC-%(yYB;+HN2;WtmsIdyi#0xoNI3H^qVQ$OF{UhYc^ z0xU+07@$eV1Pf>CtU*Umh==Q;t*L&w6|%g&b|D}M*ADf;NcY0jQSN6dG|XsqG3l)I z`OiRT`4yOn*q)8d&;O)&XPm4qM|6U#jeX0%Kb~?+<?})fIo_LaIjTvrpD3VJzi(&> z3AaDw+r5=fvi7%jc;)}P>|y*<yMgCTdxAy&YdmlEU1Qbt6msVPlsIDxbI!81Vn^Qb zw{pBsE9D;72)CeTEh9BW9!3VkAq+v+U`9TrUnz5gv~~G^r~a)D(}LBf@D1-lJtjXT zO<=ahR&^C7`~J15R`vXSIA@aMeV*n8*YLg}#z3pn9Xv3GCnp%`0n))X-Ya4?S!J-v zCz+UF2C#gv1CpCFUV!cF38<n`XsK$zxM`8`x4INJ*Az4vkYohtIlI^v($c$mo)~BI zy3OyUsLK&d%Q}G4<FZiMx+m^<LW`)%QVA`XV>9JjkB;go9-8nkZEu{|R;=EY8+$}J zO`KI2jM$%e@79M;t6BDco(Kwi$&pPy%DqzP4j|7wz5Jdw8KmVg_i@LK2VPfTdRu#! z8{Hm*!U0u`;vGc5i;%bH9h{f}#XB|ukmz)8cG`jm<kG7NK~VtGdXrEKiXW%Rr)N3w z5M8MIc5v1sApq)yXF@(T<5~zH%NSsFfD?cKNwEBeTW59D0W#vhek~16f#F$F5RDfH zvoN#Y{N=&2QRSnLrLNn<fb`kH&{U3In|5AaCXf9(L*wP#TlDps_y9M%&mxlXv8ocZ zSegGE1(^fCMiXYKyAc{kJN)+0w!!=oU>PwXOZ)RP0{O$xgX`Kw$2bJcV?Y6klHQda z8d5QgQhIvbJ=vy+Bq&w#HsfL$>Pb%dH!Cyb4wUHpbg_e|XTg97>Ve7WkJm$gR)zPc zSXfbG9=-OPtfvYScOs9E1f33aVHaP_;vW(}0DnD{t!0sG#o-jg60De*>D3&|Z$&`w zmYZ2fL@SxK7ox5J)ms#SX0NXL+zQ7_{vP>vA>tyf`BYBC0Zabd>ZegHqV$$?-nP4a zuhyO30Dot;HULm_kOh^IiE%bCfb(GBLN~^Y0OYoV*|VEP%lvQNb6(%(3Z(Iq84TD4 zYqf7++8??aaPUD+U%+ZPys#)aA*OIw*Y1btn^C6z(P7q_x}JPRv`%Y10R$jsn;`~E zA-RbV0QqKFbqSpEsc}aHj934b=^5STNI~8m9nc#-!?(_6T}tKzO9_F~wk;pfH#!n^ z74G#d|69&g*sNJWY1uE0NXBtnhDgy$XGaCE40inrWrqGqvVC-Pj%l^K#(B7%HFm69 zayoWqdURlh5qHs4LsxwvtY8erngY92M7HVAu*<p+Wwg><O`dSOP0I(AfFECR1Hb<I z89Qj^9griD7W$P%NDvpkKDF+wA*eI4QZvbHtCR_E?p1-_1_to=su&l{W{rmmBI=8J zziB2WvZ_sM6;cq#TRW7y=0@bvyZ#eP4uhF*QX8-t)0nshQn~}*aVDwdndqYd6S74; z($dP93k>lAg@y4F78wro?AJ9%{&u|3d&Q1pr!Tm6o>Dx(@3J~h&U-r>MP_KAdoMv9 z%go@1J`*$ZI@L^Q75QNVNq}f0aned3@3UfcfvWi&k<gjd9jI~&JN(!C4}EFI2RNBh z>@OzH9#hen@*_q!jB}}0n{QWTGVZ0DdEEnnQ<kxW-YqE-i)9dsT-!i25)&ZW5Nt4o zy9uXXpb>LUbd<0&D{TDAXLDukNfcd_#cF?L-j=qQ_JCGVr*f^9lPm(7>)Nx&^zr45 zb{A|mC+adI5CPR$)xD3G$)%WwKHqz{8eWqyju7R3<g6y-wp6{$_5c+FV}?8PKM4e4 zuuM3c#xm-sr-VW+O8bSLR_ak{A=L@gZC-mG`+rGN1Z@f<{#y?)2&8_!cF}gr#Cg7! z?ZHLjg{zmrZjxl^svx4Ou3=V7$i0x0WWiLo(W`mmi0omTKWr$w7Zo}NL}jEr-A`Y9 zy}$ttg!X1DBXW^4x!c${b+LG%DyVzaVrJAMx^#sUx&y2KFJWMdliu^~{|A@<Afxm3 zzr}&P30s_DrSdcFXWseYvV>5S<+&mI?m(-Q7w#ErJXU2TRa0xjG3OQ>(`UR-Tm2`a z<@XZ{Gu~CBI$7y&ANtvKXqt+Cc|C8E!LfxU^+tX+wQth7pH3fSV4T4^d4+|-6aP+? z*PncCH3(yvaHCb<v8~R6OY%amuFNa)gV5up;NEa{g+djfshHS>tIkWY30_fA%*zU+ zq!?T~Y5uYFhYvc$7@fSsLLNKo%MUl6FssFSH_r8A>o?0*HM4zGgXsdVJaFxsyhbT| zBLhE3s!=_h&l{-49qu)`6z})DNf&;wRv?e2<vgYWNVNxv&^oierSmP!C-2n@K`a>q zuOO9<9mzK9di<!T0<*i0UqVb>mA`z6@>rXC^Ie$bWsD5+Kx}^^uOVyI5&Y-P=g)^l zGQxH7T+F(?@3G&PCr)Ha=GLAy9dg@@q(Yid&+Qcm=VMOqb0>16l;0!|Zt*v}JaqJT z2IAnLDr6}8XLd6X^C^iz1Rnbh&Zw(uoB!H3zEMnXxN@ni-yLJ%U6?7=)-KO9`g+W2 zrfj7?vJusOS!0N(q9&=4A*1#~x=2|AMX#G59j!rGOPSxiTPBi(tGJ-np+OgCmyVs0 zab`FuvX;G8E<9YwT*MKGmU29r8QzB`mk#C^eB^UPQXv>6NXX+pzS`)NoLK28E-3io zT+PAy(WJ7*jo(^L%}5ff2E)rs><u*?Bh$d>Ak)yOK~WLZHG;6&7+XbhO_AV@!);H@ z@8JCEe7S?K7BoyE6l6qe&Zo=%n=X9n!%lS{kM&hD{+fMMo9Fr9B37l_$}rMjWL%9N zE`PD;L?-NfZeg(+9~WL%5yiw_T|r0xVP=MlrK+;h$)OsLOX8DSZ7vQLOyJj)$Q9R& zBms*7Rg1y<r1`#?BcPM?@+`X`(S+VaA#r`?x%a2+t)U`U7C&E8MClyWZ3e#wr$=|F zY;Qz3F0ZO`fr(MTqUUaW!Pa?w8k(G(bP9{HB?*m*9a+^C4H+h~HT<gE&GXY^2*pnL zA$<ZT-@ch=BFk4%U0q#EONMX>3N2YU7Bs%im)qkF6Q+m}ie*XAlLl8+J7l=EjVRQt zrwM8K`p1xqrg1r7iibZfF>!Z&-TrcSd}}b_U1=^JakHF&+XY#EJe%k4*mDa67Y(t> z=^$1^Rh&QEGbV9taK!nj<a4~lf)xn`TUzHNXcE6N7ZPf_Ia#$Z>o++M^jtfI&p#GN z5^__>6m}ut<Fl|(F)$#qN-NqoSAaZ_^vmF1US6_97vz*M&<HV8F*5QoODbybRDaN= zc$n{RDOcFoTVG!%7H}_tG&wKUS&3ViMTeS?92NNI+x%j)xBvJC5x~jI<GDNXA@rnR zi4GnuG%Bd~8NvUYn3A-$y#?b-7qh2t!e;;5Pm)9%UyY37cUlkFPm9^IQtf(bDk{x2 zS0vYmzo!Tv8jS*s)b6OTjpFPH4m=6%*>=zS^<L|lKefVBbxm~5NlA8gNc9dVX^$J+ zrS(tp6OZ=y_YV&r4JEOOTafuqOicXi=9kKEvt<x*i_g{-3f*z^8njq4j*jf(qD3Jj z5CC{L|L=PNkoBMLuX=iV;^N}OQ9nELs-)s<93L~i4IvitmaB7;(xT$w0gbP2Co3&_ zURT)TTCr&(JA1pkyJTX4I!(@2_m_L1co4ZanNLGQ)7#zsVG+6I?Zh2FIsnQTKSM)h zq@?s&lfWu|NEpOFi3RSjj~3t2D1g2`n%^q!yfifVCZp+m&WCdqU*X2Jup*==@mchJ zqoY6D+Omvm@gm8v7+p?QR#bdx^L~mT;**i#z2l{1wFT|8TsA9*%S{QUWNCp4c=<5D zq0ohu74Ml6&4-&oXsC`!PF`Lf*!DYWIc{gUH5ZGR|5OuJQE_;<J_^DhQIL`%)e3{X zJ1B1h)gkBOCFz=|5pk37NdWw$u?_^n$iQH|)F4uW6A+b_wp?v8%BWpuIbRiE%9s|S zaA*b~qoWh?*c(bo^(B5Z2%aJLiD%TlK3(g~$)Qy9v~k%zbhK84Yv1gTsjjY$vo&`@ z3JDJ<VmBR|uQqwl@I|;LUO^)N=CaA<#Qo;j3w+Lv29x#1i(}Tewz@aYpbJ~dcfxaO zZg-W&!}!1C{gIK8e=E^OM@NgJ?!`LZbE5-WTU*ObE_&6*;jD_K@kGRtJG;AcZ9XsH z2ld{T=Bi9+_MYdAPftIc^^&-ptfa-|&hgEit@TAy@bK{XJm1lbi}KPN22TR*8)vC$ zX+f`v7UuKSv!y5OeRnq{t--YohgT^cr`(GW`^C-J)7dFTis`sg3Ck|6#S}F#$*k8( z$Zh+(yxfK+O)H#QdJsX`4IhYS&^*6A+Zf@l#h3pT|K9Mz(b~Gq)%@!I>L6t1{MB!; zb$>Jiw~54*6rYEqdT`xo8IR-?6D4ADwvgx7*#T7zjhn-HhkvVheMF%ZCI{Yf9$*P- z`Rp7VF2_r5x2J2Hn}%7neelVYjCxYI`7pwiZ_)AD`#L(vNlAT88LfQ5&JfwV;{zQX z9nH<n$IDGz?w6)nwKa&~9WGJ_W<VmRm6n7=PuP3r*!4ZO;qTPa^suZRyc`_U<Kt($ z<JqzaOjKI37vNi?e6J`zZ>VrS(qdz)-rqOR3SfszrYt4xBLp8fuyM&qVvCs)vx{gq zZa=UU%&eC}tdW%#kLjr?RyMX=R23DKv#ECDYQ1JxGDwxpsvvbtQha=1{!b>@JAvVi zv%{mK1O`p=m7#%wWG)-xux^l@YA{1aMa@<&l#OQqH}xNulAIiIa8@2p+Ir=M6Mj6V z_pl7Du4c&O1_lMaoOWV3@<RC0ewh5^cReKym&l&nlcT=a$?&0GMURyUKpAhuAa?ce zSo|M-oOe7N?H0!eNhEq%(V_&ek|=LPUEQ)G!XiWv5+#IviPeeTOSC9USlzDPmSDAr z8ln?KSR#6F(YbT){rld}Xa1N!=JU)v&vVY1ne+XfGc^^%F0CU7**oz8Ktn>IP*PG- z$2TM5;&A#!zsmiuE<Bi+k|P-f+zDyHnCpLW)F(5ugq@t8LS<w?PjZ&IQ&j>4=-|4$ zyBGL*`T5}^l39ZlB_;d&`|IN+=!yz4M>YbT+Lf+g{PD4;n3x#w270Phpl>^n5gA97 z@F*Yq{Tpv+htSYul@+nYH#+WvC~4ZlK`nAZ6$T>#kmBY-43U;rR=WuanVIGjKY1C{ zdFW%{(J?U&?qaz!@l&H<#FcyZrxXk+_=&EE4<90tNK`yM7Z-8kwJH=d3!44$@i7V6 zjXCbTb!8jS^}x#3px|I|D+~<SvZ$lgcznK}#Kgtff{d18)s+w)u3=!1l$ORy!$yGc z9Z3N1@5t_f&IwA~!6hYR!1Lx^KC&<~3&^TKVBkdhKQghf6lM&jZEeI8M*$G1LKqoG z@wSLnPtCkx^H#qY*tVE?6J4a*$X`kq2cw{RKK;hqkQXZqpr#o#pTfdIdS3XWT*<iZ zcPD!Vxo2f%Wyz(U@B;lJgEesd>l~(~B<K++S0)5m02aH1k@EmyuCTGf!gz^M)Rx49 z2YPq%4Z*TeS3*`6F^cIvWX6seM+thJfq?-S8b5(nib}P{PpPY`Q*7?`r%OX9LUnK@ zMMX2s?>yGViYPW|NPx%Q4o$@=iKYhF>@KCNQ&V5Y=q&$Zb3w=~jn|5lPe>4yG+;+S zk0oq%Wep?aG2HP(QHU3z!f{v)Ul2GH>^rxkLD11>T?*e7k!vk14RWx4lbVJp8{(wY zpKT(z<SbY2N?kCmtiHLrk}=#+8C5bGAA9yf49G4nevBJ_Pkqp6nijh<+8l=|Qf+){ z6LIAFTI9%J2p=)&DT+qgTmR!|W1o#f6zE3xL0VRxSh)X~wzc53y|<IYDvdZ_Y<8j! zF4{S>r9M1tc;Tp`iF)Sl4%Spw1-404s3e9%-P>IBcobqRoEE-LM|-rB1m7jQ@yFeD zWNZl7^$0*0g1iIFF?QAtF7L0nW^`?UZ0b`}&^hz&F6!1>LRxxR=7Zj%bb3Y7q-$T~ z`^)DY<-E>(;Y%P-gx5C|iKhYq_?)lg>TB)y?}@gspK{BId33GNYjrm=2vNR_*mX5g zIr(#SE-OE~QKX3N>N?a1{-zLj)yM&W>m9^<VQu?HVq2l%1gM;&i3~isJRe577YZP7 zztIkgP6?fs{TL}Tt*86JbO6X%X=8X`&L;NCLz|9EHvVO4Ik}};m>&8jqJ@{FEeI8a zZzI2MG%&y>vbwloeYdCrNV#R@YU*m!m3*IhKihhV=42?Q6mU9}2(y^h`T2Y2#07i$ z$VM(Z2}b`42=J|`4NaT+jhc<KdTHiexTA#&2`<4^Xf$c|_ogYlX44YqiV31B6a4$l zP8;-aP11F4uB2`L`s?u!yD!(zb=Z1~*F=fbT$6QKX_1ljAtS$C&~lE?`e_G2?jn#z zz0^BC{{020TC~W1>j<X^eZ2Xw$9G`QE%;}5&xn?dy}p{0GI)F`c|+CCga7ES#j%>} z`-&RDsu0%jR{<Ya6X)sraw5}&(EQx;D!y%4Ij5eM)udHhuRg~#he$`e+Mj!#@pdV0 z;IXfOP^32t<nZspzdWQYGtsbgH|V5#V;jgFy|eY~%-h4xuFrZWul<-9P|LYsxT(`X z9xmp2=gfO2fW*GIIAB53!ut02l?qT62(TzwRpo;c@Sl5&-%7_kQlu0v<xvafq-QGn zhnaW}wv!g7f4pTxUtaZvp1n0G9@-U!1|10H1^Xg+$=ccDdNK?bAULj0oQvmAzX4G| z4Zafe^BWq`Za6;H%>OM35;k-A?rbmZQ~4#RGCK`B97aaqj_43?S<{<$<{Z|UptI`a z39;WV%ueM!A#ICs79(FzI-nW94)Aq$OIR%1+FC~}jM(6QyS<Wr0b7LhYqDFr?C%5q z-p5Na)JaC`a@Tu1UsXqvX&jCmR2yB{e_CERtFzuP>Jo)e{Fz^_3NPaT!%t=sEQvuq zI1%^Ig;L~6|1GZYmURyrHhxYZp5^Ec5a#LmQnu<Xn0=v@TcVOqZ*DCu6TF`=Mt}2| z=qH6Des|NXuv)iA)@KmFx&2!lY}H!r8c1eoip1B{7?=LuP?c}&V$6^?GdC_O$%AcF z&VUl_jf108IJUf<U7kAc{}H_PZI&GcFK#H0nl{Yk;?o7mV0HUbneKC5jrZyNRukZj zXn&O=5E{6`CWb-3-D|W6qj6`dg9Gq?&9XZu*k=&<4Cdp;!VrpGYCJ#$4eiN-($(C= z>$ZwM5G>eQ+b5tge&^dSJKVO8F=PR?SJMwcOasT>cD*qQYEP9e_t8~IW5Q=@DrHlx zbTPh7brN}bjHy8i25qEk@E-P3q-`0+^|OUSn}HV4{hy#svnvCWLIqTlFS)x03KXTS zMhX=jA4Svt&Kl<72T7LOYjs*&i+i)T^pDr}7SsTZC|LpJe<7NhVk8NT88;vJCLlMH zBkR9z2RN-PPyms;4@N>GcLzz7iS?H>g7+IU0Xll;Jm2QNk?X4FuD1~AWC&a%WXQmv zODCP^T5<GV9jLTw|DbVKx_ELC1XU4p0UYaSAOQUCJcW)jlY9>3U@y;-HFy!<w~QjT zcoI%rxLB|E{AaXC&0k=aCWN#NRO%j3y-(lTT!8v4*&@p^m$su(H&&}15X+0}>xem! zdqUSNbiw)@5JB}5uS`b^L*e+xeCZ$7XTi;iXEx)}A==6A(%~)6+Om!?Zmcp-v|))l zw$G=2h#BuMJh*zKof2Cg^gjX8lw{2mIKMemmX<zzw(d-fW=-i;DGr@`rrPu6(n_NU zQeS_e1-2Fl5v9k`n^F9>yEdhq36H1#KPQVHw}(fZ?<5$fdZKfUXjX)?5qV4m-3)hp zZq0$x=+xa^QzUsW6RuN&-B0()ha0|ZWkaFAByyvN?Br)wmJOS}E{<)2>deTC_u<op zK!7gyj@-NBeLI-I!9zBSzEt_4jczepMSmZzd~vtkz_P37b=67aS%Y%^zX!p38Bh=a z9?b8Knw<`=HZe$DMk7c!BH-pDHEwQFQvG2)wPDiOY)kdd$GZ+WG~ZKlYu5yaf4CRd za&!DB`oV^j6UoaKOr)nHN#3b!QuX2!iOUbV?eNd78&rI%L61~34%*kMyPmKOZ-mvi zA{v*MW)(b^m83nkXB3tTO%yV`S?x~dgD;cf7E;b)UNWtuVEjmd-_6zSx6*mfIgD<| z;5cO?d^wyu42P`R8~@yU73D(PF8j^1?gL06{mxGQlo+qB6d8;de;p{ZURIn?sx?ul zxw;VK#6fB$#*HM$jmAGA!wh;uCL?S_$wde=y{$976(z!!HYv}Ish1xjW*ZBNWoQA; zgT6FPDrrR4`$VC#e))Wfh3<-GUmP!Spy?44119yCObo}{16o;;m_s54?DUbNY!DqH z7e!1r_`E)M)3B3tb@-vtQm8s$LmCx>!Qr(Pa^$N=Qu|-f^v}-ERk^w+hRpEEI!W}$ z+7O?cCb)f!bWjr}xRi(Zm({+#NWlO*OjdnE@f66fgHOf@TQ`fd6~rr%6*sYkcI{JW zA8|f;hDZqjDBm&%c5GoH_Ya>Bce?DEPX!g|ef#!d+5Ra)FmA->Ho(Wn>3<(O5V-YA z*&{OQ<kcXWNTzH@LOI=o6H+=GNOjP_$4&2F2M+F^)(Gdy)zy^C1>NI=KIm)+pKqsP z$cHR`uByqOsgl<bg1V$$b)|>L+RBV%@uq#u)aBg#A_Y9Jl%PPqsPQ?J1}3?ifWQ0w zMV;pk_>?nK3XHHEo7UG1AGwMXx>r#P991|xDGV=Lr@wFS&LLCH=bTr@QPxs@>}g4Q z8LO8t<_RPTtP0c!5BiBq|N9}@V56Lj8T^DNPC28f`jmp?@zT#jlW~fgCx0#b+~NX; z9<b|m@z$F7Q+lg<c{WQ?18estpId298P?p^W0{nMRA?q*pZt-+YN!Q;W4mK&SD*Gs zvQe{mMcQ?DResP)`!EozVeeK^)7Z4b0~96&KPn1Nqy&<fm$GkTR&Ff@hLBtEKZtT3 zJnZ%MeytEHYm4C9CJTs=gz|*Xg$0_ySXo#q@z~3&ZMc9;KW;UaMn7!>Rrx&cB6QDd z+{e5&1=UID?@@W<X>Bnu)iKllYg86B!Pv{opQ-osS<kW|@4St!Ijt8jG&6veCJG!d z8#w5(R(a^-go**2MrxMTn1`DOx&`2ghehXvK4u;1u_P_1+?ziO3cgtNmW$cqRL^{g zyODMdR;H!{TMYtTTOZy8hV1p|$m#j4`ZQMdkBm6Om3QQ(|BwJ~?+<B9k;Zo4Mtq(% zR>r92c%D9qdCty`PYyKIM`6JA3Q-JI9VTwCTYS>&LG@ahb|BA$)+rX+IYMw0+;(%) zSG`4q`0BnFPbC*>wyI=4cYlOpSHZ@P%E6i)%0bL47mkn}GAu&UNQKPtBPUYZ3?h*} zJ+$LQw@(M_Wz&ei>STBD*YqY#h-GS3N_SmrJzOo*yZbC9g=rjNp2DqxY*OB?dMs&R zVoWbTt@J8Nmi%THVpJmi0Xtgcjbnr8)|z*5KvHdjO4bX%h41$bdpAp%8CGL<+uXQN zu+%GXyQk3mixiz!jIt)|j2pfV4PN*yTE~N^PDad|5ZMsQdi#&6Iec9epK|o^lzRsE z#+^unkh}qA;+u5Q6-f{=stml44^4vNJn8KAJDHJxXdFx@1kkqDFLe)&lnmj$rv*V2 z1npz#b^X{lboZt9yc#rwS*8quyt_fj^11g`w;;+KKhV#_*qAkREy{+>n^}_WxVd51 z#8ADmm1vuePTxJ{xNQkG74fA_3LmYQJzXYd%eu6y!W`l~hI%$r(c$@xjrF-t_*xn* zjGzDPeU&@YM*9W4o{btZR#O>OqD;0=7Ho6UpFcH~Q0<56FvG-<lC&NY>cY<ksI_dp z(>JB+bt1+jf_#*{!ul5_ZYDi0n7(F2>mh9moe8oW7D;AUpIrG8s$+C7*-T+(6D)|! zadLAvZ?v8*rc>%IIZ9G(!qVR`w2z&msWTK@OM0|@1RY)FuzWDA6T>eoEWGiLgBfPE z#oW<?q-CkOB$w;yaLw(gz_vyP)?xGa{8)s$z>n)s+tehrRmCmgM@JESe1od?A3J_> fOKMv>o|BtZ6xxvlw~B-9Kmkp49kp`RS3&;*-4ldG diff --git a/Outils/figures/hello_with_return.dot b/Outils/figures/hello_with_return.dot deleted file mode 100644 index c3483ca..0000000 --- a/Outils/figures/hello_with_return.dot +++ /dev/null @@ -1,11 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "bc620"; - "hello" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="hello"]; - "hello" -> "76c16"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "bc620" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="bc620\nAdd return"]; - "bc620" -> "76c16"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_with_return.png b/Outils/figures/hello_with_return.png deleted file mode 100644 index 58fcd89e0c97ca00b8539a5eab92d94a333c16cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16732 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 Weay#E{s}GuApJ!_yh`-z_x}T30PLp# diff --git a/Outils/figures/hello_without_return.dot b/Outils/figures/hello_without_return.dot deleted file mode 100644 index 0562305..0000000 --- a/Outils/figures/hello_without_return.dot +++ /dev/null @@ -1,9 +0,0 @@ -digraph "git history" { - "master" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="master"]; - "master" -> "76c16"; - "hello" [shape="box",style="rounded,filled",color="indianred4", fillcolor="lightpink", label="hello"]; - "hello" -> "76c16"; - "HEAD" [shape="box",style="rounded,filled",color="lightgoldenrod3", fillcolor="khaki1", label="HEAD"]; - "HEAD" -> "master"; - "76c16" [shape="box",style="rounded,filled",color="skyblue4", fillcolor="slategray1", label="76c16\nFirst commit"]; -} diff --git a/Outils/figures/hello_without_return.png b/Outils/figures/hello_without_return.png deleted file mode 100644 index 3d87fbe8bcc1a97effc78380c605c556b4478e54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11159 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 diff --git a/Outils/gcc.rst b/Outils/gcc.rst deleted file mode 100644 index 826d44c..0000000 --- a/Outils/gcc.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_ et Nicolas Houtain -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - - -GCC ---- - - -Comme cela a déja été dit, le compilateur fonctionne selon 4 étapes distinctes: - * Appel du préprocesseur ``cpp``: Supprime les commentaires, inclus les #includes et évalue les macros - * Appel du compilateur ``cc1``: Génère un fichier assembleur (.as) - * Appel de l'assembleur ``as`` : Génère le fichier objet (.o) - * Appel du linkeur ``ld`` : Génère l'exécutable - - -Différentes options peuvent être utilisé avec gcc : - - * -E : Appelle uniquement le préprocesseur - * -S : Appelle uniquement le préprocesseur et le compilateur - * -C : Appelle le préprocesseur, le compilateur et l'assembleur - - * -o nom : Détermine le nom du fichier de sortie - * -g : Option nécessaire pour générer les informations symboliques de débogage avec gdb - * -On : Indique le niveau d'optimisation où n est compris entre 0 et 3 - * -Wall : Active tout les warnings - * -Werror : Considère tout les warnings comme des erreurs - - * --help - -Notons que les trois premières options ne présentent pas d'interêt pour ce cour. - - - - - - diff --git a/Outils/gdb.rst b/Outils/gdb.rst deleted file mode 100644 index 04a8df0..0000000 --- a/Outils/gdb.rst +++ /dev/null @@ -1,214 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch, Grégory Detal et Nicolas Houtain -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _gdb-ref: - -GDB -=== - -Liste des commandes -------------------- - -`gdb(1)`_ permet de débugger vos programmes plus facilement en permettant d'analyser l'état durant l'exécution. Pour pouvoir analyser votre exécutable avec `gdb(1)`_, vous devez ajouter les symboles de débuggage lors de la compilation en utilisant l'option ``-g`` de `gcc(1)`_: - - .. code-block:: console - - gcc -g gdb.c -o my_program - -L'option -g de `gcc(1)`_ place dans l'exécutable les informations sur les noms de variables, mais aussi tout le code source. - -Lancez gdb avec la commande ``gdb my_program``. Ceci va vous ouvrir la console de ``gdb`` qui vous permet de lancer, le programme et de l'analyser. Pour démarrer le programme, tapez ``run``. gdb va arrêter l'exécution au premier problème trouvé. Votre programme tourne encore pour l'instant. Arrètez-le avec la commande ``kill``. - -Breakpoint -^^^^^^^^^^ - -Pour analyser un programme, vous pouvez y placer des breakpoints. Un breakpoint permet de mettre en pause l'exécution d'un programme à un endroit donné pour pouvoir afficher l'état des variables et faire une exécution pas-à -pas. Pour mettre un breakpoint, vous avez plusieurs choix: - - * ``break [function]`` met en pause l'exécution à l'appel de la fonction passée en argument à la commande - * ``break [filename:linenumber]`` spécifie le fichier du code source et la ligne à laquelle l'exécution doit s'arrêter - * ``delete [numberbreakpoint]`` supprime le breakpoint spécifié - - Note : Chaque breakpoint est caractérisé par un numéro. Pour obtenir la liste des breakpoints utilisés ``info break`` - -Informations à extraire -^^^^^^^^^^^^^^^^^^^^^^^ - -Une fois un breakpoint placé, plusieurs informations peuvent être extraites via `gdb(1)`_ : - - * ``print [variablename]`` affiche la valeur de la variable dans son format de base. Il est possible de connaître la valeur pointée en utilisant ``*`` ainsi que l'adresse de la variable avec ``&``. - - .. code-block:: console - - Il est aussi possible de modifier une variable avec ``set variable [nom_variable] = [valeur]``. - De façon similaire avec ``print [nom_variable] = [valeur]``. - - * ``info reg [registre]`` affiche les informations sur tous les registres si aucun registre n'est explicitement spécifié. ``info reg eax`` donne le même résultat que ``print $eax``. - - .. code-block:: console - - Il est intéressant de noter qu'il est possible d'afficher une variable sous le format spécifié. Pour cela, remplacer ``print`` par : - * ``p/x`` - affiche en format hexadécimal la variable spécifiée - * ``p/d`` - en format entier signé - * ``p/f`` - en format floating point - * ``p/c`` - affiche un caractère. - - * ``backtrace`` ou ``bt`` affiche la pile des appels de fonctions. - - .. code-block:: console - - Il est possible de naviguer dans la pile des appels à l'aide de ``up`` et ``down``. Ces deux commandes montent et descendent respectivement dans la pile. C'est très utile car il est possible de modifier le contexte dans lequel on se trouve pour afficher les variables. - - * ``info frame`` donne des informations sur la frame actuelle. - - * ``list`` affiche les lignes de codes entourant le break. On peut donc facilement voir le code posant un problème ou analyser le code avant de faire une avancée pas à pas. - - * ``show args`` affiche les arguments passés au programme. - * ``info breakpoints`` affiche les breakpoints - * ``info diplays`` affiche les displays - * ``info func [fonctionname]`` affiche le prototype d'une fonction - -Avancement de l'exécution -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Quand vous avez acquis suffisamment d'informations sur le programme, vous avez plusieurs choix pour continuer son exécution : - - * ``next`` exécute la prochaine instruction de votre code source, mais sans rentrer dans des fonctions externes. - * ``step`` exécute la prochaine instruction de votre code source, mais en entrant dans le code des fonctions appelées. - * ``continue`` continue le reste de l'exécution jusqu'au prochain breakpoint. - -Automatisation -^^^^^^^^^^^^^^ - -Lors d'un débuggage long et fastidieux, il est parfois nécessaire d'exécuter certaines commandes à chaque breakpoint. - - * ``commands [numerobreakpoint]`` definit une liste de commandes associées à un breakpoint. Celles ci seront exécutées quand on s'arrêtera sur ce breakpoint. Il suffit de taper les commandes à effectuer les unes après les autres et de terminer par ``end``. Si vous ne fournissez pas de numéro, les commandes sont assignées au dernier breakpoint créé. - * ``display [variablename]`` affiche la variable à chaque breakpoint. - -Gestion des Signaux -^^^^^^^^^^^^^^^^^^^ - -En plus des breakpoints, `gdb(1)`_ interrompt l'exécution du programme en cours lorsqu'il intercepte certains signaux d'erreurs comme les signaux ``SIGSEGV`` et ``SIGINT``. `gdb(1)`_ permettra alors de corriger plus facilement certaines erreurs comme les erreurs de segmentation ou les problèmes de deadlocks. - -Il est possible de gérer le comportement de `gdb(1)`_ lorsque des signaux sont interceptés. Tout d'abord, la commande ``info signals`` permet d'afficher la liste des signaux reconnus par `gdb(1)`_ ainsi que la façon dont il les traite (par exemple interrompre le programme en cours ou non). On peut changer la façon de traiter un signal avec la commande ``handle [SIGNAL] [HANDLING...]`` où ``[SIGNAL]`` est le signal à intercepter (son numéro ou son nom complet) et ``[HANDLING]`` la façon de traiter ce signal par `gdb(1)`_ [#fSigList]_. Par exemple, la commande ``handle SIGALRM stop print`` permet d'interrompre le programme et d'afficher un message quand gdb intercepte le signal ``SIGALRM``. - -Localiser un signal -""""""""""""""""""" - -Avec `gdb(1)`_, il est possible de localiser un signal et de débugguer certaines erreurs comme une erreur de segmentation. En effet, lorsque `gdb(1)`_ interrompt le programme en cours après l'interception d'un signal d'erreur comme ``SIGSEGV``, il est possible de trouver la ligne du programme à laquelle le signal a été intercepté en tapant le mot-clé ``where`` une fois le programme interrompu (il est cependant nécessaire d'avoir compilé le programme avec l'option ``-g`` de ``gcc`` pour trouver la ligne précise). Ensuite, grâce aux commandes expliquées plus tôt, il est possible de vérifier les valeurs des variables lors de l'interception du signal pour trouver l'origine du problème. - -En plus de localiser facilement les erreurs de segmentation dans un programme, vous pourrez annalyser plus aisément les problèmes de deadlock des threads. En effet, lorsque le programme est lancé sur le shell et que vous remarquez un deadlock, vous pouvez appuyer sur ``CTRL + C`` pour lancer le signal ``SIGINT`` au programme. Cela permettra de trouver les endroits où bloquent les différents threads du programme à l'aide des commandes décrites dans la section de débuggage des threads ci-dessous. - -Extraction de code assembleur -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - * ``disas`` affiche le code assembleur - * ``disas /m blah`` met en correspondance le code assembleur et le code source - -Pour arrêter la console de gdb, tappez ``quit``. - - -Illustration avec des exemples ------------------------------- - -.. A titre d'exemple, télécharger l'archive :download:`src/gdb.c`. L'archive contient un Makefile qui vous permettra de compiler plusieurs programmes. - -Premier programme -^^^^^^^^^^^^^^^^^ - - Le premier programme est :download:`src/calc.c`. Compilez-le et exécutez le pour vous apercevoir que le programme est erroné. A priori vous avez peu, ou pas, d'informations sur l'erreur. Lancez donc gdb à l'aide de ``gdb calc`` puis lancez le programme avec ``run``. - - .. code-block:: console - - Program received signal SIGFPE, Arithmetic exception. => Exception arithmetique - 0x0000000000400553 in calc (a=165, b=4) at calc.c:10 => Dans la fonction calc du fichier calc.c à la ligne 10 - - 10 res = (a*5 -10) / (b-i); => Affichage de la ligne problématique - - Le premier réflexe doit être ``list`` pour observer le code. Puisque le problème vient de la ligne 10 dans la boucle, nous allons nous arrêter à la ligne 10 avec ``break 10`` et relancer le programme. - Le programme va s'arrêter avant le début de la boucle. Utilisez ``print a`` et ``print b`` pour connaître les arguments reçus par calc. - - .. code-block:: console - - - Il est intéressant de noter une particularité du language C par rapport à java : une variable déclarée n'est pas initialisée à 0 par défaut, elle reprend juste la valeur de la mémoire avant son affectation. ``print i`` et ``print res`` vous donneront donc des résultats aléatoires. - - - Puisque le problème vient du calcul arithmétique, placez un break sur cette ligne pour pouvoir observer à chaque itération les variables. ``break 9`` puis ``commands`` qui permet d'automatiser des commandes. Nous rajouterons comme commandes : - - .. code-block:: none - - * ``echo i : `` - * ``print i`` - * ``echo b : `` - * ``print b`` - * ``echo numerateur : `` - * ``print a*5 -10`` - * ``echo denominateur : `` - * ``print b-i`` - * et enfin ``end`` pour terminer la liste de commandes. - - Il ne reste plus qu'à avancer avec ``continue`` pour aller de breakpoint en breakpoint et d'observer les variables pour comprendre le problème. On va pouvoir deviner que le problème vient d'un dénominateur nul. Pour résoudre ce problème, il faut passer une valeur plus grande que 6 à calc lors de son appel depuis la fonction main. ``list main`` suivi de plusieurs ``list`` permet de visualiser la main. On peut repérer l'appel de la fonction calc à la ligne 18. - - Supprimez les anciens break avec ``delete [numerobreakpoint]`` le numéro du breakpoint est connu via ``info break``. Rajoutez un break à la ligne 18, ``break 18`` et lancez le programme. ``set variable m = 10`` pour assigner la valeur 10 à la variable m. Puis continuez l'exécution du programme. Celui se terminera normalement puisque il n'y a plus de division par zéro. - - -Deuxième programme -^^^^^^^^^^^^^^^^^^ - - Le deuxième programme est appelé :download:`src/recursive.c`. Celui ne présente aucun bug et se déroulera normalement. Toutefois, il est intéressant d'utiliser `gdb(1)`_ pour bien comprendre les différents contextes au sein d'un programme. Mettez un break sur la fonction factTmp avec ``break factTmp`` et ajoutez automatiquement à ce breakpoint la commande ``backtrace``, via ``commands``. Ensuite, lancez le programme. - ``backtrace`` vous permet de visualiser les appels de fonction effectués. Nous pouvons voir que la fonction factTmp a été appellée par factTerminal, elle même appellée par la fonction main. - - .. code-block:: console - - #0 factTmp (acc=1, nbr=6) at recursive.c:8 - #1 0x000000000040057d in factTerminal (a=6) at recursive.c:17 - #2 0x0000000000400598 in main (argc=1, argv=0x7fffffffe1b8) at recursive.c:23 - - Essayez d'afficher les variable ``globalVar`` puis ``localVar``. Vous remarquerez qu'il n'est pas possible d'afficher ``localVar`` puisque cette variable ne fait pas partie de l'environement contextuel de factTmp. Pour afficher cette variable, il faut remonter la liste des appels. ``up`` permettra de remonter les appels pour pouvoir afficher ``localVar``. - Une fois la variable affichée, redescendez avec ``down`` et continuez 4 fois le programme après le breakpoint. Vous remarquerez que la liste des appels s'allonge à chaque appel récursif, ce qui est tout à fait normal. - - Naviguez dans les appels recursifs de factTmp en affichant les valeur de ``globalTmp``, ``tmp``, ``acc`` et ``nbr``. Il est important de bien comprendre que la variable statique ``globalTmp`` est commune à tous les appels de la fonction ``factTmp`` et un changement de cette variable dans un des appels récursifs modifie la variable des autres appels. A contrario, la variable local ainsi que les arguments sont propres à chaque appel. - - Vous pouvez maintenant terminer le programme. - - -Troisième programme -^^^^^^^^^^^^^^^^^^^ - - Le troisième programme est :download:`src/tab.c`. Compilez-le. Ce programme s'exécute correctement, et pourtant, il y contient une erreur. Lancez le programme avec gdb et mettez un breakpoint sur la première instruction, à savoir la ligne 9. Pour comprendre un problème sans savoir où commencer, il est utile de suivre l'évolution des variables. - - .. code-block:: console - - Il est important de savoir que ``print``, ainsi que ``display``, supportent les expressions telles que : - * tab[1], tab[i],... - * &i, *i,... - - Avancez instruction par instruction, avec ``step`` ou ``next`` et portez attention aux valeurs de tab[i] par rapport à i. Une fois le problème trouvé avec gdb, solutionnez le. - - - -Plus d'informations sur `gdb(1)`_ peuvent être trouvées sur: - - * http://www.cprogramming.com/gdb.html - * http://www.ibm.com/developerworks/library/l-gdb/ - * https://www.rocq.inria.fr/secret/Anne.Canteaut/COURS_C/gdb.html - - -Débuggage des threads avec GDB ------------------------------- - -`gdb(1)`_ est aussi utile pour débugger des programmes avec des threads. Il permet de faire les opérations suivantes sur les threads: - - * Etre notifié lors de la création d'un nouveau thread. - * Afficher la liste complète des threads avec ``info threads``. - * Placer un breakpoint dans un thread. En effet, si vous placez un breakpoint dans une certaine fonction, et un thread passe lors de son exécution à travers ce breakpoint, ``gdb`` va mettre l'exécution de tous les threads en pause et changer le contexte de la console `gdb(1)`_ vers ce thread. - * Lorsque les threads sont en pause, vous pouvez manuellement donner la main à un thread en faisant ``thread [thread_no]`` avec ``thread_no`` étant l'indice du thread comme indiqué par ``info threads`` - -D'autres commandes pour utiliser `gdb(1)`_ avec les threads: - * http://sourceware.org/gdb/current/onlinedocs/gdb/Threads.html - - -.. rubric:: Footnotes - -.. [#fSigList] Une liste plus complète des mots-clés utilisables pour modifier le comportement de gestion des signaux peut-être consultée ici : ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_38.html . diff --git a/Outils/git.rst b/Outils/git.rst deleted file mode 100644 index 43ae7ea..0000000 --- a/Outils/git.rst +++ /dev/null @@ -1,2369 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2013 by Benoit Legat -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Git ---- - -Introduction -~~~~~~~~~~~~ - -`Git`_ a été développé initialement pour la gestion du code source du kernel Linux. -Il est aussi utilisé pour la gestion des sources de ce document -depuis https://github.com/obonaventure/SystemesInformatiques. -On l'utilise le plus souvent à l'aide de l'utilitaire `git(1)`_ mais il -existe aussi des -`applications graphiques <http://git-scm.com/downloads/guis>`_. - -Les différentes versions sont enregistrées dans des commits qui sont liées -au commit constituant la version précédente. -On sait ainsi facilement voir ce qui a changé entre deux versions -(pas spécialement, une version et la suivante) -et même restaurer l'état de certains fichiers à une version sauvegardée -dans un commit. -Du coup, si vous utilisez `Git`_ pour un projet, vous ne pouvez jamais -perdre plus que les changements que vous n'avez pas encore committé. -Toutes les versions du codes déjà committées sont sauvegardées et facilement -accessibles. -Cette garantie est extrêmement précieuse et constitue à elle seule une raison -suffisante d'utiliser `Git`_ pour tous vos projets. - -Contrairement à `subversion`_, il est décentralisé, c'est à dire que chaque -développeur a toute l'information nécessaire pour utiliser `Git`_, -il ne doit pas passer par un serveur où les données sont centralisées à -chaque commande. -Cela prend éventuellement plus d'espace disque mais comme on travaille -avec des documents de type texte, ce n'est pas critique. -Les avantages, par contre, sont nombreux. -On a pas besoin d'être connecté au serveur pour l'utiliser, -il est beaucoup plus rapide -et chaque développeur constitue un backup du code, ce qui est confortable. - -De plus, comme on va le voir, `Git`_ supporte une gestion des commits -très flexible avec un historique pas linéaire -mais composés de plusieurs branches et il -permet aux développeurs de ne pas avoir toutes les branches en local. - -Cette efficacité de `Git`_ et sa flexibilité sont ses arguments majeurs et -leur origine est évidente quand on sait qu'il a été créé pour gérer des projets -aussi complexes que le kernel Linux. -Il est parfois critiqué pour sa complexité mais c'est surtout dû au fait -qu'il a une façon assez différente de fonctionner des autres. - -.. FIXME je dis "historique" ou "arborescence" ? sur le wikipedia - français, ils disent "arborescence :/ (http://fr.wikipedia.org/wiki/Git) - Pour svn, historique est le bon terme mais pour Git... - Je dis "dépôt" ou "repository" ? - -Utilisation linéaire de Git -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -On peut utiliser `Git`_ à plusieurs niveaux. -On peut tout à fait avoir un historique linéaire tout en profitant pleinement -de `Git`_. -Pour ceux dont c'est la première fois qu'ils utilisent un système de contrôle -de version, -il vaut peut-être mieux commencer par ne lire que cette partie et -déjà l'utiliser de façon plus basique pour le premier projet et -lire les parties suivantes une fois que vous voulez consolider -votre connaissance et apprendre plus en détails comment ça fonctionne -sans toutefois voir toutes ses possibilités. -Toutefois, la lecture de cette partie n'est pas nécessaire pour comprendre -les parties suivantes donc si vous voulez juste parfaire votre -connaissance, vous pouvez la passer sans crainte. - -Créer un historique linéaire -############################ - -Un historique linéaire est un historique comme on l'imagine avec des versions -l'une après l'autre, chaque version étendant la précédente avec -certaines modifications. -On verra par après qu'il est possible d'avoir un historique non-linéaire -avec `Git`_ mais ce n'est pas indispensable. - -Sur `Git`_, on appelle une version un *commit*. -Chacun de ces commits est documenté en fournissant le nom de l'auteur, -son email, un commentaire et une description (optionnelle). -Pour ne pas devoir respécifier le nom et l'email à chaque fois, -on le stoque dans le fichier de configuration de `Git`_ ``~/.gitconfig``. -Bien qu'on peut l'éditer manuellement, on préfère le faire à l'aide de -la commande `git-config(1)`_. - -Pour spécifier le commentaire, -`git-commit(1)`_ ouvrira un éditeur de texte. -Pour entrer une description, laissez une ligne vide puis écrivez la. -L'éditeur de texte à ouvrir est déterminé par `Git`_ en fonction de la variable -``core.editor`` du fichier de configuration mentionné plus haut. -Vous pouvez aussi spécifier le commentaire à l'aide de l'option ``-m`` -de `git-commit(1)`_ comme on verra dans les exemples par après. - -Voici les commandes à exécuter pour configurer le nom, l'email et l'éditeur -de texte. -Vous devez bien entendu remplacer les valeurs par celles qui vous conviennent. - -.. code-block:: bash - - $ git config --global user.name "Jean Dupont" - $ git config --global user.email jean@dupont.com - $ git config --global core.editor gedit - -L'option ``--global`` spécifie qu'on veut que ces configurations s'appliquent -pour tous nos dépôts (`Git`_ éditera le fichier ``~/.gitconfig``). -Sinon, `git-config(1)`_ ne modifie que le fichier -``.git/config`` à l'intérieur du *git directory* du projet en cours. -Ce dernier prône bien entendu sur ``~/.gitconfig`` quand une variable -a des valeurs différentes dans ``~/.gitconfig`` et ``.git/config``. - -Vous voilà paré pour créer votre premier dépôt `Git`_ -mais avant de voir comment faire des nouveaux commits, -il est impératif de comprendre ce qu'est la *staging area*. - -Il y a 3 états dans lequel un fichier peut-être, - - il peut être dans le *working directory*, - c'est à dire que c'est le fichier tel qu'il est actuellement dans le code; - - il peut être dans la *staging area*, - c'est à dire que ses changements seront pris en compte dans le prochain - commit; - - et il peut être dans le *git directory*, c'est à dire sauvegardé dans - un commit à l'intérieur du dossier ``.git``. - -Pour committer des changements, on les mets d'abord dans la -*staging area* puis on commit. -Cette flexibilité permet de ne pas committer -tout les changements du *working directory*. - -Voyons tout ça avec un programme exemple qui affiche en LaTex -la somme des entiers de :math:`1` à :math:`n`. -On va utiliser les commandes - - * `git-init(1)`_ qui permet de transformer un projet en dépôt `Git`_ - (tout est stoqué dans le dossier ``.git``); - * `git-diff(1)`_ qui donne la différence entre l'état des fichiers dans le - *working directory* avec leur état dans le *git directory* - au commit actuel; - * `git-status(1)`_ qui affiche les fichiers modifiés et ceux qui vont être - commités; - * `git-add(1)`_ qui spécifie quels fichiers doivent faire partie du prochain - commit en les ajoutant à la *staging area*; - * `git-commit(1)`_ qui commit les fichiers dans la *staging area*; - * et `git-log(1)`_ qui montre tous les commits de l'historique. - -La première version sera la suivante - -.. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - - int main (int argc, char *argv[]) { - long int sum = 0, i, n = 42; - for (i = 1; i <= n; i++) { - sum += i; - } - printf("\\sum_{i=1}^{%ld} i = %ld\n", n, sum); - return EXIT_SUCCESS; - } - -Ce programme fonctionne comme suit - -.. code-block:: bash - - $ gcc main.c - $ ./a.out - \sum_{i=1}^{42} i = 903 - -On va sauvegarder un premier commit contenant cette version de ``main.c`` - -`git-init(1)`_ permet d'initialiser le dépôt `Git`_. -`git-status(1)`_ analyse le contenu du répertoire. -Il indique que le fichier ``main.c`` n'est pas suivi par `Git`_ (`untracked`). -Ce fichier est ajouté avec la commande `git-add(1)`_. -`git-commit(1)`_ sauvegarde cette version du code dans un commit -dont le commentaire, spécifié avec l'option ``-m``, est *First commit*. - -.. code-block:: bash - - $ git init - Initialized empty Git repository in /path/to/project/.git/ - $ git status - # On branch master - # - # Initial commit - # - # Untracked files: - # (use "git add <file>..." to include in what will be committed) - # - # main.c - nothing added to commit but untracked files present (use "git add" to track) - $ git add main.c - $ git status - # On branch master - # - # Initial commit - # - # Changes to be committed: - # (use "git rm --cached <file>..." to unstage) - # - # new file: main.c - # - $ git commit -m "First commit" - [master (root-commit) 3d18efe] First commit - 1 file changed, 11 insertions(+) - create mode 100644 main.c - $ git log - commit 3d18efe4df441ebe7eb2b8d0b78832a3861dc05f - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 25 15:32:42 2013 +0200 - - First commit - -Modifions maintenant le programme pour qu'il prenne la valeur de -:math:`n` dans ``argv``. -Si on compile le programme après modification, et qu'on exécute avec -en argument :math:`10` puis :math:`9.75`, on obtient ce qui suit - -.. code-block:: bash - - $ gcc main.c - $ ./a.out 10 - \sum_{i=1}^{10} i = 55 - $ ./a.out 9.75 - $ echo $? - 1 - -On peut maintenant voir avec `git-status(1)`_ que le fichier ``main.c`` -a été modifié - -.. code-block:: bash - - $ git status - # On branch master - # Changes not staged for commit: - # (use "git add <file>..." to update what will be committed) - # (use "git checkout -- <file>..." to discard changes in working directory) - # - # modified: main.c - # - no changes added to commit (use "git add" and/or "git commit -a") - -Avec `git-diff(1)`_, on peut voir quelles sont les lignes qui ont été -retirées (elles commencent par un ``-``) et celles qui ont été ajoutées -(elles commencent par un ``+``). - -.. code-block:: diff - - $ git diff - diff --git a/main.c b/main.c - index 86601ed..a9e4c4a 100644 - --- a/main.c - +++ b/main.c - @@ -2,7 +2,12 @@ - #include <stdlib.h> - - int main (int argc, char *argv[]) { - - long int sum = 0, i, n = 42; - + long int sum = 0, i, n; - + char *end = NULL; - + n = strtol(argv[1], &end, 10); - + if (*end != '\0') { - + return EXIT_FAILURE; - + } - for (i = 1; i <= n; i++) { - sum += i; - } - -Ajoutons ``main.c`` aux modifications à mettre dans le prochain commit puis -créons ce commit - -.. code-block:: bash - - $ git add main.c - $ git commit -m "Read n from argv" - [master 56ce59c] Read n from argv - 1 file changed, 6 insertions(+), 1 deletion(-) - -On peut maintenant voir le nouveau commit dans l'historique affiché par -`git-log(1)`_ - -.. code-block:: bash - - $ git log - commit 56ce59c54726399c18b3f87ee23a45cf0d7f015d - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 25 15:37:51 2013 +0200 - - Read n from argv - - commit 3d18efe4df441ebe7eb2b8d0b78832a3861dc05f - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 25 15:32:42 2013 +0200 - - First commit - -On va maintenant s'occuper d'un *segmentation fault* qui arrive -quand il n'y a pas d'argument. - -.. code-block:: bash - - $ gcc main.c - $ ./a.out - Segmentation fault (core dumped) - -Pour cela, on va simplement vérifier la valeur de ``argc`` et utiliser :math:`42` comme -valeur par défaut. -`git-diff(1)`_ nous permet de voir les changements qu'on a fait - -.. code-block:: diff - - $ git diff - diff --git a/main.c b/main.c - index a9e4c4a..e906ea1 100644 - --- a/main.c - +++ b/main.c - @@ -2,11 +2,13 @@ - #include <stdlib.h> - - int main (int argc, char *argv[]) { - - long int sum = 0, i, n; - + long int sum = 0, i, n = 42; - char *end = NULL; - - n = strtol(argv[1], &end, 10); - - if (*end != '\0') { - - return EXIT_FAILURE; - + if (argc > 1) { - + n = strtol(argv[1], &end, 10); - + if (*end != '\0') { - + return EXIT_FAILURE; - + } - } - for (i = 1; i <= n; i++) { - sum += i; - -On va maintenant committer ces changement -dans un commit au commentaire *Fix SIGSEV* - -.. code-block:: bash - - $ git add main.c - $ git commit -m "Fix SIGSEV" - [master 7a26c63] Fix SIGSEV - 1 file changed, 6 insertions(+), 4 deletions(-) - $ git log - commit 7a26c6338c38614ce1c4ff00ac0a6895b57f15cb - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 25 15:39:49 2013 +0200 - - Fix SIGSEV - - commit 56ce59c54726399c18b3f87ee23a45cf0d7f015d - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 25 15:37:51 2013 +0200 - - Read n from argv - - commit 3d18efe4df441ebe7eb2b8d0b78832a3861dc05f - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 25 15:32:42 2013 +0200 - - First commit - -Travailler à plusieurs sur un même projet -######################################### - -`Git`_ est déjà un outil très pratique à utiliser seul mais c'est quand -on l'utilise pour se partager du code qu'il devient vraiment indispensable. -On se partage le code par l'intermédiaire de *remotes*. -Ce sont en pratique des serveurs auxquels on peut avoir l'accès lecture et/ou -écriture. -On va traiter ici le cas où deux développeurs, Alice et Bob, -ont l'accès lecture et écriture. - -Alice va créer le projet avec - -.. code-block:: bash - - $ git init - Initialized empty Git repository in /path/to/project/.git/ - -puis elle créera une *remote*, c'est à dire un autre dépôt `Git`_ que celui -qu'ils ont en local, avec lequel ils vont pouvoir synchroniser leur -historique. -Supposons qu'ils aient un projet *projectname* sur Github. -Vous pouvez créer le *remote* comme suit - -.. code-block:: bash - - $ git remote add https://github.com/alice/projectname.git - -Ensuite, vous pourrez obtenir les modifications de l'historique du *remote* -avec ``git pull origin master`` -et ajouter vos modifications avec ``git push origin master``. - -Si vous exécutez ``git pull origin master``, que vous faites quelques -commits et puis que vous essayer de mettre *origin* à jour avec -``git push origin master``, -il faut qu'aucun autre développeur n'ait pushé de modification entre temps. -S'il en a pushé, `Git`_ ne saura pas effectuer votre *push*. -Il vous faudra alors faire un *pull*. -`Git`_ tentera alors de fusionner vos changements avec ceux d'*origin*. -Si ces derniers sont à une même ligne d'un même fichier, il vous demandera -de résoudre le conflit vous-même. -Il est important pour cela que vous ayez commité vos changements avant -le *pull* sinon `Git`_ l'abandonnera car il ne sait que fusionner des commits. -C'est à dire que ce qu'il y a dans le *git directory*, -pas ce qu'il y a dans le *working directory* ni dans la *staging area*. - -Prenons un exemple où Bob *push* en premier puis Alice doit résoudre -un conflit. -Alice commence avec le fichier ``main.c`` suivant - -.. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - - int main (int argc, char *argv[]) { - } - -Elle fait le premier commit du projet - -.. code-block:: bash - - $ git add main.c - $ git commit -m "Initial commit" - [master (root-commit) 80507e3] Initial commit - 1 file changed, 5 insertions(+) - create mode 100644 main.c - -et va maintenant le *pusher* sur le serveur - -.. code-block:: bash - - $ git push origin master - Counting objects: 3, done. - Delta compression using up to 4 threads. - Compressing objects: 100% (2/2), done. - Writing objects: 100% (3/3), 282 bytes, done. - Total 3 (delta 0), reused 0 (delta 0) - To https://github.com/alice/projectname.git - * [new branch] master -> master - -Bob clone alors le projet pour en avoir une copie en local -ainsi que tout l'historique et la remote *origin* déjà configurée - -.. code-block:: bash - - $ git clone https://github.com/alice/projectname.git - Cloning into 'projectname'... - remote: Counting objects: 3, done. - remote: Compressing objects: 100% (2/2), done. - remote: Total 3 (delta 0), reused 3 (delta 0) - Unpacking objects: 100% (3/3), done. - $ git remote -v - origin https://github.com/alice/projectname.git (fetch) - origin https://github.com/alice/projectname.git (push) - -Ensuite, il ajoute ses modifications - -.. code-block:: diff - - $ git diff - diff --git a/main.c b/main.c - index bf17640..0b0672a 100644 - --- a/main.c - +++ b/main.c - @@ -2,4 +2,5 @@ - #include <stdlib.h> - - int main (int argc, char *argv[]) { - + return 0; - } - -et les commit - -.. code-block:: bash - - $ git add main.c - $ git commit -m "Add a return statement" - [master 205842a] Add a return statement - 1 file changed, 1 insertion(+) - -et les push sur le serveur - -.. code-block:: bash - - $ git push origin master - Counting objects: 5, done. - Delta compression using up to 4 threads. - Compressing objects: 100% (2/2), done. - Writing objects: 100% (3/3), 291 bytes, done. - Total 3 (delta 1), reused 0 (delta 0) - To https://github.com/alice/projectname.git - 80507e3..205842a master -> master - -Pendant ce temps là , Alice ne se doute de rien et -fait ses propres modifications - -.. code-block:: diff - - $ git diff - diff --git a/main.c b/main.c - index bf17640..407cd8a 100644 - --- a/main.c - +++ b/main.c - @@ -2,4 +2,5 @@ - #include <stdlib.h> - - int main (int argc, char *argv[]) { - + return EXIT_SUCCESS; - } - -puis les commit - -.. code-block:: bash - - $ git add main.c - $ git commit -m "Add missing return statement" - [master 73c6a3a] Add missing return statement - 1 file changed, 1 insertion(+) - -puis essaie de les pusher - -.. code-block:: bash - - $ git push origin master - To https://github.com/alice/projectname.git - ! [rejected] master -> master (non-fast-forward) - error: failed to push some refs to 'https://github.com/alice/projectname.git' - hint: Updates were rejected because the tip of your current branch is behind - hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') - hint: before pushing again. - hint: See the 'Note about fast-forwards' in 'git push --help' for details. - -mais `Git`_ lui fait bien comprendre que ce n'est pas possible. -En faisant le *pull*, on voit que `Git`_ fait de son mieux pour -fusionner les changements mais qu'il préfère nous laisser -choisir quelle ligne est la bonne - -.. code-block:: bash - - $ git pull origin master - remote: Counting objects: 5, done. - remote: Compressing objects: 100% (1/1), done. - remote: Total 3 (delta 1), reused 3 (delta 1) - Unpacking objects: 100% (3/3), done. - From https://github.com/alice/projectname - 80507e3..205842a master -> origin/master - Auto-merging main.c - CONFLICT (content): Merge conflict in main.c - Automatic merge failed; fix conflicts and then commit the result. - -Il marque dans ``main.c`` la ligne en conflit et ce qu'elle vaut -dans les deux commits - -.. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - - int main (int argc, char *argv[]) { - <<<<<<< HEAD - return EXIT_SUCCESS; - ======= - return 0; - >>>>>>> 205842aa400e4b95413ff0ed21cfb1b090a9ef28 - } - -On peut retrouver les fichiers en conflits dans -``Unmerged paths`` - -.. code-block:: bash - - $ git status - # On branch master - # You have unmerged paths. - # (fix conflicts and run "git commit") - # - # Unmerged paths: - # (use "git add <file>..." to mark resolution) - # - # both modified: main.c - # - no changes added to commit (use "git add" and/or "git commit -a") - -Il nous suffit alors d'éditer le fichier pour lui donner le contenu -de la fusion - -.. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - - int main (int argc, char *argv[]) { - return EXIT_SUCCESS; - } - -puis de le committer - -.. code-block:: bash - - $ git add main.c - $ git commit - [master eede1c8] Merge branch 'master' of https://github.com/alice/projectname - -On peut alors mettre le serveur à jour - -.. code-block:: bash - - $ git push origin master - Counting objects: 8, done. - Delta compression using up to 4 threads. - Compressing objects: 100% (3/3), done. - Writing objects: 100% (4/4), 478 bytes, done. - Total 4 (delta 2), reused 0 (delta 0) - To https://github.com/alice/projectname.git - 205842a..eede1c8 master -> master - -Paul peut alors récupérer les changements avec - -.. code-block:: bash - - $ git pull origin master - remote: Counting objects: 8, done. - remote: Compressing objects: 100% (1/1), done. - remote: Total 4 (delta 2), reused 4 (delta 2) - Unpacking objects: 100% (4/4), done. - From https://github.com/alice/projectname - 205842a..eede1c8 master -> origin/master - Updating 205842a..eede1c8 - Fast-forward - main.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -La plupart des fusions ne demande pas d'intervention manuelle mais -dans les cas comme celui-ci, -`Git`_ n'a pas d'autre choix que de nous demander notre avis. - -Contribuer au syllabus -###################### - -Dans le cas du syllabus, vous n'avez pas l'accès écriture. -La manière dont Github fonctionne pour règler ça c'est que vous *forkez* le -projet principal. -C'est à dire que vous en faites un copie indépendante à votre nom. -À celle là vous avez l'accès écriture. -Vous allez ensuite soumettre vos changements sur celle là puis les -proposer à travers l'interface de Github qu'on appelle *Pull request*. -Conventionnellement, on appelle la *remote* du dépôt principal *upstream* -et la votre *origin*. - -Commencez donc par vous connecter sur Github, allez à -l'`adresse du code du syllabus -<https://github.com/obonaventure/SystemesInformatiques/>`_ et cliquez -sur *Fork*. - -Vous pouvez maintenant obtenir le code du syllabus avec la commande -`git-clone(1)`_ -(remplacez ``username`` par votre nom d'utilisateur sur Github) - -.. code-block:: bash - - $ git clone https://github.com/username/SystemesInformatiques.git - -Vous pouvez alors faire les changements que vous désirez puis les committer -comme expliqué à la section précédente. -Il est utile de garder le code à jour avec *upstream*. -Pour cela, il faut commencer par ajouter la remote - -.. code-block:: bash - - $ git remote add upstream https://github.com/obonaventure/SystemesInformatiques.git - -À chaque fois que vous voudrez vous mettre à jour, utilisez `git-pull(1)`_ - -.. code-block:: bash - - $ git pull upstream master - -Une fois vos changements commités, vous pouvez les ajouter à *origin* avec -`git-push(1)`_ - -.. code-block:: bash - - $ git push origin master - -Votre amélioration devrait normalement être visible via -`https://github.com/obonaventure/SystemesInformatiques/network <https://github.com/obonaventure/SystemesInformatiques/network>`_. -Vous pouvez maintenant aller sur Github à la page de votre fork et -cliquer sur *Pull Requests* puis *New pull request* et expliquer -vos changements. - -Si plus tard vous voulez encore modifier le syllabus, -il vous suffira de mettre à jour le code en local - -.. code-block:: bash - - $ git pull upstream master - -committer vos changements, les ajouter à *origin* - -.. code-block:: bash - - $ git push origin master - -puis faire un nouveau pull request. - -Utilisation non-linéaire de Git -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -`Git`_ peut créer un historique non-linéaire semblable à celui ci-dessous. -C'est un exemple un peu exagéré de non-linéarité mais il est -pédagogiquement intéressant. - -Cet historique forme un graphe orienté, -c'est à dire que les arêtes ont une direction. - -Les noeuds sont de 3 types, - - en bleu, on a les commits, c'est comme un snapshot, c'est une - description complète de l'état de tous les fichiers pris en - charge par `Git`_ à un moment donné. - Ces commits sont - - - soit construits comme la version suivante d'un autre commit - dans lequel cas il y a une seul arête partant du noeud, - - soit construits comme la fusion de deux commits - dans lequel cas il y a deux arêtes partant du noeud. - - Ils sont référés par un hash unique dont le début est affiché - sur la première ligne dans l'image ci-dessous - et non par un nombre - comme pour beaucoup d'autres systèmes de gestion de code - partagé. - Ils ont aussi un commentaire qui est affiché sur la deuxième ligne, - une description (optionnelle), un auteur et une date; - - en rouge, on a les branches, le nom est un peu trompeur car - c'est juste un pointeur vers un commit. - On pourrait tout à fait avoir un graphe non-linéaire sans - utiliser de branches, - c'est juste plus facile de référer les commits par le nom - d'une branche qui y réfère plutôt que par un hash sans signification; - - en vert, ce sont les tags, un tag est comme une branche qui - ne bouge pas, c'est à dire qu'il réfère toujours vers le même - commit. - C'est utile par exemple pour spécifier des versions d'un projet. - - en jaune, on a ``HEAD``, c'est un pointeur vers la branche active. - -.. figure:: figures/graph.png - :align: center - - Exemple d'historique. - -Manipulation de l'historique à travers les commandes Git -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Pour initialiser un dépôt `Git`_, -il suffit d'utiliser la commande `git-init(1)`_ - -.. code-block:: bash - - $ git init - Initialized empty Git repository in /path/to/project/.git/ - -À ce moment, l'historique est vide. - -Staging area -############ - -Commençons par définir les 4 statuts qu'un fichier peut avoir - - il peut être non-traqué par `Git`_, c'est à dire qu'il n'est - ni dans le *git directory*, ni dans la *staging area*. - C'est un fichier que le autres développeurs peuvent ne même pas être - au courant que vous l'avez dans votre *working directory*. - C'est souvent le cas des fichiers qui sont générés automatiquement, - et dont leur changement n'a donc aucun intérêt à être suivit. - Dans le cas d'un projet en C, - on aura les fichiers résultant de la compilation comme les fichiers objets - ``*.o``; - - il peut être non-modifié, c'est à dire que son état dans le - *working directory* est le même que celui dans le *git directory* au - commit actif (référencé par la branche active, - celle référencée par ``HEAD``) ainsi que celui dans la *staging area* - s'il y est; - - il peut être modifié, c'est à dire que sont état est différent dans le - *working directory* que celui dans le *git directory* au commit actif - ainsi que celui dans la *staging area* si il y est. - - il peut être *staged*, c'est à dire qu'il est dans la *staging area* - -Par exemple, prenons un fichier non-modifié. -Après des modifications, il a le statut modifié. -Si on le place dans la *staging area*, il acquière le statut *staged*. -Si on le modifie à nouveau, il aura le statut modifié mais -son état avec uniquement les premières modifications aura le statut *staged*. - -Pour obtenir l'information sur le statut de tous les fichiers, -utilisez `git-status(1)`_ - -.. code-block:: bash - - $ git status - # On branch master - # Changes to be committed: - # (use "git reset HEAD <file>..." to unstage) - # - # modified: main.c - # new file: file.c - # - # Changes not staged for commit: - # (use "git add <file>..." to update what will be committed) - # (use "git checkout -- <file>..." to discard changes in working directory) - # - # modified: main.c - # modified: Makefile - # - # Untracked files: - # (use "git add <file>..." to include in what will be committed) - # - # main.o - # file.o - # a.out - -Dans la partie ``Changes to be committed``, -on a les fichiers au statut *staged*. -Dans la partie ``Changes not staged for commit``, -on a les fichiers au statut modifié. -Les fichiers au statut non-modifié ne sont pas affichés et ceux non-trackés -sont dans la partie ``Untracked files`` sauf si on a spécifiquement demandé -de les ignorer dans le fichier ``.gitignore``. -En effet, on peut s'imaginer que dans un gros projet, la partie -``Untracked files`` peut devenir assez imposante et on ne sait plus -distinguer les fichiers qu'il faut penser à ajouter de ceux qu'il faut -ignorer une fois de plus. - -Lorsque `Git`_ voit un fichier ``.gitignore`` dans un dossier, -il en prend compte pour tous ses fichiers ainsi que tous les fichiers des -sous-dossiers. -La syntaxe est très simple, on spécifie un fichier par ligne, -on utilise un ``*`` pour spécifier n'importe -quelle chaine de charactères, les commentaires commencent par un ``#`` -comme en Bash et si la ligne commence par un ``!``, -on demande de ne pas ignorer ce fichier à l'intérieur du dossier même -si un ``.gitignore`` d'un dossier parent dit le contraire. -Dans notre exemple, ``.gitignore`` aura le contenu suivant - -.. code-block:: bash - - # Object files - *.o - # Executable - a.out - -Pour faire passer un fichier du statut modifié au status *staged*, -il faut utiliser `git-add(1)`_. -Lorsqu'on lui donne en argument un fichier modifié, elle ajoute sa version -avec toutes les modifications dans la *staging area*. -Si on lui donne un dossier, -elle ajoute tous les fichiers au statut modifié ou -au statut non-traqué qui ne sont pas ignoré par `Git`_. - -.. code-block:: bash - - $ git add . - -On peut aussi donner l'option ``-p`` à `git-add(1)`_, -`Git`_ demandera alors pour chaque bloc de modification s'il faut le prendre -en compte puis ajoutera dans la *staging area* un fichier avec toutes -ces modifications. -C'est très utile si on a fait différents changements dans un fichier mais -qu'on ne veut pas tout committer ou qu'on veut les séparer en différents -commits parce qu'ils font des choses différentes. -Par exemple, si j'ai un fichier ``main.c`` dans lequel j'ai rajouté -un ``return EXIT_SUCCESS;`` et un commentaire en début de fichier -mais que je n'ai envie que de faire passer le ``return EXIT_SUCCESS;`` -dans la *staging area*, il me suffit de faire - -.. code-block:: diff - - $ git add -p main.c - diff --git a/main.c b/main.c - index 7402a78..8381ce0 100644 - --- a/main.c - +++ b/main.c - @@ -1,3 +1,7 @@ - +/* - + * Print 'Hello world!' - + */ - + - // includes - #include <stdio.h> - #include <stdlib.h> - Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? n - @@ -5,4 +9,5 @@ - // main function - int main () { - printf("Hello world!\n"); - + return EXIT_SUCCESS; - } - Stage this hunk [y,n,q,a,d,/,K,g,e,?]? y - -On peut aussi faire retirer des fichier de la *staging area* avec la commande -`git-reset(1)`_. -``git reset`` les retire tous, -``git reset main.c`` retire uniquement ``main.c`` et on a à nouveau -l'option ``-p`` pour ne sélectionner qu'une partie. -Par exemple, si dans l'exemple précédent j'avais mis ``main.c`` entièrement -dans la *staging area* mais que je veux comme précédemment uniquement -mettre le ``return EXIT_SUCCESS;``, je peux soit faire ``git reset main.c`` -et puis faire ``git add -p main.c`` comme tout à l'heure, soit faire - -.. code-block:: diff - - $ git reset -p main.c - diff --git a/main.c b/main.c - index 7402a78..8381ce0 100644 - --- a/main.c - +++ b/main.c - @@ -1,3 +1,7 @@ - +/* - + * Print 'Hello world!' - + */ - + - // includes - #include <stdio.h> - #include <stdlib.h> - Unstage this hunk [y,n,q,a,d,/,j,J,g,e,?]? y - @@ -5,4 +9,5 @@ - // main function - int main () { - printf("Hello world!\n"); - + return EXIT_SUCCESS; - } - Unstage this hunk [y,n,q,a,d,/,K,g,e,?]? n - -Avant d'utiliser `git-add(1)`_ et `git-reset(1)`_, -il est utile de vérifier plus précisément ce qu'on a changé dans -les fichiers que `git-status(1)`_ nous dit qu'on a modifié. -C'est une des utilités de la commande `git-diff(1)`_. -Par défaut, elle calcule les changements entre le *working directory* -et la *staging area*, mais on peut aussi lui demander de regarder les -changements entre deux commits. -Si on ne lui dit rien, elle donne les changements de tous les fichiers mais -on peut lui demander de se limiter à un fichier ou à un dossier spécifique. -Dans notre exemple, - -.. code-block:: diff - - $ git diff main.c - diff --git a/main.c b/main.c - index 07e26bf..8381ce0 100644 - --- a/main.c - +++ b/main.c - @@ -1,3 +1,7 @@ - +/* - + * Print 'Hello world!' - + */ - + - // includes - #include <stdio.h> - #include <stdlib.h> - -On peut aussi lui demander de générer un patch, -c'est à dire un fichier qui contient les informations nécessaires pour -appliquer ce changement chez un autre développeur. -Ce n'est pas la manière la plus pratique de se partager les changements -comme on verra avec les *remotes* mais c'est utilisé. - -Commit -###### - -Voyons à présent comment committer -les fichiers présents dans la *staging area*. -Comme vu précédemment, -il y a toujours un commit actif, -c'est comparativement à ce dernier que `Git`_ détermine si un fichier est -modifié ou pas. - -Lorqu'on choisit de committer ce qu'il y a dans la *staging area*, -un nouveau commit est créé avec le même état que le précédent plus les -modifications des fichiers au statut *staged*. -Ce nouveau commit a une référence vers le commit précédent. -La branche active change alors de référence et pointe alors vers le nouveau -commit. -Aucune autre branche ne bouge, même celle qui référençait l'ancien commit. -On peut retenir qu'*il n'y a toujours que la branche active qui est modifée*. - -Dans notre exemple, -l'historique était comme l'image ci-dessous - -.. figure:: figures/hello_without_return.png - :align: center - - Historique avant le commit - - -.. code-block:: bash - - $ git commit -m "Add return" - [master 6e2f599] Add return - 1 file changed, 1 insertion(+) - -Après le commit, il est comme l'image ci-dessous. -On voit que la branche active a avancé alors que les autres n'ont pas bougé. - -.. figure:: figures/hello_with_return.png - :align: center - - Historique après le commit - -Lorsqu'on fait ``gcc main.c`` un fichier ``a.out`` est généré. -Il est inutile de suivre ses changements à travers `Git`_ car ses modifications -ne sont que l'image des modifications de ``main.c``. -De plus, ce n'est pas un fichier texte donc `Git`_ ne verra pas ce qui -a changé, il fera comme si tout ``a.out`` avait changé. - -.. code-block:: bash - - $ echo "a.out" > .gitignore - $ git status - # On branch master - # Changes not staged for commit: - # (use "git add <file>..." to update what will be committed) - # (use "git checkout -- <file>..." to discard changes in working directory) - # - # modified: main.c - # - # Untracked files: - # (use "git add <file>..." to include in what will be committed) - # - # .gitignore - no changes added to commit (use "git add" and/or "git commit -a") - $ git add .gitignore - $ git commit -m "Add .gitignore" - [master b14855e] Add .gitignore - 1 file changed, 1 insertion(+) - create mode 100644 .gitignore - -.. figure:: figures/hello_with_gitignore.png - :align: center - - Historique l'ajout de .gitignore - -Souvent, on a envie de committer tous les fichiers au statut *modifié*. -Si on fait ``git add .``, on ajoutera aussi tous les fichiers non-traqués -qui ne sont pas ignorés, c'est à dire ceux affichés par ``git status`` -en dessous de ``Untracked files``. -Si ça pose problème, on peut utiliser l'option ``-a`` de `git-commit(1)`_ -qui inclut tous les fichiers au statut *modifié* en plus de ceux dans la -*staging area* pour le commit. -On verra des exemples d'utilisation par après. - -Branching -~~~~~~~~~ - -Lorsqu'on exécute ``git init``, une branche au nom de ``master`` est créée. -Beaucoup de petits projets se contentent de cette branche et n'en font pas -d'autre mais c'est passer à côté d'un des aspects les plus pratiques de `Git`_. - -Une utilisation classique des branches sont les *feature branches*. -C'est à dire qu'on a la branche principale ``master`` qui contient un code -de toutes les fonctionnalités terminées. -Quand on essaie d'ajouter une -fonctionnalité (*feature* en anglais), on crée une nouvelle branche qu'on -ne fusionne avec ``master`` que lorsque le code est terminé. -Ça permet de pouvoir implémenter plusieurs fonctionnalités en parallèle sans -être gêné par l'instabilité du code créé par les fonctionnalités -en développement. -Ceci est encore plus vrai quand on travaille à plusieurs sur un même code -et sur les même fonctionnalités. - -Par exemple, supposons que vous soyez à 2 à travailler sur un projet. -L'un travaille sur une fonctionnalité, l'autre sur une autre. -À la base, le code sans ces deux fonctionnalités marchait mais comme -vous êtes en train d'en implémenter une nouvelle chacun, le code ne marche -chez aucun des deux développeurs. - -Créer une branche -################# - -Pour créer une branche, on utilise la commande `git-branch(1)`_. -`git-branch(1)`_ sert aussi à montrer la liste des branches avec -le caractère ``*`` devant la branche active. - -Par exemple, supposons qu'on veuille ajouter à notre exemple la possibilité -de changer le message un caractère plus universel pour que le programme soit -utilisable pour tout citoyen de l'univers. -Mais qu'on veut aussi ajouter un aspect pratique en rajoutant le pid -du processus et du processus parent. - -On commencera par créer deux *feature branches*, ``pid`` et ``universal``. -On supprime la branche ``hello`` qui servait juste à montrer qu'elle ne bougeait -pas quand on committait car ce n'était pas la branche active. - -.. code-block:: bash - - $ git branch - hello - * master - $ git branch pid - $ git branch universal - $ git branch -d hello - Deleted branch hello (was 76c1677). - $ git branch - * master - pid - universal - -L'historique ressemble maintenant à la figure suivante. -On voit que `git-branch(1)`_ ne modifie pas la branche active. - -.. figure:: figures/hello_branches.png - :align: center - - Historique après la création de ``pid`` et ``universal`` et - la suppression de ``hello`` - -On va d'ailleurs finalement committer notre commentaire en début de fichier -dans ``master``. On obtient alors la figure suivante - -.. code-block:: bash - - $ git s - # On branch master - # Changes not staged for commit: - # (use "git add <file>..." to update what will be committed) - # (use "git checkout -- <file>..." to discard changes in working directory) - # - # modified: main.c - # - no changes added to commit (use "git add" and/or "git commit -a") - $ git commit -a -m "Add intro" - [master c1f2163] Add intro - 1 file changed, 4 insertions(+) - -.. figure:: figures/hello_intro.png - :align: center - - Historique après avoir ajouté un commentaire d'introduction - -Changer la branche active -######################### - -On va maintenant voir comment changer la branche active, -c'est à dire la branche vers laquelle ``HEAD`` pointe. -Pour faire cela, on utilise `git-checkout(1)`_. - -.. code-block:: bash - - $ git checkout pid - Switched to branch 'pid' - $ git branch - master - * pid - universal - -`git-checkout(1)`_ ne fait pas que changer la branche active, il modifie -aussi le *working directory* pour refléter le commit référencé par la nouvelle -branche active. -Après le *checkout*, le contenu de ``main.c`` vaut - -.. code-block:: c - - // includes - #include <stdio.h> - #include <stdlib.h> - - // main function - int main () { - printf("Hello world!\n"); - return EXIT_SUCCESS; - } - -S'il y a des fichiers modifiés au moment du `git-checkout(1)`_, -`Git`_ va faire du mieux qu'il peut pour changer de branche en gardant -vos modifications mais si le fichier modifié est justement un fichier -qui diffère entre l'ancienne branche active et la nouvelle branche active, -`Git`_ va abandonner le changement de branche car mettre ce fichier à -la version de la nouvelle branche écraserait les modifications. - -Les changements doivent alors soit être committés, -soit sauvegardés par `git-stash(1)`_ (détailllé plus loin), -soit abandonnés. -Pour abandonner des changements et revenir à la version du commit référencé -par la branche active, on utilise aussi `git-checkout(1)`_. -Avec `Git`_, pas mal de commandes ont de multiples usages. - -Dans notre exemple, si on change ``main.c``, cela pose problème car il -diffère entre ``master`` et ``pid`` mais -si on change ``.gitignore``, ça n'en pose pas. -Il nous montre d'ailleurs que ``.gitignore`` a des modifications et qu'il -les a laissées lorsqu'on exécute ``git checkout master`` - -.. code-block:: bash - - $ echo "42" >> main.c - $ echo "42" >> .gitignore - $ git checkout master - error: Your local changes to the following files would be overwritten by checkout: - main.c - Please, commit your changes or stash them before you can switch branches. - Aborting - $ git checkout main.c - $ git checkout master - M .gitignore - Switched to branch 'master' - $ git checkout .gitignore # Retirons ce "42", c'était juste pour l'exemple - -Fusionner des branches -###################### - -Lorsqu'on fusionne deux branches, -le rôle de chaque branche n'est pas le même. -Il y a la branche active et la branche qu'on veut fusionner. -Par la règle *il n'y a toujours que la branche active qui est modifée*, -on sait que la branche qu'on veut fusionner ne va pas bouger. -Le but de la fusion, c'est de déplacer la branche active vers un commit -contenant les modifications faites par le commit référencé par la branche -active ainsi que celles faites par celui référencé par la branche qu'on veut -fusionner. -Par "modification", j'entends, les modifications faites depuis le premier -commit parent commun entre les deux commits en question. -Deux cas peuvent se présenter - - - soit ce commit parent est le commit référencé par la branche active, - dans lequel cas, on dira que la fusion est *fast-forward*. - `Git`_ fera alors simplement la branche active pointer vers le commit - référencé par la branche qu'on veut fusionner; - - soit ce commit parent est le commit référencé par la branche qu'on veut - fusionner, dans lequel cas, `Git`_ ne fera rien car le commit référencé - par la branche active contient déjà les modifications de l'autre puisque - c'est un de ses commits parents; - - soit ce commit est différent des deux commits en question. - Dans ce cas, `Git`_ créera un commit ayant deux parents, les deux commits - en questions et tentera de fusionner toutes les modifications depuis - le commit parent commun. - Bien entendu, plus ce commit commun est loin, plus il y aura de modification - et plus ce sera difficile. - C'est pourquoi on conseille de souvent fusionner la branche principale - pour éviter que la fusion de la *feature branch* soit trop compliquée - lorsque la fonctionnalité sera terminée. - - Là encore, il y a deux cas - - - soit `Git`_ arrive à tout fusionner, c'est à dire que les modifications - sont soit dans des fichiers différents, soit à des endroits bien - distincts d'un même fichier; - - soit il n'y arrive pas. Il fusionnera alors le plus possible lui-même - et marquera dans le fichier les confits à gérer à la main. - Il faudra alors ouvrir le fichier et régler puis avertir à `Git`_ - qu'il peut terminer la fusion. - En peut aussi dire qu'on abandonne la fusion et `Git`_ retire tout - ce qu'il a fait pour la fusion. - - Dans les deux cas, si on abandonne pas, `Git`_ créera ce commit - de fusion et fera pointer la branche active vers ce dernier. - -Il est important de réinsister sur le fait que -la branche non-active n'a pas été modifiée par la fusion. -Par contre si on la rend active et -qu'on demande de la fusionner avec l'ancienne branche active, -ce sera nécessairement une fusion *fast-forward*. - -`git-merge(1)`_ s'occupe de fusionner les branches -(fusionner se dit *merge* en anglais), -on lui donne en argument la branche à fusionner et la branche active est -bien entendu celle référencée par ``HEAD`` qui a été définie par -les appels à `git-checkout(1)`_. - -Dans notre exemple, on peut faire avancer ``pid`` et ``universal`` au niveau -de ``master`` avec une fusion *fast-forward*. - -.. code-block:: bash - - $ git checkout pid - Switched to branch 'pid' - $ git merge master - Updating b14855e..c1f2163 - Fast-forward - main.c | 4 ++++ - 1 file changed, 4 insertions(+) - $ git checkout universal - Switched to branch 'universal' - $ git merge master - Updating b14855e..c1f2163 - Fast-forward - main.c | 4 ++++ - 1 file changed, 4 insertions(+) - -On a alors la figure suivante - -.. figure:: figures/hello_2ff.png - :align: center - - Historique après avoir mis ``pid`` et ``universal`` à jour - -Commençons maintenant à développer notre compatibilité -avec le reste de l'univers. -On va rajouter une option ``--alien`` qui transforme le ``Hello world!`` -en ``Hello universe!`` - -.. code-block:: diff - - $ git diff - diff --git a/main.c b/main.c - index 8381ce0..8ccfa11 100644 - --- a/main.c - +++ b/main.c - @@ -5,9 +5,14 @@ - // includes - #include <stdio.h> - #include <stdlib.h> - +#include <string.h> - - // main function - -int main () { - - printf("Hello world!\n"); - +int main (int argc, char *argv[]) { - + if (strncmp(argv[1], "--alien", 8) == 0) { - + printf("Hello universe!\n"); - + } else { - + printf("Hello world!\n"); - + } - return EXIT_SUCCESS; - } - -Mettons tous les changements des fichiers traqués avec ``-a`` - -.. code-block:: bash - - $ git commit -a -m "Make it universal" - [universal 6c743f6] Make it universal - 1 file changed, 7 insertions(+), 1 deletion(-) - -Ce qui donne l'historique suivant - -.. figure:: figures/hello_make_universal.png - :align: center - - Historique après avoir committé ``Make it universal`` - -On va maintenant ajouter un ``Makefile`` qui compile puis exécute le programme -lorsqu'on écrit ``make``. -Comme un ``Makefile`` exécute la première règle, il suffit de mettre la règle -qui exécute en premier - -.. code-block:: makefile - - run: a.out - ./a.out - a.out: main.c - gcc main.c - -Ainsi, à chaque fois qu'on exécute la commande ``make``, la règle ``run`` -sera exécutée mais avant, ses dépendances donc ``a.out`` sera exécutée -si la date de modification de ``main.c`` -est plus récente que celle de ``a.out``. -Committons cela - -.. code-block:: bash - - $ git checkout master - Switched to branch 'master' - $ git status - # On branch master - # Untracked files: - # (use "git add <file>..." to include in what will be committed) - # - # Makefile - nothing added to commit but untracked files present (use "git add" to track) - $ git add Makefile - $ git commit -m "Add Makefile" - [master c35a8c3] Add Makefile - 1 file changed, 5 insertions(+) - create mode 100644 Makefile - -.. figure:: figures/hello_makefile.png - :align: center - - Historique après avoir committé ``Add Makefile`` - -On voit ici que pour ``pid``, -fusionner ``master`` est *fast-forward* et pas pour *universal*. -C'est ce qu'on va vérifier - -.. code-block:: bash - - $ git checkout universal - Switched to branch 'universal' - $ git merge master - Merge made by the 'recursive' strategy. - Makefile | 5 +++++ - 1 file changed, 5 insertions(+) - create mode 100644 Makefile - -On voit que `Git`_ a su faire la fusion sans notre aide sans problème -car tous les changements étaient dans le ``Makefile`` qui n'existait pas -pour ``universal`` - -.. figure:: figures/hello_universal_makefile.png - :align: center - - Historique après avoir fusionné ``master`` dans ``universal`` - -.. code-block:: bash - - $ git checkout pid - Switched to branch 'pid' - $ git merge master - Updating c1f2163..c35a8c3 - Fast-forward - Makefile | 5 +++++ - 1 file changed, 5 insertions(+) - create mode 100644 Makefile - -`Git`_ nous confirme que c'est *fast-forward* - -.. figure:: figures/hello_pid_makefile.png - :align: center - - Historique après avoir fusionné ``master`` dans ``pid`` - -Tant qu'on est sur la branche ``pid``, -implémentons la fonctionnalité comme suit - -.. code-block:: diff - - $ git diff - diff --git a/main.c b/main.c - index 8381ce0..b9043af 100644 - --- a/main.c - +++ b/main.c - @@ -5,9 +5,11 @@ - // includes - #include <stdio.h> - #include <stdlib.h> - +#include <unistd.h> - - // main function - int main () { - + printf("pid: %u, ppid: %u\n", getpid(), getppid()); - printf("Hello world!\n"); - return EXIT_SUCCESS; - } - -et committons la - -.. code-block:: bash - - $ git commit -a -m "Add pid/ppid info" - [pid eda36d7] Add pid/ppid info - 1 file changed, 2 insertions(+) - -.. figure:: figures/hello_ppid.png - :align: center - - Historique après avoir implémenté ``pid`` - -On peut maintenant fusionner ``pid`` dans master et la supprimer car on -en a plus besoin - -.. code-block:: bash - - $ git checkout master - Switched to branch 'master' - $ git merge pid - Updating c35a8c3..eda36d7 - Fast-forward - main.c | 2 ++ - 1 file changed, 2 insertions(+) - $ git branch -d pid - Deleted branch pid (was eda36d7). - -.. figure:: figures/hello_dpid.png - :align: center - - Historique après avoir fusionné et supprimé ``pid`` - -Retournons sur notre branche ``universal`` et essayons notre ``Makefile`` - -.. code-block:: bash - - $ git checkout universal - Switched to branch 'universal' - $ make - gcc main.c - ./a.out - make: *** [run] Segmentation fault (core dumped) - -Les deux premières lignes sont simplement les commandes que `make(1)`_ exécute. -La troisième est plus inquiètante. -Elle nous avertit que le programme a été terminé par le signal ``SIGSEV``. -C'est dû au fait qu'on ne vérifie pas que ``argv`` ait au moins 2 éléments -avant d'essayer accéder au deuxième élément. - -.. code-block:: diff - - $ git diff - diff --git a/main.c b/main.c - index 8ccfa11..f90b795 100644 - --- a/main.c - +++ b/main.c - @@ -9,7 +9,7 @@ - - // main function - int main (int argc, char *argv[]) { - - if (strncmp(argv[1], "--alien", 8) == 0) { - + if (argc > 1 && strncmp(argv[1], "--alien", 8) == 0) { - printf("Hello universe!\n"); - } else { - printf("Hello world!\n"); - -Ça marche maintenant sans *Segmentation fault* - -.. code-block:: bash - - $ make - gcc main.c - $ ./a.out - Hello world! - $ ./a.out --alien - Hello universe! - $ git commit -a -m "Fix SIGSEV without args" - [universal 6fd2e9b] Fix SIGSEV without args - 1 file changed, 1 insertion(+), 1 deletion(-) - -.. figure:: figures/hello_fix.png - :align: center - - Historique après avoir réparé le ``Segmentation fault`` - -``universal`` est maintenant prêt à être mergée. - -.. code-block:: bash - - $ git checkout master - Switched to branch 'master' - $ git merge universal - Auto-merging main.c - CONFLICT (content): Merge conflict in main.c - Automatic merge failed; fix conflicts and then commit the result. - -Les conflits sont marqués dans ``main.c`` - -.. code-block:: c - - /* - * Print 'Hello world!' - */ - - // includes - #include <stdio.h> - #include <stdlib.h> - <<<<<<< HEAD - #include <unistd.h> - - // main function - int main () { - printf("pid: %u, ppid: %u\n", getpid(), getppid()); - printf("Hello world!\n"); - ======= - #include <string.h> - - // main function - int main (int argc, char *argv[]) { - if (argc > 1 && strncmp(argv[1], "--alien", 8) == 0) { - printf("Hello universe!\n"); - } else { - printf("Hello world!\n"); - } - >>>>>>> universal - return EXIT_SUCCESS; - } - -Il nous faut maintenant éditer ``main.c`` pour résoudre le conflit. -Il n'y a un conflit à un seul endroit du fichier mais le conflit est assez -large, `Git`_ nous montre ce qu'il y a pour ``HEAD`` c'est à dire -la branche active ``master`` et ce qu'il y a pour ``universal``. -On va devoir prendre un peu des deux. - -Si on fait `git-diff(1)`_ par la suite, `Git`_ met en début de ligne un -``+`` ou un ``-`` en premier caractère -si c'est une ligne qui vient de la branche qu'on veut fusionner, -en deuxième caractère si ça vient de la branche active et en premier et -deuxième caractère si ça vient d'aucune des deux pour le ``+``. - -.. code-block:: diff - - $ git diff - diff --cc main.c - index b9043af,f90b795..0000000 - --- a/main.c - +++ b/main.c - @@@ -5,11 -5,14 +5,17 @@@ - // includes - #include <stdio.h> - #include <stdlib.h> - +#include <unistd.h> - + #include <string.h> - - // main function - - int main () { - + int main (int argc, char *argv[]) { - + printf("pid: %u, ppid: %u\n", getpid(), getppid()); - - printf("Hello world!\n"); - ++ - + if (argc > 1 && strncmp(argv[1], "--alien", 8) == 0) { - + printf("Hello universe!\n"); - + } else { - + printf("Hello world!\n"); - + } - return EXIT_SUCCESS; - } - -Il n'y a pas besoin de spécifier de commentaire pour une fusion car -`Git`_ en génère un automatiquement - -.. code-block:: bash - - $ git commit -a - [master 0dd6cd7] Merge branch 'universal' - -.. figure:: figures/hello_merge_universal.png - :align: center - - Historique après avoir fusionné la branche ``universal`` - -On voit que la branche ``universal`` est restée à sa place car ce n'était -pas la branche active. -On peut d'ailleurs maintenant la supprimer - -.. code-block:: bash - - $ git branch -d - Deleted branch universal (was 6fd2e9b). - -Autres commandes utiles -~~~~~~~~~~~~~~~~~~~~~~~ - -Afficher l'historique -##################### - -Pour afficher l'historique, outre l'outil utilisé pour faire les -illustrations de ce cours que vous pouvez retrouver -`https://github.com/blegat/git-dot <https://github.com/blegat/git-dot>`_, -il existe la commande `git-log(1)`_. -Elle est très flexible comme on va le voir. -``git log`` affiche simplement l'historique à partir de ``HEAD`` - -.. code-block:: bash - - $ git log - commit 0dd6cd7e6ecf01b638cd631697bf9690baedcf20 - Merge: eda36d7 6fd2e9b - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 18 15:29:53 2013 +0200 - - Merge branch 'universal' - - Conflicts: - main.c - - commit 6fd2e9bfa199fc3dbca4df87d225e35553d6cd79 - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 18 15:06:14 2013 +0200 - - Fix SIGSEV without args - - commit eda36d79fd48561dce781328290d40990e74a758 - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 18 14:58:29 2013 +0200 - - Add pid/ppid info - - ... - -Mais on peut aussi demander d'afficher les modifications pour chaque commit -avec l'option ``-p`` - -.. code-block:: diff - - $ git log -p - commit 0dd6cd7e6ecf01b638cd631697bf9690baedcf20 - Merge: eda36d7 6fd2e9b - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 18 15:29:53 2013 +0200 - - Merge branch 'universal' - - Conflicts: - main.c - - commit 6fd2e9bfa199fc3dbca4df87d225e35553d6cd79 - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 18 15:06:14 2013 +0200 - - Fix SIGSEV without args - - diff --git a/main.c b/main.c - index 8ccfa11..f90b795 100644 - --- a/main.c - +++ b/main.c - @@ -9,7 +9,7 @@ - - // main function - int main (int argc, char *argv[]) { - - // main function - int main (int argc, char *argv[]) { - - if (strncmp(argv[1], "--alien", 8) == 0) { - + if (argc > 1 && strncmp(argv[1], "--alien", 8) == 0) { - printf("Hello universe!\n"); - } else { - printf("Hello world!\n"); - - commit eda36d79fd48561dce781328290d40990e74a758 - Author: Benoît Legat <benoit.legat@gmail.com> - Date: Sun Aug 18 14:58:29 2013 +0200 - - Add pid/ppid info - - diff --git a/main.c b/main.c - index 8381ce0..b9043af 100644 - --- a/main.c - +++ b/main.c - @@ -5,9 +5,11 @@ - // includes - #include <stdio.h> - #include <stdlib.h> - +#include <unistd.h> - - // main function - int main () { - + printf("pid: %u, ppid: %u\n", getpid(), getppid()); - printf("Hello world!\n"); - return EXIT_SUCCESS; - } - -Il existe encore plein d'autres options comme ``--stat`` qui se contente -de lister les fichiers qui ont changés. -En les combinant on peut obtenir des résultats intéressants comme ci-dessous - -.. code-block:: bash - - $ git log --graph --decorate --oneline - * 0dd6cd7 (HEAD, master) Merge branch 'universal' - |\ - | * 6fd2e9b Fix SIGSEV without args - | * 88d2c61 Merge branch 'master' into universal - | |\ - | * | e0c317a Make it universal - * | | eda36d7 Add pid/ppid info - | |/ - |/| - * | c35a8c3 Add Makefile - |/ - * c1f2163 Add intro - * b14855e Add .gitignore - * bc620ce Add return - * 76c1677 First commit - -On ajoute d'ailleurs souvent un raccourci pour avoir ce graphe avec -``git lol``. - -.. code-block:: bash - - $ git config --global alias.lol "log --graph --decorate --oneline" - -.. TODO comparer différents commits - -Sauvegarder des modifications hors de l'historique -################################################## - -On a vu que certaines opérations comme `git-checkout(1)`_ nécessitent -de ne pas avoir de modifications en conflit avec l'opération. - -`git-stash(1)`_ permet de sauvegarder ces modifications pour qu'elles ne soient -plus dans le *working directory* mais qu'elles ne soient pas perdues. -On peut ensuite les réappliquer avec ``git stash apply`` puis les effacer -avec ``git stash drop``. - -Reprenons notre exemple de *Changer la branche active* illustré par la figure -suivante - -.. figure:: figures/hello_intro.png - :align: center - - Historique après avoir ajouté un commentaire d'introduction - -.. code-block:: bash - - $ git checkout pid - Switched to branch 'pid' - $ echo "42" >> main.c - $ echo "42" >> .gitignore - $ git stash - Saved working directory and index state WIP on pid: b14855e Add .gitignore - HEAD is now at b14855e Add .gitignore - $ git checkout master - Switched to branch 'master' - $ git stash apply - Auto-merging main.c - # On branch master - # Changes not staged for commit: - # (use "git add <file>..." to update what will be committed) - # (use "git checkout -- <file>..." to discard changes in working directory) - # - # modified: .gitignore - # modified: main.c - # - no changes added to commit (use "git add" and/or "git commit -a") - -On voit que les changements on été appliqués - -.. code-block:: diff - - $ git diff - diff --git a/.gitignore b/.gitignore - index cba7efc..5df1452 100644 - --- a/.gitignore - +++ b/.gitignore - @@ -1 +1,2 @@ - a.out - +42 - diff --git a/main.c b/main.c - index 8381ce0..eefabd7 100644 - --- a/main.c - +++ b/main.c - @@ -11,3 +11,4 @@ int main () { - printf("Hello world!\n"); - return EXIT_SUCCESS; - } - +42 - -On peut alors supprimer le *stash* - -.. code-block:: bash - - $ git stash drop - Dropped refs/stash@{0} (ae5b4fdeb8bd751449d73f955f7727f660708225) - -Modifier un commit récent -######################### - -Si on a oublié d'ajouter des modifications dans le dernier commit et -qu'on ne l'a pas encore *pushé*, on peut facilement les rajouter. -Il suffit de donner l'option ``--amend`` à `git-commit(1)`_. -Il ajoutera alors les modifications au commit actuel au lieu d'en créer un -nouveau. - -On peut aussi annuler le dernier commit avec ``git reset HEAD^``. -`Git`_ permet aussi de construire un commit qui a l'effet inverse d'un autre -avec `git-revert(1)`_. -Ce dernier construit un commit qui annulera l'effet d'un autre commit. -Voyons tout ça par un exemple qui pourrait être le code de *Deep Thought*. - -On a un fichier ``main.c`` contenant - -.. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - - int main (int argc, char *argv[]) { - int *n = (int*) malloc(sizeof(int)); - *n = 42; - printf("%d\n", *n); - return EXIT_SUCCESS; - } - -un ``Makefile`` contenant - -.. code-block:: makefile - - run: answer - echo "The answer is `./answer`" - - answer: main.c - gcc -o answer main.c - -si bien qu'on a - -.. code-block:: bash - - $ make - gcc -o answer main.c - echo "The answer is `./answer`" - The answer is 42 - $ make - echo "The answer is `./answer`" - The answer is 42 - $ touch main.c - $ make - gcc -o answer main.c - echo "The answer is `./answer`" - The answer is 42 - -et un fichier ``.gitignore`` avec comme seul ligne ``answer``. - -Commençons par committer ``main.c`` et ``.gitignore`` en oubliant le -``Makefile``. - -.. code-block:: bash - - $ git init - Initialized empty Git repository in /path/to_project/.git/ - $ git status - # On branch master - # - # Initial commit - # - # Untracked files: - # (use "git add <file>..." to include in what will be committed) - # - # .gitignore - # Makefile - # main.c - nothing added to commit but untracked files present (use "git add" to track) - $ git add .gitignore main.c - $ git commit -m "First commit" - [master (root-commit) 54e48c9] First commit - 2 files changed, 10 insertions(+) - create mode 100644 .gitignore - create mode 100644 main.c - $ git log --stat --oneline - 54e48c9 First commit - .gitignore | 1 + - main.c | 9 +++++++++ - 2 files changed, 10 insertions(+) - $ git status - # On branch master - # Untracked files: - # (use "git add <file>..." to include in what will be committed) - # - # Makefile - nothing added to commit but untracked files present (use "git add" to track) - -On pourrait très bien faire un nouveau commit contenant le ``Makefile`` -mais si, pour une quelconque raison, -on aimerait l'ajouter dans le commit précédent, -on peut le faire comme suit - -.. code-block:: bash - - $ git add Makefile - $ git commit --amend - [master 1712853] First commit - 3 files changed, 15 insertions(+) - create mode 100644 .gitignore - create mode 100644 Makefile - create mode 100644 main.c - $ git log --stat --oneline - 1712853 First commit - .gitignore | 1 + - Makefile | 5 +++++ - main.c | 9 +++++++++ - 3 files changed, 15 insertions(+) - -On voit qu'aucun commit n'a été créé mais c'est le commit précédent qui -a été modifié. -Ajoutons maintenant un check de la valeur retournée par `malloc(3)`_ pour gérer -les cas limites - -.. code-block:: diff - - $ git diff - diff --git a/main.c b/main.c - index 39d64ac..4864e60 100644 - --- a/main.c - +++ b/main.c - @@ -3,6 +3,10 @@ - - int main (int argc, char *argv[]) { - int *n = (int*) malloc(sizeof(int)); - + if (*n == NULL) { - + perror("malloc"); - + return EXIT_FAILURE; - + } - *n = 42; - printf("%d\n", *n); - return EXIT_SUCCESS; - -et committons le - -.. code-block:: bash - - $ git add main.c - $ git commit -m "Check malloc output" - [master 9e45e79] Check malloc output - 1 file changed, 4 insertions(+) - $ git log --stat --oneline - 9e45e79 Check malloc output - main.c | 4 ++++ - 1 file changed, 4 insertions(+) - 1712853 First commit - .gitignore | 1 + - Makefile | 5 +++++ - main.c | 9 +++++++++ - 3 files changed, 15 insertions(+) - -Essayons maintenant de construire un commit qui retire les lignes qu'on -vient d'ajouter avec `git-revert(1)`_ - -.. code-block:: bash - - $ git revert 9e45e79 - [master 6c0f33e] Revert "Check malloc output" - 1 file changed, 4 deletions(-) - $ git log --stat --oneline - 6c0f33e Revert "Check malloc output" - main.c | 4 ---- - 1 file changed, 4 deletions(-) - 9e45e79 Check malloc output - main.c | 4 ++++ - 1 file changed, 4 insertions(+) - 1712853 First commit - .gitignore | 1 + - Makefile | 5 +++++ - main.c | 9 +++++++++ - 3 files changed, 15 insertions(+) - -Le contenu de ``main.c`` est alors - -.. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - - int main (int argc, char *argv[]) { - int *n = (int*) malloc(sizeof(int)); - *n = 42; - printf("%d\n", *n); - return EXIT_SUCCESS; - } - -Comme c'est une bonne pratique de vérifier la valeur de retour de `malloc(3)`_, -supprimons ce dernier commit - -.. code-block:: bash - - $ git reset HEAD^ - Unstaged changes after reset: - M main.c - $ git log --oneline - 9e45e79 Check malloc output - 1712853 First commit - -Corriger des bugs grâce à Git -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Git permet de garder des traces des nombreux changements qui ont été effectué au -cours de l’évolution d’un programme. Il contient d’ailleurs un outil très -puissant vous permettant de retrouver la source de certaines erreurs, pourvu que -les changements soient faits par petits commits : `git-bisect(1)`_. - -Supposez que vous ayez introduit une fonctionnalité dans votre programme. Tout -allait alors pour le mieux. Quelques semaines plus tard, à votre grand dam, vous -vous rendez compte qu’elle ne fonctionne plus. Vous sillonnez tous les fichiers -qui pourraient interagir avec cette fonction, en vain. Dans le désespoir, à -l’approche de la deadline, vous succombez au nihilisme. - -Avant de tout abandonner, pourtant, vous réalisez quelque chose de très -important. Ce que vous cherchez, c’est la source de l’erreur ; cela fait, la -corriger sera sans l’ombre d’un doute une tâche aisée. Si seulement il était -possible de voir à partir de quel changement le bug a été introduit… - -C’est là que vous repensez à Git ! Git connaît tous les changements qui ont été -effectués, et vous permet facilement de revenir dans le passé pour vérifier si -le bug était présent à un moment donné. En outre, vous vous rappelez vos cours -d’algorithmiques et vous rendez compte que, puisque vous connaissez un point où -le bug était présent et un autre ou il ne l’était pas, vous pouvez à l’aide -d’une recherche binaire déterminer en un temps logarithmique (par rapport aux -nombres de révisions comprises dans l’intervalle) quelle révision a introduit -l’erreur. - -C’est exactement l’idée derrière `git-bisect(1)` : vous donnez un intervalle de -commits dans lequel vous êtes certains de pouvoir trouver le vilain commit -responsable de tous vos maux, pour ensuite le corriger. Vous pouvez même -entièrement automatiser cette tâche si vous pouvez, excellent programmeur que -vous êtes, écrire un script qui renvoie 1 si le bug est présent et 0 si tout va -bien. - -Pour vous montrez comme utiliser cette fonctionnalité, et vous convaincre que -cela marche vraiment, et pas seulement dans des exemples fabriqués uniquement -dans un but de démonstration, nous allons l’appliquer à un vrai programme C : -mruby, une implémentation d’un langage correspondant à un sous-ensemble de Ruby. - -Intéressons nous à `un des problèmes qui a été rapporté par un utilisateur -<https://github.com/mruby/mruby/issues/1583>`_. Si vous lisez cette page, vous -verrez qu’en plus de décrire le problème, il mentionne le commit à partir duquel -il rencontre l’erreur. Si vous regardez aussi le commit qui l’a corrigée, vous -verrez que le développeur a bien dû changer une ligne introduite dans le commit -qui avait été accusé par l’utilisateur. - -Mettons nous dans la peau de l’utilisateur qui a trouvé le bug, et tentons nous -aussi d’en trouver la cause, en utilisant Git. D’abord, il nous faut obtenir le -dépôt sur notre machine (vous aurez besoin de Ruby afin de pouvoir tester), -et revenir dans le passé puisque, depuis, l’erreur a été corrigée. - - .. code-block:: console - - $ git clone git@github.com:mruby/mruby.git - (...) - $ cd mruby - $ git checkout 5b51b119ca16fe42d63896da8395a5d05bfa9877~1 - (...) - -Sauvegardons aussi le fichier de test proposé, par exemple dans -``~/code/rb/test.rb`` : - - .. code-block:: ruby - - class A - def a - b - end - def b - c - end - def c - d - end - end - x = A.new.a - -Vous devriez maintenant être capable de vérifier que la méthode ``A.a`` n’est pas -incluse dans la backtrace : - - .. code-block:: console - - $ make && ./bin/mruby ~/code/rb/test.rb - (...) - trace: - [3] /home/kilian/code/rb/test.rb:9:in A.c - [2] /home/kilian/code/rb/test.rb:6:in A.b - [0] /home/kilian/code/rb/test.rb:13 - /home/kilian/code/rb/test.rb:9: undefined method 'd' for #<A:0xdf1000> (NoMethodError) - -C’est le moment de commencer. Il faut d’abord dire à Git que nous désirons -démarrer une bissection et que le commit actuel est « mauvais », c’est à dire -que le bug est présent. Ceci est fait en utilisant les deux lignes suivantes, -dans l’ordre : - - .. code-block:: console - - $ git bisect start - $ git bisect bad - -Regardons ce qu’il en était quelque mois auparavant (remarquez qu’il faut -utiliser ``make clean`` pour s’assurer de tout recompiler ici) : - - .. code-block:: console - - $ git checkout 3a27e9189aba3336a563f1d29d95ab53a034a6f5 - Previous HEAD position was 7ca2763... write_debug_record should dump info recursively; close #1581 - HEAD is now at 3a27e91... move (void) cast after declarations - $ make clean && make && ./bin/mruby ~/code/test.rb - (...) - trace: - [3] /home/kilian/code/rb/test.rb:9:in A.c - [2] /home/kilian/code/rb/test.rb:6:in A.b - [1] /home/kilian/code/rb/test.rb:3:in A.a - [0] /home/kilian/code/rb/test.rb:13 - /home/kilian/code/rb/test.rb:9: undefined method 'd' for #<A:0x165d2c0> (NoMethodError) - -Cette fois-ci, tout va bien. Nous pouvons donc en informer Git : - - .. code-block:: console - - $ git bisect good - Bisecting: 116 revisions left to test after this (roughly 7 steps) - [fe1f121640fbe94ad2e7fabf0b9cb8fdd4ae0e02] Merge pull request #1512 from wasabiz/eliminate-mrb-intern - -Ici, Git nous dit combien de révisions il reste à vérifier dans l’intervalle en -plus de nous donner une estimation du nombre d’étapes que cela prendra. Il nous -informe aussi de la révision vers laquelle il nous a déplacé. Nous pouvons donc -réitérer notre test et en communiquer le résultat à Git : - - .. code-block:: console - - $ make clean && make && ./bin/mruby ~/code/test.rb - (...) - trace: - [3] /home/kilian/code/rb/test.rb:9:in A.c - [2] /home/kilian/code/rb/test.rb:6:in A.b - [1] /home/kilian/code/rb/test.rb:3:in A.a - [0] /home/kilian/code/rb/test.rb:13 - /home/kilian/code/rb/test.rb:9: undefined method 'd' for #<A:0x165d2c0> (NoMethodError) - $ git bisect good - Bisecting: 58 revisions left to test after this (roughly 6 steps) - [af03812877c914de787e70735eb89084434b21f1] add mrb_ary_modify(mrb,a); you have to ensure mrb_value a to be an array; ref #1554 - -Si nous réessayons, nous allons nous rendre compte que notre teste échoue à -présent (il manque la ligne ``[1]``): nous somme allés trop loin dans le -futur. Il nous faudra donc dire à Git que la révision est mauvaise. - - .. code-block:: console - - $ make clean && make && ./bin/mruby ~/code/test.rb - (...) - trace: - [3] /home/kilian/code/rb/test.rb:9:in A.c - [2] /home/kilian/code/rb/test.rb:6:in A.b - [0] /home/kilian/code/rb/test.rb:13 - /home/kilian/code/rb/test.rb:9: undefined method 'd' for #<A:0x165d2c0> (NoMethodError) - $ git bisect bad - Bisecting: 28 revisions left to test after this (roughly 5 steps) - [9b2f4c4423ed11f12d6393ae1f0dd4fe3e51ffa0] move declarations to the beginning of blocks - -Si vous continuez à appliquer cette procédure, vous allez finir par trouver la -révision fautive, et Git nous donnera l’information que nous recherchions, comme -par magie : - - .. code-block:: console - - $ git bisect bad - Bisecting: 0 revisions left to test after this (roughly 0 steps) - [a7c9a71684fccf8121f16803f8e3d758f0dea001] better error position display - $ make clean && make && ./bin/mruby ~/code/rb/test.rb - (...) - trace: - [3] /home/kilian/code/rb/test.rb:9:in A.c - [2] /home/kilian/code/rb/test.rb:6:in A.b - [0] /home/kilian/code/rb/test.rb:13 - /home/kilian/code/rb/test.rb:9: undefined method 'd' for #<A:0x1088160> (NoMethodError) - $ git bisect bad - a7c9a71684fccf8121f16803f8e3d758f0dea001 is the first bad commit - commit a7c9a71684fccf8121f16803f8e3d758f0dea001 - Author: Yukihiro "Matz" Matsumoto <matz@ruby-lang.org> - Date: Tue Oct 15 12:49:41 2013 +0900 - - better error position display - - :040000 040000 67b00e2d4f6acadc0474e00fc0f5e6e13673c64a 036eb9c3b9960613bde3882b7a88ac6cabc56253 M include - :040000 040000 5040dd346fea4d8f476d26ad2ede0dc49ca368cd 903f2d954d8686e7bfa7bcf5d83b80b5beb4899f M src - -Maintenant que nous connaissons la source du problème, il ne faut pas oublier de -confirmer à Git que la recherche est bien terminée, et que nous désirons -remettre le dépôt dans son état normal. - - .. code-block:: console - - $ git bisect reset - Previous HEAD position was a7c9a71... better error position display - HEAD is now at 7ca2763... write_debug_record should dump info - recursively; close #1581 - -Automatisation de la procédure -############################## - -Exécuter ce test à la main est cependant répétitif, prône aux erreurs -d’inattention, et surtout très facile à automatiser. Écrivons donc un script qui -vérifie que la ligne mentionnant ``A.a`` est bien présente à chaque fois, -appelons le par exemple ``~/code/sh/Iznogoud.sh``. Il s’agit de renvoyer 0 -si tout se passe bien et une autre valeur s’il y a un problème. - - .. code-block:: bash - - #!/usr/bin/env bash - make clean && make && ./bin/mruby ~/code/rb/test.rb 2>&1 | grep A\.a - -Puisque ``grep`` renvoie 1 quand il ne trouve pas de ligne contenant le motif -qu’on lui passe en argument et 0 sinon, notre script renvoie bien 1 si la sortie -de mruby ne contient pas la ligne mentionnant ``A.a`` et 0 sinon. - -N’oubliez pas de changer les permissions du script pour en permettre l’exécution : - - .. code-block:: console - - $ chmod +x ~/code/sh/Iznogoud.sh - - -Ce test n’est en bien sûr pas infaillible, mais sera suffisant ici. Il faut -d’abord redonner à Git l’intervalle dans lequel se trouve la révision fautive. - - .. code-block:: console - - $ git bisect start - $ git bisect bad - $ git checkout 3a27e9189aba3336a563f1d29d95ab53a034a6f5 - Previous HEAD position was 7ca2763... write_debug_record should dump info recursively; close #1581 - HEAD is now at 3a27e91... move (void) cast after declarations - $ git bisect good - Bisecting: 116 revisions left to test after this (roughly 7 steps) - [fe1f121640fbe94ad2e7fabf0b9cb8fdd4ae0e02] Merge pull request #1512 from wasabiz/eliminate-mrb-intern - -Il suffit maintenant d’utiliser ``git bisect run`` avec le nom du script pour -l’utiliser. Il est possible de rajouter d’autres arguments après le nom du -script, qui seront passés au script lors de chaque exécution. Par exemple, si -vous avez dans votre Makefile une tâche test qui renvoie 0 si tous les tests -passent et 1 si certains échouent, alors ``git bisect run make test`` -permettrait de trouver à partir de quand les tests ont cessé de fonctionner. - -Si vous exécutez la ligne suivante, vous devriez bien trouver, après quelques -compilations, le même résultat qu’avant : - - .. code-block:: console - - $ git bisect run ~/code/sh/Iznogoud.sh - (...) - a7c9a71684fccf8121f16803f8e3d758f0dea001 is the first bad commit - commit a7c9a71684fccf8121f16803f8e3d758f0dea001 - Author: Yukihiro "Matz" Matsumoto <matz@ruby-lang.org> - Date: Tue Oct 15 12:49:41 2013 +0900 - - better error position display - - :040000 040000 67b00e2d4f6acadc0474e00fc0f5e6e13673c64a 036eb9c3b9960613bde3882b7a88ac6cabc56253 M include - :040000 040000 5040dd346fea4d8f476d26ad2ede0dc49ca368cd 903f2d954d8686e7bfa7bcf5d83b80b5beb4899f M src - bisect run success - -À nouveau, n’oubliez pas d’utiliser ``git bisect reset`` avant de continuer à -travailler sur le dépôt. - -Subversion ----------- - -`subversion`_ (ou abrégé `svn(1)`_) est un logiciel qui permet à plusieurs utilisateurs de travailler sur les mêmes documents de type texte. `Subversion`_ est fréquemment utilisé pour gérer du code source développé de façon collaborative, mais il peut aussi servir à gérer n'importe quel ensemble de fichiers (de préférence textes) manipulés par plusieurs personnes. - -.. Dans le cadre du cours SINF1252 vous devez vous inscrire à subversion dans le projet ``SINF1252_2012`` en suivant le lien et les instructions sur http://wiki.student.info.ucl.ac.be/index.php/Svn - -Pour commencer l'utilisation de `svn(1)`_ vous devriez faire d'abord un ``checkout`` du répertoire: - - .. code-block:: console - - $ svn checkout <url de votre répertoire> - Checked out revision 1. - -Ceci installe votre répertoire (ici, nommé ``my_rep``) dans le dossier courant. Vous pouvez vous déplacer dans le nouveau dossier et créer un nouveau dossier pour cet premier projet. Il faut explicitement ajouter ce dossier à svn avec la commande ``svn add [nom du dossier]``. Chaque fichier et dossier dont vous voulez qu'il fasse partie du contrôle de version doivent être ajoutés avec cette commande. - - .. code-block:: console - - $ cd my_rep - $ mkdir projet_S1 - $ svn add projet_S1 - A projet_S1 - -Ce dossier n'a pas encore été envoyé sur le serveur principal et n'est donc pas encore visible pour d'autres utilisateurs. Pour afficher l'état de votre répertoire utilisez ``svn status``. La lettre ``A`` indique que ceci est un nouveau dossier/fichier pas encore envoyé vers le serveur. ``?`` indique que les fichiers/dossiers ne font pas partie du répertoire svn (on peut les ajouter avec ``svn add``). ``M`` indique que les fichiers sont modifiés localement mais pas encore envoyés vers le serveur. Ces fichiers font partie du répertoire svn. - - .. code-block:: console - - $ svn status - A projet_S1 - $ svn commit -m "Projet S1: Initialisation" - Adding projet_S1 - Transmitting file data . - Committed revision 2. - -La commande ``svn commit`` permet de pousser les changements locaux et les nouveaux fichiers vers le serveur. La chaîne de charactères entre les ``"`` est le commentaire qu'il faut ajouter au commit. Il est important de commenter vos commits pour que vous puissiez vous retrouvez dans votre historique. L'historique de votre répertoire peut être affiché avec la commande ``svn log``. - -Les autres utilisateurs de votre répertoire (c'est-à -dire dans le cadre de ce cours: vôtre binôme du groupe) peuvent à partir de maintenant accéder à ce nouveau dossier en mettant à jour son répertoire local. -Pour mettre à jour le répertoire local, on utilise la commande ``svn update``. - - .. code-block:: console - - $ svn update - Updating '.': - A projet_S1 - Updated to revision 2. - -Il est recommandé de toujours faire un ``update`` avant de faire un ``commit``. Lors d'un update il est possible qu'un conflit se crée dans votre dossier local. Ceci peut arriver si vous avez modifié une ligne dans un fichier localement et que cette ligne a aussi été modifiée par le commit d'un autre utilisateur. Pour résoudre le conflit, vous devez éditer le fichier que svn a indiqué être en conflit en cherchant des lignes qui commencent par ``<<<``. Corrigez ce fichier et retournez dans la console et tapez ``r`` pour indiquer à svn que ce conflit a été résolu. - -Pour plus d'informations sur svn regardez les commandes ``svn help``, ``svn help [commande]`` ou http://svnbook.red-bean.com/. Une recherche sur Google vous aidera aussi pour résoudre vos problèmes avec subversion. diff --git a/Outils/gprof.rst b/Outils/gprof.rst deleted file mode 100644 index d672966..0000000 --- a/Outils/gprof.rst +++ /dev/null @@ -1,11 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _gprof: - -Profiling de code ------------------ - - -Lorsque l'on cherche à optimiser les performances de programmes écrits en C, il est utile de les exécuter à travers un profiler tel que `gprof(1)`_. Ce profiler permet de collecter des statistiques sur les fonctions les plus utilisées à l'intérieur du programme. Ce sont les fonctions qu'il faudra optimiser pour améliorer les performances. De nombreux articles décrivent les principes de base de l'utilisation de `gprof(1)`_. Un bon article pour démarrer est [Honeyford2006]_. `oprofile <http://oprofile.sourceforge.net/>`_ est un profiler plus puissant que `gprof(1)`_ mais malheureusement plus difficile à utiliser. diff --git a/Outils/index.rst b/Outils/index.rst deleted file mode 100644 index 556a6a3..0000000 --- a/Outils/index.rst +++ /dev/null @@ -1,36 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch, Grégory Detal et les étudiants du cours -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -############################### -Systèmes informatiques : Outils -############################### - - -.. only:: html - - Ce site web contient l'annexe relative aux outils informatiques pour le cours `SINF1252 <http://www.uclouvain.be/cours-2015-LSINF1252.html>`_ donné aux `étudiants en informatique <http://www.uclouvain.be/info.html>`_ à l'`Université catholique de Louvain <http://www.uclouvain.be>`_ (UCL). Les étudiants sont invités à ajouter leur commentaires en soumettant des patches via https://github.com/obonaventure/SystemesInformatiques - -.. La version HTML est la préférable car elle contient des liens hypertextes vers les pages de manuel Linux qui font partie de la matière. D'autres formats sont possibles pour ceux qui veulent lire le document hors ligne : - -.. - :download:`distrib/SINF1252.epub` en format epub lisible sur tablettes style iPad ou Galaxy Tab -.. - :download:`distrib/SINF1252.pdf` en format pdf pour lecture via les logiciels Adobe ou pour impression - - -.. toctree:: - :maxdepth: 2 - - intro-outils - git - make - ssh - cunit - processus - valgrind - gdb - gprof - shell - gcc - bib - diff --git a/Outils/intro-outils.rst b/Outils/intro-outils.rst deleted file mode 100644 index 244cfd8..0000000 --- a/Outils/intro-outils.rst +++ /dev/null @@ -1,47 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Introduction -============ - -Outre des compétences théoriques qui sont abordées dans d'autres parties de ce document, la maitrise d'une système informatique implique également une excellente connaissance des outils informatiques qui sont inclus dans ce système. Cette connaissance se construit bien entendu en utilisant activement ces logiciels. Cette section comprend les informations de bases sur quelques logiciels importants qui sont utilisés dans le cadre du cours. Elle est volontairement réduite car de nombreux logiciels pourraient faire l'objet de livres complets. Les étudiants sont invités à proposer des améliorations à cette section sous la forme de patches via https://github.com/obonaventure/SystemesInformatiques - - -Editeurs -======== - -De nombreux éditeurs sont utilisables pour manipuler efficacement du code source en langage C. Chaque étudiant doit choisir l'éditeur qui lui convient le mieux. En voici quelques uns : - - - `vi(1)`_ est un des premiers éditeurs à avoir été écrit pour Unix. Il a fortement évolué, et reste un outil de choix pour de nombreux administrateurs systèmes. De nombreux tutoriels permettent d'apprendre rapidement `vi(1)`_, dont http://www.ibm.com/developerworks/linux/tutorials/l-vi/ - - `emacs <http://www.gnu.org/software/emacs/>`_ est un autre éditeur fréquemment utilisé sous Unix. Il existe de très nombreuses extensions à emacs qui lui permettent de faire tout ou presque, y compris de jouer à des jeux comme Tetris. Son extensibilité peut rebuter certains utilisateurs. De nombreux tutoriels sont disponibles sur Internet, dont http://www.gnu.org/software/emacs/tour/ - - `gedit <http://projects.gnome.org/gedit/>`_ est l'éditeur de base dans l'environnement graphique `GNOME <http://www.gnome.org>`_ utilisé dans les distributions Linux. - - `eclipse <http://www.eclipse.org>`_ est un environnement complet de développement écrit en Java pour supporter initialement ce langage. De nombreuses extensions à `eclipse <http://www.eclipse.org>`_ existent, dont `CDT <http://www.eclipse.org/cdt/>`_ qui permet la manipulation efficace de code source en langages C et C++. - - -.. _svn: - -Gestionnaires de code partagé -============================= - -Dans de nombreux projets informatiques, il est nécessaire d'utiliser des outils qui permettent d'organiser efficacement le partage du code source entre plusieurs développeurs. Les plus anciens gestionnaires de code sont `cvs <http://cvs.nongnu.org/>`_ ou `rcs <http://www.gnu.org/software/rcs/>`_. Ces logiciels ont été créés lorsque Unix était utilisé sur des mini-ordinateurs qui servaient tout un département. Aujourd'hui, les logiciels de gestion de code source s'utilisent en combinaison avec des serveurs Internet pour permettre un partage large du code source. Les plus connus sont : - - - `Git`_ qui est décrit ci-dessous - Il est aussi décrit dans plein d'autres ressources comme - `git-scm <http://git-scm.com/>`_ contenant le livre Pro Git, - `git-ref <http://git-ref.com/>`_ mais aussi une - `vidéo <http://www.youtube.com/watch?v=ZDR433b0HJY>`_ faite par le créateur - de ces deux sites et - `Try Git <http://try.github.io/levels/1/challenges/1>`_ qui permet - de découvrir `Git`_ en 15 minutes interactivement à travers le site. - - `subversion`_ qui est décrit ci-dessous également - - `mercurial <http://mercurial.selenic.com/>`_ - - `bazaar <http://bazaar.canonical.com/>`_ - - -Compilateurs -============ - -Le compilateur C utilisé dans de nombreuses distributions Linux est `gcc(1)`_. C'est un compilateur open-source développé activement dans le cadre du projet GNU par la `Free Software Foundation <http://www.fsf.org>`_. Nous utiliserons principalement `gcc(1)`_ dans le cadre de ce cours. - -Il existe des alternatives à `gcc(1)`_ comme llvm_ que nous utiliserons lorsque nous analyserons le code assembleur généré par un compilateur C. Les variantes commerciales de Unix utilisent généralement des compilateurs propriétaires, dont par exemple `Oracle Studio <http://www.oracle.com/technetwork/server-storage/solarisstudio/overview/index.html>`_ ou la `suite de compilateurs <http://software.intel.com/en-us/c-compilers>`_ développée par intel_. diff --git a/Outils/make.rst b/Outils/make.rst deleted file mode 100644 index b07aaff..0000000 --- a/Outils/make.rst +++ /dev/null @@ -1,228 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _make: - -Introduction aux Makefiles --------------------------- - -Les Makefiles sont des fichiers utilisés par le programme `make(1)`_ afin d'automatiser un ensemble d'actions permettant la génération de fichiers, la plupart du temps résultant d'une compilation. - -Un Makefile est composé d'un ensemble de règles de la forme: - - .. code-block:: make - - target [target ...]: [component ...] - [command] - ... - [command] - -Chaque règle commence par une ligne de dépendance qui définit une ou plusieurs cibles (``target``) suivies par le caractère ``:`` et éventuellement une liste de composants (``components``) dont dépend la cible. Une cible ou un composant peut être un fichier ou un simple label. - -Il est important de se rendre compte que l'espacement derrière les ``command`` -doit impérativement commencer par une *tabulation*. -Ça ne peut pas commencer par des espaces. -Il ne faut pas non plus confondre la touche tabulation du clavier -qui est souvent interprétée par les éditeurs de texte -par une indentation et le caractère de tabulation -(souvent écrit ``\t`` comme en C ou en bash) qui sont souvent affichés -avec 2, 3, 4 ou 8 espacements en fonction des préférences de l'utilisateur. -On parle bien ici du caractère de tabulation. -Heureusement, bien que beaucoup de gens configurent -leur éditeur de texte pour indenter avec des espaces, -la plupart des bons éditeurs reconnaissent que c'est -un Makefile et indentent avec des tabulations. - -Le fichier suivant reprend un exemple de règle où la cible et le composant sont des fichiers. - - .. code-block:: make - - text.txt: name.txt - echo "Salut, " > text.txt - cat name.txt >> text.txt - -Lorsque ``make`` est exécuté en utilisant ce Makefile, on obtient: - - .. code-block:: console - - $ make - make: *** No rule to make target `name.txt', needed by `text.txt'. Stop. - -Comme ``text.txt`` dépend de ``name.txt``, il faut que ce dernier soit défini comme cible dans le Makefile ou existe en tant que fichier. Si nous créons le fichier ``name.txt`` contenant ``Tintin`` et que ``make`` est ré-exécuté, on obtient la sortie suivante : - - .. code-block:: console - - $ make - echo "Salut, " > text.txt - cat name.txt >> text.txt - $ cat text.txt - Salut, - Tintin - -Lorsqu'une dépendance change, ``make`` le détecte et ré-exécute les commandes associées à la cible. Dans le cas suivant, le fichier ``name.txt`` est modifié, ce qui force la regénération du fichier ``text.txt``. - - .. code-block:: console - - $ make - make: `text.txt' is up to date. - $ echo Milou > name.txt - $ make - echo "Salut, " > text.txt - cat name.txt >> text.txt - $ cat text.txt - Salut, - Milou - -Comme spécifié précédemment, les Makefiles sont principalement utilisés pour automatiser la compilation de projets. Si un projet dépend d'un fichier source ``test.c``, le Makefile permettant d'automatiser sa compilation peut s'écrire de la façon suivante: - - .. code-block:: make - - test: test.c - gcc -o test test.c - -Ce Makefile permettra de générer un binaire ``test`` à chaque fois que le fichier source aura changé. - -Les variables -~~~~~~~~~~~~~ - -.. sectionauthor:: Alexis Nootens <alexis.nootens@student.uclouvain.be> - -Il est possible d'utiliser des variables dans un fichier Makefile. Celles-ci sont généralement définies au début du fichier, une par ligne comme : - - .. code-block:: make - - CC = GCC - OPT = -ansi - VARIABLE_AU_NOM_TRES_LONG = 1 - -Notez que les noms sont écrits en majuscule par convention. Leur appel est semblable à celui en script shell (bash) excepté les parenthèses après le symbole $. -On écrit par exemple ``$(CC)``, ``$(CFLAGS)``, ``$(VARIABLE_AU_NOM_TRES_LONG)``. Make autorise de remplacer les parenthèses par des accolades mais cette pratique est moins répandue. - - .. code-block:: make - - CC = GCC - CFLAGS = -ansi - - build: - $(CC) $(CFLAGS) foo.c -o foo - -Vous aurez compris qu'ici, la cible ``build`` effectue la commande ``gcc -ansi foo.c -o foo``. -Il est très intéressant de savoir que toutes les variables d’environnement présentes lors de l’appel au Makefile sont également disponibles avec la même notation. -Vous pouvez donc très bien utiliser la variable ``$(HOME)`` indiquant le répertoire attribué à l'utilisateur sans la définir. - -Il existe six différentes manières d'assigner une valeur à une variable. Nous ne nous intéresserons qu'à quatre d'entre elles. - - .. code-block:: make - - VARIABLE = value - VARIABLE := value - VARIABLE ?= value - VARIABLE += value - -- La première permet de lier la variable à une valeur (ici value). Mais celle-ci ne sera évaluée qu'à son appel. -- La seconde permet de déclarer une variable et de l'évaluer directement en même temps. -- La troisième permet d'assigner une valeur à la variable uniquement si celle-ci n'en a pas encore. -- La quatrième permet d'ajouter une valeur à une autre déjà déclarée. - -Une description détaillée de ces méthodes d'assignation et des deux autres restantes se trouve à l'adresse suivante `<http://www.gnu.org/software/make/manual/make.html#Setting>`_ - -Les conditions -~~~~~~~~~~~~~~ - -Les variables ne servent pas uniquement à éviter la redondance d'écriture dans votre fichier. On peut aussi les utiliser pour -réaliser des opérations conditionnelles comme : - - .. code-block:: make - - DEBUG = 1 - - build: - ifeq ($(DEBUG), 1) - gcc -Wall -Werror -o foo foo.c - else - gcc -o foo foo.c - endif - -Ici ``ifeq`` permet de tester un "si égal". Il existe aussi l'opération opposée ``ifneq`` pour "si non-égal". Remarquez que les conditions ne doivent pas être tabulées au risque d'obtenir une erreur -de syntaxe incompréhensible. Les conditions peuvent avoir différentes syntaxes. Vous pouvez les trouver sur cette page http://www.gnu.org/software/make/manual/make.html#Conditional-Syntax - -Avec les sections précédentes et la suivante nous allons pouvoir nous aventurer dans la création de Makefiles plus complexes. -On peut vouloir effectuer des compilations différentes suivant l'environnement de l'utilisateur comme son OS, son matériel ou juste son nom. -Encore une fois Make nous gâte en nous offrant la possibilité d'exécuter des commandes shell dans nos Makefiles. -Imaginez avoir besoin d'options de compilation supplémentaires à cause de votre OS que seul vous avez besoin. Vous pouvez effectuer une compilation -conditionnelle sur votre nom. - - .. code-block:: make - - USER := $(shell whoami) - - build: - ifeq ($(USER), sfeldman) - gcc -I($HOME)/local/include -o foo foo.c - else - gcc -o foo foo.c - endif - -Ici ``$(shell whoami)`` est un appel à la fonction shell (de Make) qui nous permet d'assigner à la variable ``USER``, en évaluant immédiatement l'appel, le résultat de la commande shell (bash) ``whoami`` renvoyant le -nom de l'utilisateur actuel. Cela ne fonctionnera que si la commande ``whoami`` est disponible dans le shell évidemment. - -La cible .PHONY -~~~~~~~~~~~~~~~ - -Make compare les dates de modification des fichiers produits avec les dates de leur(s) source(s) pour savoir si celles-ci ont été modifiées depuis leur dernière compilation. Cela lui permet de ne pas devoir recompiler des fichiers qui n'auraient pas changé d'un appel à -l'autre. Malheureusement ce comportement qui peut sembler avantageux amène aussi des problèmes, en l’occurrence pour des règles ne produisant aucun fichier. -Une solution pour pallier le problème consiste à indiquer que la règle ne crée rien. Pour faire cela il existe une cible spéciale ``.PHONY`` permettant de définir -quelles règles doivent toujours être exécutées à nouveau. Ainsi une règle ``.PHONY`` ne rencontrera jamais le problème d'être déjà à jour. -Une bonne pratique est de déclarer dans ``.PHONY`` toutes les règles de nettoyage de votre projet. - - .. code-block:: make - - build: - gcc -o foo foo.c - - .PHONY: clean - - clean: - rm -f *.o - -Cela est aussi pratique pour forcer une re-compilation. - - .. code-block:: make - - build: - gcc -o foo foo.c - - .PHONY: clean rebuild - - clean: - rm -f *.o foo - - rebuild: clean build - -Compléments -~~~~~~~~~~~ - -Afin de rendre vos Makefiles plus lisibles, vous pouvez y insérer des commentaires en plaçant un croisillon en début de ligne. -Cette syntaxe est semblable au script shell. - - .. code-block:: make - - # Commentaire sur - # plusieurs lignes - build: - gcc -o foo foo.c # commentaire en fin de ligne - -Débugger les erreurs de vos Makefiles peut sembler difficile lorsque vous êtes baignés dans un flux d'instructions. Vous pouvez néanmoins régler leur verbosité. -Il est possible de rendre silencieuse une commande en plaçant une arobase devant. Ceci indique juste à Make de ne pas imprimer la ligne de commande. La sortie -standard de cette commande restera visible. - - .. code-block:: make - - build: - @echo "Building foo" - @gcc -o foo foo.c - -Pour plus d'informations en français sur l'écriture ou utilisation des Makefiles voir [DeveloppezMake]_. - -Documentation complète en anglais sur le site officiel [GNUMake]_. diff --git a/Outils/processus.rst b/Outils/processus.rst deleted file mode 100644 index 84c3031..0000000 --- a/Outils/processus.rst +++ /dev/null @@ -1,107 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Gestion des processus -===================== - -Les systèmes d'exploitation de type Unix sont multitâches et multi-utilisateurs. Cela signifie qu'il est possible d'exécuter simultanément plusieurs programmes qui appartiennent potentiellement à différents utilisateurs. Sous Unix, l'unité d'exécution d'un programme est appelée un :term:`processus`. Lorsque vous exécutez un programme C que vous avez compilé depuis la ligne de commande, le shell lance un nouveau :term:`processus`. Chaque processus est identifié par le système d'exploitation via son :term:`pid` ou :term:`process identifier`. Ce :term:`pid` est alloué par le système d'exploitation au moment de la création du processus. À tout instant, le système d'exploitation maintient une :term:`table des processus` qui contient la liste de tous les processus qui sont en cours d'exécution. Comme nous aurons l'occasion de nous en rendre compte plus tard, cette table contient énormément d'informations qui sont utiles au système. À ce stade, l'information importante qui se trouve dans la table des processus est le :term:`pid` de chaque processus et l'utilisateur qui possède le processus. La commande `ps(1)`_ permet de consulter de façon détaillée la table des processus sur un système Unix. Voici un exemple d'utilisation de cette commande sur un système Linux. - -.. code-block:: console - - $ ps u - USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND - obo 16272 0.0 0.0 110464 1884 pts/1 Ss 11:35 0:00 -bash - obo 16353 0.0 0.0 110184 1136 pts/1 R+ 11:43 0:00 ps u - - -Dans cet exemple, l'utilisateur ``obo`` possède actuellement deux processus. Le premier est l'interpréteur de commande `bash(1)`_ et le second le processus `ps(1)`_. L'interpréteur de commande a ``16272`` comme :term:`pid` tandis que le :term:`pid` de `ps(1)`_ est 16353. - -`ps(1)`_ n'est pas la seule commande permettant de consulter la table des processus. Parmi les autres commandes utiles, on peut mentionner `top(1)`_ qui permet de visualiser les processus qui s'exécutent actuellement et le temps CPU qu'ils consomment ou `pstree(1)`_ qui présente les processus sous la forme d'un arbre. Sous Linux, le répertoire ``/proc``, qui est documenté dans `proc(5)`_ contient de nombreux pseudos fichiers avec énormément d'informations relatives aux processus qui sont en cours d'exécution. Parcourir le répertoire ``/proc`` et visualiser avec ``less(1)`` les fichiers qui s'y trouvent est une autre façon de consulter la table des processus sous Linux. - -Pour comprendre le fonctionnement des processus, il est intéressant d'expérimenter avec le processus ci-dessous. Celui-ci utilise l'appel système `getpid(2)`_ pour récupérer son :term:`pid`, l'affiche et utilise la fonction `sleep(3)`_ de la librairie pour se mettre en veille pendant trente secondes avant de se terminer. - -.. literalinclude:: src/getpid.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Ce programme peut être compilé avec `gcc(1)`_ pour produire un exécutable. - -.. code-block:: console - - $ ls -l getpid* - -rw-r--r-- 1 obo obo 608 10 fév 12:11 getpid.c - $ gcc -Wall -o getpid getpid.c - $ ls -l getpid* - -rwxr-xr-x 1 obo obo 8800 10 fév 12:12 getpid - -rw-r--r-- 1 obo obo 608 10 fév 12:11 getpid.c - -Cet exemple utilise la commande `ls(1)`_ pour lister le contenu d'un répertoire. L'argument ``-l`` permet de d'obtenir pour chaque fichier son nom, sa date de modification, sa taille, l'utilisateur et le groupe auquel il appartient ainsi que ses permissions. Sous Unix, les permissions associées à un fichier sont divisées en trois blocs. Le premier bloc correspond aux permissions qui sont applicables à l'utilisateur qui possède le fichier. Pour l'exécutable ``getpid``, les permissions du propriétaire sont ``rwx``. Elles indiquent que le propriétaire peut lire le fichier (permission ``r``), l'écrire ou l'effacer (permission ``w``) et l'exécuter (permission ``x``). Sous Unix, seuls les fichiers qui possèdent la permission à l'exécution peuvent être lancés depuis l'interpréteur. Ces permissions peuvent être modifiées en utilisant la commande `chmod(1)`_. Les deux autres blocs de permissions sont relatifs aux membres du même groupe que le propriétaire et à un utilisateur quelconque. Nous y reviendrons plus en détail lorsque nous abordons les systèmes de fichiers. En pratique, il est important de savoir qu'un fichier shell ou un fichier compilé qui n'a pas le bit de permission ``x`` ne peut pas être exécuté par le système. Ceci est illustré par l'exemple ci-dessous. - -.. code-block:: console - - $ chmod -x getpid - $ ls -l getpid* - -rw-r--r-- 1 obo obo 8800 10 fév 12:12 getpid - -rwxr-xr-x 1 obo obo 8800 10 fév 12:11 getpid.o - $ ./getpid - -bash: ./getpid: Permission denied - $ chmod +x getpid - $ ./getpid - Processus : 11147 - -L'interpréteur de commande `bash(1)`_ permet lancer plusieurs processus en tâche de fond. Cela se fait en suffixant la commande avec ``&``. Des détails complémentaires sont disponibles dans la section ``JOB CONTROL`` du manuel de `bash(1)`_. Lorsqu'un processus est lancé en tâche de fond, il est détaché et n'a plus accès à l'entrée standard. Par contre, il continue à pouvoir écrire sur la sortie standard et la sortie d'erreur standard. L'exemple ci-dessous illustre l'exécution de deux instances de ``getpid``. - -.. code-block:: console - - $ ./getpid & - [1] 10975 - $ Processus : 10975 - [pid=10975] Sleep : 30 secondes - $ ./getpid & - [2] 10976 - $ Processus : 10976 - [pid=10976] Sleep : 30 secondes - ps u - USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND - obo 8361 0,0 0,0 2435548 208 s003 S+ 9:24 0:00.14 -bash - obo 10975 0,0 0,0 2434832 340 s000 S 12:05 0:00.00 ./getpid - obo 10976 0,0 0,0 2434832 340 s000 S 12:05 0:00.00 ./getpid - [pid=10975] Fin du processus - [pid=10976] Fin du processus - [1]- Done ./getpid - [2]+ Done ./getpid - -Ces deux instances partagent la même sortie standard. En pratique, lorsque l'on lance un processus en tâche de fond, il est préférable de rediriger sa sortie et son erreur standard. Lorsque l'on développe de premiers programmes en C, il arrive que celui-ci se lance dans une boucle infinie. Deux techniques sont possibles pour interrompre un tel processus qui consomme inutilement les ressources de la machine et peut dans certains cas la surcharger fortement. - -Si le programme a été lancé depuis un shell, il suffit généralement de taper sur `Ctrl-C` pour interrompre son exécution, comme dans l'exemple ci-dessous. - -.. code-block:: console - - $ ./getpid - Processus : 11281 - [pid=11281] Sleep : 30 secondes - ^C - - -Parfois cependant `Ctrl-C` n'est pas suffisant. C'est le cas notamment lorsqu'un processus a été lancé en tâche de fond. Dans ce cas, la meilleure technique est d'utiliser `ps(1)`_ pour trouver l'identifiant du processus et l'interrompre via la commande `kill(1)`_. Cette commande permet d'envoyer un :term:`signal` au processus. Nous verrons plus tard le fonctionnement des signaux sous Unix. À ce stade, le signal permettant de terminer avec certitude un processus est le signal ``KILL``. C'est celui qui est utilisé dans l'exemple ci-dessous. - -.. code-block:: console - - $ ./getpid & - [1] 11285 - $ Processus : 11285 - [pid=11285] Sleep : 30 secondes - ps - PID TTY TIME CMD - 384 ttys000 0:00.32 -bash - 11285 ttys000 0:00.00 ./getpid - $ kill -KILL 11285 - $ ps - PID TTY TIME CMD - 384 ttys000 0:00.33 -bash - [1]+ Terminated ./getpid - - - diff --git a/Outils/shell.rst b/Outils/shell.rst deleted file mode 100644 index b294e80..0000000 --- a/Outils/shell.rst +++ /dev/null @@ -1,997 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by Nicolas Houtain for shell and Maxime De Mol for bash -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Shell -===== - -L'interpréteur de commande, ou shell, est l'interface de communication entre l'utilisateur et le système d'exploitation. C'est un exécutable chargé d'interpréter les commandes écrites par l'utilisateur et de les exécuter. - -Dans le cadre de ce cours nous utiliserons l'interpréteur `bash(1)`_. Cet exécutable est généralement placé dans le fichier ``/bin/bash``. - -Le shell est un outil très puissant. Il permet d'effectuer de nombreuses opérations qui peuvent difficilement être réalisées manuellement ou via une interface graphique. - - -.. note:: Astuce : utilisez la complétion - - Lors de la frappe d'un nom de fichier, d'un chemin d'accès ou même d'une commande tapez sur la touche ``<tab>`` pour "compléter" le mot que vous écrivez. Si rien ne se passe tapez deux fois <tab> pour obtenir la liste des possibilités. - -.. note:: Chemin absolu et relatif - - Pour écrire la position d'un fichier (son chemin), il y a deux manières de faire : - - * Le chemin absolu : il fait référence au chemin qu'il faut parcourir dans le système de fichier en démarrant de la racine, représenté par le caractère ``/``. - - * Le chemin relatif: il fait référence au chemin à parcourir depuis le dossier courant. - - -Expressions régulières ----------------------- - -Avant de commencer à voir les commandes utiles avec le shell, il est important de définir ce qu'est une expression régulière (`regex(3)`). Les expressions régulières caractérisent des chaînes de caractères et elles sont utiles pour de nombreuses commandes. Nous l'utiliserons notamment pour faire une recherche dans un fichier. - -Dans une regex, certains caractères ont une signification particulière : - - ============= ==================================== ==================================================== - Expression Explication Exemple - ============= ==================================== ==================================================== - ``\`` Caractère d'échappement ``[\.]`` contient un "." - ``^`` Début de ligne ``^b`` commence par b - ``.`` N'importe quel caractère ``^.$`` contient un seul caractère - ``$`` Fin de ligne ``er$`` finit par "er" - ``|`` Alternative ``^(a|A)`` commence par a ou A - ``( )`` Groupement ``^((a)|(er))`` commence par a ou er - ``-`` Intervalle de caractères ``^[a-d]`` commence par a,b,c ou d - ``[ ]`` Ensemble de caractères ``[0-9]`` contient un chiffre - ``[^]`` Tout sauf un ensemble de caractères ``^[^a]`` ne commence pas par a - ``+`` 1 fois ou plus ``^(a)+`` commence par un ou plusieurs a - ``?`` 0 ou 1 fois ``^(a)?`` commence ou non par un a - ``*`` 0 fois ou plus ``^(a)*`` peut ou non commencer par a - ``{x}`` x fois exactement ``a{2}`` deux fois "a" - ``{x,}`` x fois au moins ``a{2,}`` deux fois "a" au moins - ``{x, y}`` x fois minimum, y maximum ``a{2,4}`` deux, trois ou quatre fois "a" - ============= ==================================== ==================================================== - -Notes : - - - ``^b$`` = contient uniquement le caractère ``b`` - - ``^$`` = la ligne est vide - -Nous verrons plus en détail leur utilisation avec les commandes plus complexes. - - -Manipulation des répertoires ----------------------------- - -Chaque processus travaille dans un répertoire dit courant. C'est le répertoire dans lequel le processus accède pour lire ou écrire des fichiers lorsque le processus utilise un nom relatif. La commande `pwd(1)`_ affiche le chemin du répertoire courant. - -Il est possible de changer le répertoire courant du processus ou du shell en utilisant la commande `cd(1posix)`_. Exemples : - - - `cd(1posix)`_ `chemin` : change le répertoire courant par celui de "chemin". - - `cd(1posix)`_ : change le répertoire courant par le répertoire de login de l'utilisateur courant. - - `cd(1posix)`_ .. : remonte dans le répertoire prédécesseur dans l'arborescence des fichiers. - -La commande `mkdir(1)`_ permet de créer un répertoire. Elle prend comme argument le nom du répertoire à créer. -La commande `rmdir(1)`_ supprime un répertoire qui doit être vide. Pour effacer un répertoire et tous les fichiers qu'il contient, il faut utiliser la commande `rm(1)`_ avec l'option ``-r``. Ainsi, ``rm -r /tmp/t`` supprime le répertoire ``/tmp/t`` ainsi que tous les fichiers et sous-répertoires se trouvant dans ce répertoire. - -La commande `ls(1)`_ permet de connaître l'ensemble des fichiers et répertoires contenus dans le répertoire courant. Elle supporte plusieurs options dont les plus utiles sont : - - * ``-F`` : Positionne à la fin des noms de fichier un ``/`` pour les répertoires et ``*`` pour les fichiers exécutables - * ``-a`` : Affiche tous les fichiers, y compris les fichiers cachés (ceux qui commencent par le caractère ``.`` ) - * ``-d`` : Evite de lister le contenu d'un répertoire : si `rep` est un répertoire, ``ls -l`` `rep` listera le contenu du répertoire `rep`, alors que ``ls -ld`` `rep` listera la description du répertoire - * ``-l`` : Description complète du contenu d'un répertoire (une ligne par fichier) - -Avec l'option ``-l``, le premier caractère de la ligne indique le type du fichier. Le caractère ``-`` correspond à un fichier standard et ``d`` à un répertoire. Il est aussi possible de connaître le contenu d'un autre répertoire que le répertoire courant en fournissant le nom de ce répertoire comme argument à la commande ``ls``. - - .. code-block:: console - - /repertoiretest $ ls - file.txt repertoiresoustest/ - - /repertoiretest $ l repertoiresoustest/ - first.txt log.log second.txt - - -Manipulation de fichiers ------------------------- - -Créer et détruire -^^^^^^^^^^^^^^^^^ - - * > filename crée un fichier vide. - * `touch(1)`_ filename crée un fichier vide. - * `echo(1)`_ mon_texte > filename crée un fichier avec "mon_texte" dedans. - - `rm(1)`_ [-irf] files efface les fichiers - * -i : intéractif, demande une confirmation sur chaque fichier - * -f : force la suppression du fichier - * -r : efface un répertoire et son contenu - -Visualiser -^^^^^^^^^^ - - * `cat(1)`_ [-opt] f1 f2 concatène et affiche les deux fichiers. - * `cat(1)`_ [-opt] file affiche le fichier sur la sortie standard. - - * -v : convertit les caractères spéciaux en caractères affichables - * -n : numérote les lignes - * -b : numérote seulement les lignes non vides - * -E : affiche le symbôle $ à la fin de chaque ligne - * -T : affiche les caractères de tabulation comme ^I - * -A : équivalent à -vET - * -e : équivalent à -vE - * -t : équivalent à -vT - - Avec cat, il est possible d'écrire depuis la console dans un fichier. - Appuyez sur ctrl+D au début d'une ligne pour terminer la saisie - - .. code-block:: console - - $ cat > monfichier.txt - En faisant ceci je remplace le texte dans - monfichier.txt - $ - - $ cat >> monfichier.txt - et je rajoute ceci à la fin - $ - - $ cat monfichier.txt - En faisant ceci je remplace le texte dans - monfichier.txt - et je rajoute ceci à la fin - - -`nl(1)`_ [-opt] file affiche le contenu d'un fichier et en numérote les lignes. - * -bt : numérote les lignes non vides (par défaut) - * -ba : numérote toutes les lignes - * -bpXXX : numérote seulement les lignes qui contiennent la chaîne de caractères XXX - * -sX   : supprime le décalage dû à la numérotation et utilise le séparateur X - * -s'XXX' : supprime le décalage dû à la numérotation et utilise la chaîne 'XXX' - -`paste(1)`_ [-opt] f1 f2 concatène horizontalement et affiche les deux fichiers. - * -s : copie les lignes d'un fichier sur une ligne - -`more(1)`_ file visualise le contenu du ou des fichiers par page. - Si il contient plus d'une page : - * q ou Q : pour terminer la visualisation - * RETURN : pour visualiser une ligne supplémentaire - * ESPACE : pour visualiser la page suivante - * h : pour obtenir de l'aide - -Modifier -^^^^^^^^ - -`touch(1)`_ filename met à jour les dates d'accès et de modification du fichier. Crée le fichier si il n'existe pas. - * -c : empêche la création du fichier si celui ci n'existe pas - * -m : change uniquement la date de modification du fichier - * -a : change uniquement la date d'accès du fichier - -`split(1)`_ [-opt] file [out] coupe le fichier en plusieurs petites parties - * -b nbr : decoupe selon un nombre d'octets - * -n nbr : decoupe selon un nombre de lignes - -Extraction de données -^^^^^^^^^^^^^^^^^^^^^ - -`grep(1)`_ [-opt] regex file recherche l'expression dans les fichiers. - * -i : ignore la casse - * -v : affiche les lignes ne contenant pas l'expression. - * -c : compte les lignes ne contenant pas la chaine - * -n : numérote chaque ligne contenant la chaîne - * -x : affiche les lignes correspondant exactement à la chaine - -`uniq(1)`_ [-opt] filename affiche le fichier en supprimant les lignes qui se répètent successivement. - * -u : Affiche seulement les lignes n'apparaissant qu'une seule fois - * -d : Affiche seulement les lignes répétées - * -c : En plus de l'affichage standard, chaque ligne est précédée du nombre de répétitions - Si cette option est utilisée, alors les options -u et -d sont ignorées. - * -i : ignore la casse - * -s N : ne compare pas les N premiers caractères de chaque ligne - * -w N : ne compare pas plus de N caractères de chaque ligne - -`sort(1)`_ [-opt] filename trie les lignes par ordre alphabétique. - * -f : ignore la casse - * -r : inverse l'ordre de tri - * -o : modifie la sortie standard - * -t : modifie le caractère séparateur. Par défaut c'est une chaîne de blancs - * -n : compare selon la valeur arithmétique - * -k : spécifie la colonne utilisée pour le tri - - uniq et sort sont souvent utilisés ensemble. Par exemple, cette commande trie les lignes de file.txt selon leur nombre d'apparitions. - - .. code-block:: console - - $ cat file.txt - une fois - deux fois - deux fois - trois fois - encore une fois - trois fois - toujours une fois - trois fois - - $ sort file.txt | uniq -c | sort -n - 1 encore une fois - 1 toujours une fois - 1 une fois - 2 deux fois - 3 trois fois - - Une autre utilisation possible est de pouvoir trier un fichier, par exemple CSV, sur une colonne particulière. Tout d'abord, il faut modifier le séparateur de colonne avec -t, puis spécifier la colonne - - .. code-block:: console - - $ cat file.txt - pcr,01,3 - pcr,1,3 - pcr,04,5 - pcr,03,6 - alex,03,6 - zorro,01,20 - zorro,5,4 - - $ cat file.txt | sort -t, -k2n - zorro,01,20 - pcr,01,3 - pcr,1,3 - alex,03,6 - pcr,03,6 - pcr,04,5 - zorro,5,4 - -`diff(1)`_ [-opt] f1 f2 compare le contenu de deux fichiers. - * -i : ignore la casse - * -c : rapport plus clair - * -q : indique uniquement si les fichiers sont différents - * -b : ignore les différences dues à des espaces blancs - * -B : ignore les différences dues à des lignes blanches - - .. code-block:: console - - $ cat test.txt - premiere ligne similaire - - deuxieme differente - et moi pareil - troisieme comme la deuxieme - - et enfin la quatrieme est la meme! - $ cat testbis.txt - premiere ligne similaire - en effet, je ne lui ressemble pas.. - et moi pareil - moi non plus, tres cher. - - et enfin la quatrieme est la meme! - - $ diff test.txt testbis.txt - 2,3c2 = Les lignes 2,3 du premier fichier et 2 du second sont différentes - < _ - < deuxieme differente \ - --- > Affichage des lignes différentes - > en effet, je ne lui ressemble pas.. _/ - 5c4 _ - < troisieme comme la deuxieme \ - --- > Même réflexion - > moi non plus, tres cher. _/ - - -Obtenir des informations -^^^^^^^^^^^^^^^^^^^^^^^^ - -`wc(1)`_ [-opt] filename donne sur stdout des informations au sujet de l'entrée standard ou d'une liste de fichiers. - Première colonne est le nombre de lignes, deuxième le nombre de mots et en dernier le nombre d'octets. - * -l : nombre de lignes - * -c : nombre d'octets - * -m : nombre de caractères - * -L : la longueur de la plus longue ligne - * -w : le nombre de mots - -Manipulations communes aux répertoires et fichiers --------------------------------------------------- - -Copier -^^^^^^ - -`cp(1)`_ [-opt] src dst copie la src dans le fichier dst. - Si dst n'existe pas, il est créé. Sinon, si c'est un fichier, son contenu est écrasé. - * -r : spécifie la copie d'un répertoire - * -u : copie uniquement si src est plus récent que dst ou si il est manquant dans dst - - Note : Si la destination est un répertoire, alors la source peut être une liste de fichiers. - - .. code-block:: console - - $ cp test.txt ./testbis/ - $ cp test.txt btest.txt ../ - $ cp -r repertoire ../repertoirebis - -Déplacer ou renomer -^^^^^^^^^^^^^^^^^^^ - -`mv(1)`_ [-opt] src dst renomme ou déplace src en dst. - * -f : écrase les fichiers existants - * -i : demande confirmation avant d'écraser un fichier existant - * -n : n'écrase aucun fichier déja existant - - Note : Si la destination est un répertoire, alors la source peut être une liste de fichiers. - - .. code-block:: console - - $ mv test.txt testrename.txt - $ mv test.txt ./testbis/ - $ mv repertoire ./repertoirebis - -Rechercher -^^^^^^^^^^ - -Pour les critères de recherche : - * critère1 critère2 = et logique - * !critère = non logique - * critère1 -a critère2 = ou logique - -`find(1)`_ chemin regex recherche les fichiers/répertoires caractérisés par nom, à partir du répertoire rep et affiche le résultat. - * -name : sur le nom du fichier - * -perm : sur les droits d'accès du fichier - * -links : sur le nombre de liens du fichier - * -user : sur le propriétaire du fichier - * -group : sur le groupe auquel appartient le fichier - * -type : sur le type (d=répertoire, c=caractère, f=fichier normal) - * -size : sur la taille du fichier en nombre de blocs (1 bloc=512octets) - * -atime : par date de dernier accès en lecture du fichier - * -mtime : par date de dernière modification du fichier - * -ctime : par date de création du fichier - * -print : affiche les fichiers sur stdout - - .. code-block:: console - - $ find ./ -name "*fi*" -print = contenant fi - $ find ./ -mtime "3" -print = modifié dans les trois derniers jours - $ find ./ -name "*s*" -a -name "f*" = contenant s et commençant par f - - Note : "./" représente le répertoire courant - - - Il y a trois remarques à faire sur la commande find : - - * Il est parfois nécessaire de mettre -print dans la commande pour afficher le résultat - - * Lors de larges recherches, il peut y avoir un message d'erreur pour chaque tentative d'accès à un fichier où vous n'avez pas d'autorisation d'accès, par exemple des fichiers système. Pour éviter que ces messages d'erreur ne polluent la recherche, il faut rediriger la sortie d'erreur standard dans "un puits sans fond". Pour cela, rajoutez 2>/dev/null - - * Il est parfois très utile de pouvoir exécuter une commande sur les fichiers trouvés. La solution la plus légère est de rediriger la sortie et de lui attribuer une commande. Pour cela, il faut faire : "find rep -name expr| xargs commande". Cette commande est expliquée dans la section "Commandes plus complexes". - - - Pour cet exemple, le résultat est tous les fichiers dont le nom contient "mon test", et donc le fichier contient "supertab". - .. code-block:: console - - $ find /testdirectory -name *mon test* -type f | xargs grep supertab - - -Création de lien -^^^^^^^^^^^^^^^^ - -`ln(1)`_ [-opt] src dst création d'un lien (raccourci) sur un fichier ou un répertoire. Attention un lien n'est pas une copie. - Il existe deux sortes de liens: - * le lien physique : uniquement des fichiers - * le lien symbolique (avec l'option -s) : fichiers et répertoires - - "SHEMA" - -Dans le cas de lien physique, on supprime le fichier en supprimant tous les liens qui pointent sur ce fichier. -Par contre pour des liens symboliques, vous pouvez effacer le fichier sans effacer les liens, mais alors ceux-ci seront invalides. - -Archivage et compression -^^^^^^^^^^^^^^^^^^^^^^^^ - -Il est important de noter qu'une archive n'est pas forcément compressée. - -`tar(1)`_ [-opt] tarname.tar files crée une archive à partir d'une liste de fichiers ou de répertoires. - * f : argument obligatoire, sauf si l'on veut lire ou écrire vers/depuis un lecteur de bande - * c : crée une archive - * z : compresse l'archive créée, en utilisant gzip. (Attention, l'extension doit être "tar.gz") - * j : compresse mieux l'archive mais prend plus de temps. (Attention, l'extension doit être "tar.bz2") - * x : désarchive - * t : inspection de l'archive - - .. code-block:: none - - $ tar cf monarchive.tar firstfile.c secondfile.c = crée une archive contenant deux fichiers - $ tar cfz monarchive.tar.gz firstfile.c secondfile.c = crée une archive compressée - $ tar tf monarchive.tar = inspecte l'archive créée - firstfile.c - secondfile.c - $ tar xf monarchive.tar.gz = désarchive - $ tar xf monarchive.tar -C /home = désarchive monarchive.tar dans /home - - -`gzip(1)`_ file compresse un fichier ou une archive - * -c : la compression est effectuée sur la sortie standard au lieu du fichier lui-même - * -c1 : compression plus rapide - * -c9 : meilleur compression - - .. code-block:: console - - $ gzip secondfile.c = compresse un fichier et produit un fichier .gz - $ gzip monarchive.tar = compresse une archive - - $ ls - monarchive.tar = compresse monarchive.tar vers monarchive.tar.gz - $ gzip monarchive.tar - ls - monarchive.tar monarchive.tar.gz - -Permissions -^^^^^^^^^^^ - -Pour chaque fichier, il y a trois classes d'utilisateurs - * user : le propriétaire du fichier - * groupe : le groupe auquel appartient le fichier - * autre : tous les autres - -Les permissions accordées à ces trois classes sont : - * r : lecture - * w : écriture - * x : exécution (Un fichier peut être executé et un répertoire peut devenir répertoire courant) - - -`chmod(1)`_ mode files change les permissions du ou des fichiers/répertoires. - - .. code-block:: console - - user group other - mode désiré : rwxr-xr-- rwx r-x r-- - 111 101 100 (en binaire) - 7 5 4 (en hexadecimal) - - d'où la commande ``chmod 754 fichier`` - - -`chown(1)`_ owner files change le propriétaire du fichier. - -`chgrp(1)`_ grp files change le groupe du fichier. - -Obtenir des informations -^^^^^^^^^^^^^^^^^^^^^^^^ - -`stat(1)`_ [-opt] filename donne des informations sur les métadonnées associées au fichier - * -f : affiche l'état du système de fichiers plutôt que celui du fichier - * -L : suit les liens du fichier - * -t : affiche les informations de façon concise - * --format=FORMAT : affiche les informations selon le format choisi - - .. code-block:: console - - Séquences de format valables pour les fichiers : - %a droits d'accès en octal - %A droits d'accès dans un format lisible par un humain - %b nombre de blocs alloués (voir << %B >>) - %B taille, en octets, de chaque bloc rapporté par %b - %d numéro de péripherique en décimal - %D numéro de péripherique en hexadécimal - %f mode brut en hexadécimal - %F type de fichier - %g identifiant de groupe du propriétaire - %G nom de groupe du propriétaire - %h nombre de liens directs (<< hard >>) - %i numéro d'inode - %m point de montage - %n nom de fichier - %N nom du fichier cité, déréférencé s'il s'agit d'un lien symbolique - %o taille de bloc d'entrée/sortie - %s taille totale, en octets - %u identifiant du propriétaire - %U nom d'utilisateur du propriétaire - %w date de création au format lisible, ou << - >> si elle n'est pas connue - %x date du dernier accés au format lisible - %y date de la dernière modification au format lisible - %z date du dernier changement au format lisible - - Séquences de format valables pour les systèmes de fichiers : - %a nombre de blocs libres disponibles pour les utilisateurs normaux - %b nombre total de blocs de données dans le système de fichiers - %c nombre total d'inodes dans le système de fichiers - %d nombre d'inodes libres dans le système de fichiers - %f nombre de blocs libres dans le système de fichiers - %i identifiant du système de fichier en hexadécimal - %l longueur maximale des noms de fichier - %n nom de fichier - %s taille des blocs (pour des transferts plus rapides) - %S taille fondamentale des blocs (pour le décompte des blocs) - %t type en hexadecimal - %T type dans un format lisible par un humain - - -Gestion des processus ---------------------- - -`top(1)`_ affiche les processus en cours d'exécution. -`pstree(1)`_ affiche l'arbre des processus. - -`strace(1)`_ [-opt] cmd trace les appels systèmes et la création de signaux effectués par une commande - * -c : collecte quelques statistiques de base concernant les appels système tracés - * -o : redirige la sortie standard - * -p : avec cette option, cmd est remplacé par le PID d'un processus, et celui ci est tracé - * -T : indique le temps passé dans chaque appel système - * -t : indique l'heure au début de chaque ligne. -tt comprend les microsecondes - * -r : donne le temps entre deux appels systèmes successifs - - .. code-block:: console - - $ strace -c ./monexecutable -o fichierRecoltantLesInformations.log - - -`lsof(8)`_ [-opt] affiche les fichiers ouverts. - * -p PID : uniquement les fichiers ouverts du processus - * -i : affiche les connexions réseau ouvertes - - .. code-block:: console - - $ lsof -i -p 2735 = Les connexions ouvertes ET les fichiers ouverts par le processus 2735 - $ lsof -i -a -p 2735 = Les connexions ouvertes par le processus 2735 - - -`kill(1)`_ pid supprime le processus specifié. Si malgré la commande, le processus n'est pas détruit, essayez kill -9 pid. - - -Symboles utiles ---------------- - -Redirection de l'entrée, sortie et erreur standard -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Lors de l'exécution d'une commande, un processus est créé et celui-ci va ouvrir trois flux : l'entrée, la sortie et l'erreur standard. Par défaut lorsque l'on exécute un programme, les données sont donc lues à partir du clavier et le programme envoie sa sortie et ses erreurs sur l'écran. toutefois, il est possible de rediriger ces flux. - - * < l'entrée standard est lue à partir d'un fichier - * > La sortie standard est redirigée dans un fichier. Si le fichier existe, il est vidé avant d'écrire. - * >> La sortie standard est redirigée dans un fichier. Si le fichier existe, la sortie standard est ajoutée à la fin de celui ci. - * 2> La sortie d'erreur standard est redirigée - * cmd1 | cmd2 La sortie standard de cmd1 devient l'entrée standard de cmd2 - -Symboles pour les commandes -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - * ``?`` caractère joker remplaçant un seul caractère - * ``!`` inverse le sens d’un test ou l’état de sortie d’une commande. - - * ``*`` caractère joker remplaçant une chaîne de caractères - * ``&`` exécute une commande en arrière-plan - * ``;`` sépare des instructions sur une seule ligne - - * ``cmd1 && cmd 2`` cmd2 n'est exécuté que si cmd1 réussit - * ``cmd1 || cmd 2`` cmd2 n'est exécuté que si cmd1 échoue - - * ``\`` annule l'effet du caractère spécial suivant - * ``" "`` annule l'effet de tous les caractères spéciaux entre les guillemets, sauf ``$`` et ``\`` - - -Commandes utiles ----------------- - -Pour effectuer des chaînes -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -`xargs(1)`_ permet d'appliquer une commande à l'entrée standard. - - Pour cet exemple, le résultat est tous les fichiers dont le nom contient "mon test", et dont le fichier contient "supertab". - - .. code-block:: console - - $ find /testdirectory -name *mon test* -type f | xargs grep supertab - -`tee(1)`_ file lit depuis l'entrée standard, écrit dans la sortie standard et dans le fichier. Elle est utilisée pour continuer une chaîne tout en faisant une sauvegarde des informations. - - .. code-block:: console - - % echo "Les tubes sont un mécanisme puissant." | tee fichier.txt | wc - 1 6 39 - % cat fichier.txt - Les tubes sont un mécanisme puissant. - - On peut voir que le texte a bien été relayé vers la commande "wc" et qu'en même temps, ce texte a été écrit dans fichier.txt - - -Informations générales -^^^^^^^^^^^^^^^^^^^^^^ - -`su(1)`_ passe en mode "root", c'est à dire administrateur - -`whatis(1)`_ cmd explique briévement l'utilité d'une commande - -`apropos(1)`_ [-opt] motclé recherche dans les man pages les commandes correspondants aux mots clés. - * -a : Affiche seulement les résultats répondant à tout les mots clés. - L'inverse est le fonctionnement par défault - -`date(1)`_ donne l'heure, selon l'horloge de votre ordinateur - -`cal(1)`_ affiche un calendrier du mois courant - -`halt(8)`_ éteint l'ordinateur. - -`reboot(8)`_ redémarre l'ordinateur - -Informations système -^^^^^^^^^^^^^^^^^^^^ - -`time(1posix)`_ programme permet de calculer le temps d'exécution d'un programme - -`df(1)`_ [-opt] [file] indique l'espace disque utilisé et disponible sur tous les systèmes de fichiers. - Si des fichiers sont passés en argument, seul les systèmes de fichiers contenant un des fichiers sont montrés. - - * -h Imprime les dimensions dans un format lisible par l’utilisateur - * -H Idem que -h, mais il utilise des puissances de 1000 au lieu de 1024 - * -i Affiche l’information i-node au lieu de l’utilisation des blocs - * -l Limite l’affichage aux systèmes de fichiers locaux - * -P Utilise le format de résultat POSIX - * -T Imprime le type de système de fichiers - - -Maniement des jobs -^^^^^^^^^^^^^^^^^^ - -La plupart des commandes en console sont exécutées rapidement, mais ce n'est pas le cas de toutes. Certaines commandes, que l'on va appeler `jobs`, prennent plus de temps (comme par exemple copier un très gros fichier), et d'autres encore tournent indéfiniment. - -Évidemment, quand un job est en cours d'exécution à la console, plus aucune action ne peut être faite sur celle-ci. Unix nous vient en aide dans ce cas-là avec le raccourci ``Ctrl+z`` et les commandes `jobs(1)`_, `bg(1)`_ et `fg(1)`_. - - * ``Ctrl+z`` : Le job passe dans l'état ``suspended``. Il est en pause, et placé en background. - * ``jobs`` : Affiche à la console la liste des jobs présents en background - * ``bg`` : Passe un job mis en background de l'état ``suspended`` à l'état ``running``. Le job reste en background, mais il continue à s'exécuter - * ``fg`` : Passe un job du background à l'avant-plan - -Exemples : - - .. code-block:: none - - $ yes > \dev\null - #nous lançons la commande yes - - ^Z - #nous la suspendons avec Ctrl+z - [1]+ Stopped yes > \dev\null - #elle est placée en arrière-plan - - $ jobs - #nous regardons la liste des jobs en arrière plan - [1]+ Stopped yes > \dev\null - #chaque job à un numéro qui lui est attribué. ici 1 - - $ bg 1 - #nous relançons yes en arrière-plan. On peut utiliser son nom comme son numéro avec la commande bg et fg - [1]+ yes > \dev\null & - #yes s'est remis en route - - $ jobs - #nous vérifions le statut de yes avec jobs - [1]+ Running yes > \dev\null & - #il est en cours d'exécution - - $ fg yes - #nous remettons yes en avant-plan - yes > \dev\null - - ^Z - #nous le suspendons à nouveau - [1]+ Stopped yes > \dev\null - - $ kill %1 - #nous terminons yes avec la commande kill %[numJob] - [1]+ Stopped yes > \dev\null - - $ jobs - #nous vérifions les jobs - [1]+ Terminated: 15 yes > \dev\null - #yes est marqué Terminated - - $ jobs - #un deuxième appel à jobs nous affiche une liste vide - - -.. _`jobs(1)`: http://www.manpagez.com/man/1/jobs/ -.. _`bg(1)`: http://linux.die.net/man/1/bg -.. _`fg(1)`: http://linux.die.net/man/1/fg - - -Commandes complexes -------------------- - -Modification d'un fichier -^^^^^^^^^^^^^^^^^^^^^^^^^ - - - -`sed(1)`_ [-n] [-e 'prog'] [-f cmdfile] [file] applique des commandes de 'prog' sur un fichier - - * -n : n'affiche aucune ligne, sauf celle spécifiée avec la commande p - * -e : specifie les commandes à appliquer sur le fichier - Note : Il vaut mieux encadrer la commande avec des ' ou des " - * -f : les commandes sont lues à partir d'un fichier - -Pour bien comprendre la puissance de sed, il est important de comprendre son fonctionnement. sed fonctionne en 4 étapes : - - * Lecture d'une ligne sur le flux d'entrée, et stockage dans l'espace de travail - * Exécute les commandes sur l'espace de travail - * Envoie la ligne au flux de sortie en lui rajoutant un '\n' - * Recommence avec la ligne suivante ... - - -Une commande d'un 'prog' est constituée d'un adressage, c-à -d les lignes sur lesquelles la commande est appliquée, et de l'action à exécuter. - -1) L'adressage est décomposé en deux catégories. - - * : toutes les lignes - * num : la ligne "num". La dernière ligne est symbolisée par $ - * num1, num2 : les lignes entre num1 et num2 - - * /regex/ : les lignes correspondant à l'expression régulière regex - * /regex1/, /regex2/ : les lignes entre la première ligne correspondant à regex1 et la première ligne correspondant à regex2 - Si regex2 est vide, la commande sera appliquée jusqu'à la fin du fichier. - - Note : Le ! représente la négation. Mettez le après votre spécification des lignes pour prendre la négation - - RAPPEL sur les regex : - - - ============= ==================================== ==================================================== - Expression Explication Exemple - ============= ==================================== ==================================================== - ``\`` Caractère d'échappement ``[\.]`` contient un "." - ``^`` Début de ligne ``^b`` commence par b - ``.`` N'importe quel caractère ``^.$`` contient un seul caractère - ``$`` Fin de ligne ``er$`` finit par "er" - ``|`` Alternative ``^(a|A)`` commence par a ou A - ``( )`` Groupement ``^((a)|(er))`` commence par a ou er - ``-`` Intervalle de caractères ``^[a-d]`` commence par a,b,c ou d - ``[ ]`` Ensemble de caractères ``[0-9]`` contient un chiffre - ``[^]`` Tout sauf un ensemble de caractères ``^[^a]`` ne commence pas par a - ``+`` 1 fois ou plus ``^(a)+`` commence par un ou plusieurs a - ``?`` 0 ou 1 fois ``^(a)?`` commence ou non par un a - ``*`` 0 fois ou plus ``^(a)*`` peut ou non commencer par a - ``{x}`` x fois exactement ``a{2}`` deux fois "a" - ``{x,}`` x fois au moins ``a{2,}`` deux fois "a" au moins - ``{x, y}`` x fois minimum, y maximum ``a{2,4}`` deux, trois ou quatre fois "a" - ============= ==================================== ==================================================== - - - Notes : - - - ``^b$`` = contient uniquement le caractère ``b`` - - ``^$`` = la ligne est vide - -2) Les actions - - * p : affiche les lignes - * d : supprime les lignes - * y/l1/l2 : remplace les caractères de la première liste par les caractères de la seconde - * s/mtf/sbst/ : substitue le mtf par le sbst - Note : Par défaut seule la première occurrence est remplacée. - * Pour toutes les remplacer : /s/motif/substitut/g - * Pour en remplacer 4 : /s/motif/substitut/4 - - * N : charge une ligne supplémentaire dans l'espace de travail - * D : efface l'espace de travail jusqu'au premier saut de ligne incorporé - * b : revient - - Pour faire des commandes groupées, placez vos commandes entre {} séparées par ";". - - Quelques illustrations basiques : - - .. code-block:: none - - $ sed '' test.txt = Le script est vide, il renvoie simplement le fichier - - $ sed -n '/Ici/p' test.txt = Affiche les lignes contenant Ici - $ sed 'p' test.txt = Double toutes les lignes - - $ sed -e '4d; 7d' test.txt = Supprime les lignes 4 et 7 - $ sed -e '4,7d' test.txt = Supprime les lignes entre 4 et 7 - - $ sed '/^#/ d' test.txt = Supprime les lignes commencant par # - $ sed '/e$/ d' test.txt = Supprime les lignes se terminant par e - $ sed '/#/,/@/d' test.txt = Supprime les lignes comprises entre le premier # et le premier @ - - $ sed -e 's/^#//' test.txt = Supprime le commentaire en début de ligne, puisqu'il - est remplacé par '' - - $ sed -e 'y/éèê/eee/' test.txt = Retire les accents, puisqu'ils sont remplacés par 'e' - - $ sed -e ' 4,7 {y/éèê/eee/;s/e/[]/} test.txt = Remplace les accents, puis remplace les "e" par "[]" - - $ sed -e '/^$/ {N; D}' test.txt = Supprime les sauts de ligne - - - Explication : Pour les lignes vides, on charge la ligne suivante, on envoie ce qui se trouve dans l'espace de travail jusqu'au premier '\n', puis on continue le traitement du texte. Pour continuer le traitement, une nouvelle ligne est chargée et va donc "écraser" les '\n' qui sont toujours présents dans l'espace de travail. - - -Lors du remplacement d'un mot par un autre, il peut survenir un problème de taille. En effet, le remplacement n'est effectué que sur le premier mot de la ligne trouvé. - - .. code-block:: console - - $ sed -e ' s/[oe]/[/' test.txt - B[njour, - - C[ci est un fichier de test. - Ici la lign[ numéro 4. - - # c[ci pourrait être un commentaire - Ici la lign[ numéro 7.I - - Au r[voir - - On remarque que tout les 'e' et 'o' n'ont pas été remplacés... - -Pour contrecarrer ce problème, il est possible de placer dans le script un label et de revenir dessus, comme un goto en C. Pour effectuer ce retour utilisez la commande 'b'. - - .. code-block:: console - - $ sed -re ':start {s/[eo]/[/g; /[eo]/ b start}' test.txt - B[nj[ur, - - C[ci [st un fichi[r d[ t[st. - Ici la lign[ numér[ 4. - - # c[ci p[urrait êtr[ un c[mm[ntair[ - Ici la lign[ numér[ 7.I - - Au r[v[ir - - Explication : Un label est placé au début des commandes. La première commande remplace le premier [eo] trouvé. La seconde retourne au label si il reste encore un [eo] dans la ligne. Une fois qu'il n'y a plus de [eo], la ligne suivante est chargée. - - -Appliquer des actions à un fichier -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -`awk(1)`_ [-Fs] [-v variable] [-f fichier de commandes] 'program' fichier - * -F : Spécifie les séparateurs de champ - * -v : Définit une variable utilisée à l'intérieur du programme. - * -f : Les commandes sont lues à partir d'un fichier. - -Note : awk est une commande extrêmement puissante, elle permet d'effectuer une multitude d'opérations. Son utilisation est complexe et elle est bien détaillée sur ce site : http://www.shellunix.com/awk.html. Je vous encourage à le lire. - - -Redirection nommée -^^^^^^^^^^^^^^^^^^ - -`mkfifo(1)`_ nom crée un tube nommé - - .. code-block:: console - - ls | less est donc similaire à mkfifo /tmp/tempfifo - ls > /tmp/tempfifo - less < /tmp/tempfifo - - - - - - -.. _bash: - -Bash ----- - -Taper des commandes dans la console est inévitable lors d'opérations avancées sur un système Unix, et peut devenir très vite répétitif et fastidieux pour l'utilisateur. Le Bash est justement là pour éviter ces répétitions et automatiser certaines tâches à l'aide de scripts, qui sont des fichiers texte composés de différentes commandes Unix, lus, interprétés et exécutés par Bash. - - -Premier script -^^^^^^^^^^^^^^ - -Nous allons écrire un premier script bash pour présenter la manière générale de procéder avec un tel outil. Les scripts commencent toujours par la ligne ``#!/bin/bash`` qui indique à l'exécution qu'il s'agit d'un script et avec quel interpréteur le lire (ici bash). - - .. code-block:: bash - - #!/bin/bash - echo "Hello, 1252" - -Nous allons enregistrer ce texte sous le nom `hello.sh <https://raw.github.com/HappyRave/SystInfo1/master/valgrind/hello.sh>`_, puis changer ses permissions pour le rendre exécutable. - - .. code-block:: console - - $ chmod 700 hello.sh - -Après il ne reste plus qu'à l'exécuter et observer le résultat. - - .. code-block:: console - - $ ./hello.sh - Hello, 1252 - -Les variables -^^^^^^^^^^^^^ - -Bash permet l'utilisation de variables dans les scripts. Il peut s'agir de simples variables ou de tableaux. Bash n'est pas un langage typé, les Int ou les String n'existent pas, toutes les variables sont traitées de la même façon. Pour illustrer ceci nous allons écrire le script `variables.sh <https://raw.github.com/HappyRave/SystInfo1/master/valgrind/variables.sh>`_ - - .. code-block:: bash - - #!/bin/bash - - bonjour='Hello, ' - #il est important de ne pas mettre d'espaces autour du = - nombre[0]=12 - nombre[1]=52 - - echo $bonjour${nombre[0]}${nombre[1]} - #on accède à une variable simple avec un $ devant son nom - #on accède à un élément d'un tableau avec un $ devant et des {} autour - echo $bonjour${nombre[*]} - #le caractère * indique qu'on veut utiliser tous les éléments du tableau (séparés - #par un espace à chaque fois) - -Ce script produit comme résultat - - .. code-block:: console - - $ ./variables.sh - Hello,1252 - Hello,12 52 - -Il est interressant de visiter cette page : http://michel.mauny.net/sii/variables-shell.html - -Les structures de contrôle -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Comme dans chaque langage de programmation, bash offre les structures de contrôle habituelles telles que les boucles if, for ou encore while que nous allons démontrer maintenant. - -Comme dit précédemment, il n'y a pas de type en bash, true et false n'existent pas. Les conditions que les boucles vont utiliser seront les valeurs renvoyées par l'exécution d'une commande. Un 0 renvoyé correspond à un true, tandis que tout le reste est considéré comme un false. - -Dans le but de tester ces boucles nous utiliserons un petit programme en C, `return.c <https://raw.github.com/HappyRave/SystInfo1/master/valgrind/return.c>`_, qui va renvoyer la valeur qu'il reçoit en argument. Le script de test est `structures.sh <https://raw.github.com/HappyRave/SystInfo1/master/valgrind/structures.sh>`_. - - .. code-block:: bash - - #!/bin/bash - - if ./return 0; then - #la valeur de renvoi sera 0 quand la boucle aura été exécutée - echo "Hello" - fi - - if ./return 1; then - #ici c'est la condition else qui sera remplie - echo "Hello" - else - echo "Bye" - fi - - for i in 1 2 5 2 - #les boucles for peuvent s'écrire de cette façon - do - echo $i - done - - echo Hello again! - - for (( j=1; j<=5; j++)) - #ou encore utiliser la synthaxe classique comme en C ou Java - do - echo $j - done - - k=4 - while ((k>0)) - do - echo $k - k=$((k-1)) - done - -Le résultat à l'exécution est - - .. code-block:: console - - $ ./structures.sh - Hello - Bye - 1 - 2 - 5 - 2 - Hello again! - 1 - 2 - 3 - 4 - 5 - 4 - 3 - 2 - 1 diff --git a/Outils/src/calc.c b/Outils/src/calc.c deleted file mode 100644 index 3110bfe..0000000 --- a/Outils/src/calc.c +++ /dev/null @@ -1,21 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> - - -void calc(int a, int b) { - double res; - int i; - - for(i=0; i<6; i++) { - res += (a*5 -10) / (b-i); - printf("(%d * 5 - 17 ) / %d = %f\n", a, (b-i), res); - } -} - -int main(int argc, char *argv[]){ - int n = 165, m = 4; - - calc(n, m); - - return EXIT_SUCCESS; -} diff --git a/Outils/src/cunit.c b/Outils/src/cunit.c deleted file mode 100644 index b330f6c..0000000 --- a/Outils/src/cunit.c +++ /dev/null @@ -1,65 +0,0 @@ -#include <stdlib.h> -#include <stdbool.h> -#include <limits.h> - -#include "CUnit/Basic.h" - -void test_assert_true(void) -{ - CU_ASSERT(true); -} - -void test_assert_2_not_equal_minus_1(void) -{ - CU_ASSERT_NOT_EQUAL(2, -1); -} - -void test_string_equals(void) -{ - CU_ASSERT_STRING_EQUAL("string #1", "string #1"); -} - -void test_failure(void) -{ - CU_ASSERT(false); -} - -void test_string_equals_failure(void) -{ - CU_ASSERT_STRING_EQUAL("string #1", "string #2"); -} - -int setup(void) { return 0; } -int teardown(void) { return 0; } - -int main() -{ - CU_pSuite pSuite = NULL; - if (CUE_SUCCESS != CU_initialize_registry()) - return CU_get_error(); - - pSuite = CU_add_suite("ma_suite", setup, teardown); - if (NULL == pSuite) { - CU_cleanup_registry(); - return CU_get_error(); - } - - if ((NULL == CU_add_test(pSuite, "Test assert true", test_assert_true)) || - (NULL == CU_add_test(pSuite, "Test assert 2 not equal -1", test_assert_2_not_equal_minus_1)) || - (NULL == CU_add_test(pSuite, "Test string equals", test_string_equals)) || - (NULL == CU_add_test(pSuite, "Test failure", test_failure)) || - (NULL == CU_add_test(pSuite, "Test string equals failure", test_string_equals_failure))) - { - CU_cleanup_registry(); - return CU_get_error(); - } - -// CU_basic_set_mode(CU_BRM_VERBOSE); - CU_basic_run_tests(); - printf("\n"); - CU_basic_show_failures(CU_get_failure_list()); - printf("\n\n"); - - CU_cleanup_registry(); - return CU_get_error(); -} \ No newline at end of file diff --git a/Outils/src/getopt.c b/Outils/src/getopt.c deleted file mode 100644 index 6d95c88..0000000 --- a/Outils/src/getopt.c +++ /dev/null @@ -1,64 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -/* Definition et declaration de la structure des arguments*/ - -struct globalArgs_t { - int nbrThreads; /* Le nombre de threads lancés durant l'exécution*/ - char lettre; /* La lettre de réference*/ - int numInputFiles; /* Le nombre de fichiers qui vont être lus*/ - char **inputFiles; /* Les différents fichiers passés en arguments*/ -} globalArgs; - -static const char *optString = "t:l:h"; /* Les différentes options valables*/ - - -int main(int argc, char *argv[]){ - - int opt=0; - - /* Initialisation de globalArgs avant de commencer*/ - - globalArgs.nbrThreads=1; /* Le nombre de threads à exécuter par défaut est 1"*/ - globalArgs.lettre='a'; /* La lettre de réference par défaut est 'a' */ - globalArgs.numInputFiles=1; /* Il doit y avoir au minimum toujours 1 fichier input */ - globalArgs.inputFiles=NULL; - - opt=getopt(argc, argv, optString); /* On récupert la première option */ - - while(opt != -1){ /*Tant que l'option est valable (fait donc partie de optString)*/ - switch(opt){ - case 't': - globalArgs.nbrThreads=atoi(optarg); - break; - - case 'l': - globalArgs.lettre=optarg[0]; - break; - - case '?': - printf("Erreur : option non reconnue\n"); - exit(EXIT_FAILURE); - - case 'h': /*Display help*/ - - default: - /* On arrivera jamais ici*/ - break; - } - opt=getopt(argc, argv, optString); /* Prochaine option*/ - } - globalArgs.inputFiles=argv + optind; - globalArgs.numInputFiles=argc - optind; - - printf("Threads : %d , lettre : %c , nombre de fichiers : %d , nom des fichiers : ", globalArgs.nbrThreads, globalArgs.lettre, globalArgs.numInputFiles); - - int j; - for(j=0; j<globalArgs.numInputFiles; j++){ - printf(" %s ",globalArgs.inputFiles[j]); - } - printf("\n"); - - return EXIT_SUCCESS; -} diff --git a/Outils/src/getpid.c b/Outils/src/getpid.c deleted file mode 100644 index 15f2481..0000000 --- a/Outils/src/getpid.c +++ /dev/null @@ -1,28 +0,0 @@ -/************************************** - * getpid.c - * - * Programme d'exemple pour getpid - * - **************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -int main(int argc, char *argv[]) { - - unsigned int sec=30; - int pid=(int) getpid(); - - printf("Processus : %d\n",pid); - printf("[pid=%d] Sleep : %d secondes\n",pid, sec); - sec=sleep(sec); - if(sec==0) { - printf("[pid=%d] Fin du processus\n",pid ); - return(EXIT_SUCCESS); - } - else { - printf("[pid=%d] Interrompu alors qu'il restait %d secondes\n",pid,sec); - return(EXIT_FAILURE); - } -} diff --git a/Outils/src/malloc.c b/Outils/src/malloc.c deleted file mode 100644 index 9637bde6cbb5baf68609984998423c6e78f1617c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 zcmeIwL2JS=6bJBL75omtF|g{SomyejUBts+H{BR)W5gIW5L-#37uk2;OKYX>vXckl zUxcRby}Z2q&`7Z}soKkq@GkWP^h8n5qgOcS2j#a*1<|1Ah4=SCkBYke$P2=581_6C zTxy_l-(70CVa$t_NHkB&sk8Ne`Lp8d`M6QB(7T0X!_+Rcns?Suwdz?=C0VRiRk39& zoy@s@Be4<dKh~;wbjgLCZMF?p!G&luw}|J)XNOv~LcmsuES7JlQZ@=`cjffmYGutT zZlgV=X?0308`N+(3Vmjz-I>@O<XT9b$|6+EL8&HHx7`ePp-*K$Zq(AS(ri@Bbv|)E zraM|EqPShxH9sCz^bOmL|LL~jD$cu@6<u7ciKfZTYX9-&AE*QUwuV|S8}%2?T%*J& zskLNe9x<6(_P}lzpK-mNWoN}?k?&4&`;S9R-k)dR)7SBMGM(l(x}JX-CWQb5AOHaf vKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##E+Oy>+y9v! diff --git a/Outils/src/nofree.c b/Outils/src/nofree.c deleted file mode 100644 index 490d9d9..0000000 --- a/Outils/src/nofree.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <stdlib.h> - -int main(int argc, char * argv[]) -{ - char *ptrChars = (char *)malloc(6 * sizeof(char)); - ptrChars[0]= 'H'; - - return 0; -} diff --git a/Outils/src/outofbounds.c b/Outils/src/outofbounds.c deleted file mode 100644 index f1554c7..0000000 --- a/Outils/src/outofbounds.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <stdlib.h> - -int main(int argc, char * argv[]) -{ - char *ptrChars = (char *)malloc(6 * sizeof(char)); - ptrChars[0]= 'H'; - ptrChars[12]= 'W'; - free(ptrChars); - - return 0; -} \ No newline at end of file diff --git a/Outils/src/recursive.c b/Outils/src/recursive.c deleted file mode 100644 index 7355315..0000000 --- a/Outils/src/recursive.c +++ /dev/null @@ -1,29 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> - -int globalVar = 5; - -int factTmp(int acc, int nbr) { - static int globalTmp =0; - globalTmp++; - - int tmp =0; - tmp++; - - if(nbr<=1) return acc; - else return factTmp(acc*nbr, nbr-1); -} - - -int factTerminal(int a) { - int localVar = 3; - return factTmp(1, a); -} - - -int main(int argc, char *argv[]){ - - printf("La factorielle de 6 est : %d\n", factTerminal(6)); - - return EXIT_SUCCESS; -} diff --git a/Outils/src/tab.c b/Outils/src/tab.c deleted file mode 100644 index 7dddcd7..0000000 --- a/Outils/src/tab.c +++ /dev/null @@ -1,31 +0,0 @@ -#include <stdio.h> - -void calc (int *tab, int i, int num) -{ - tab[i] = num / i; -} - -void iter (int *tab, int num) -{ - int i; - printf("Iterating\n"); - for (i = 0; i <= 10; i++) { - calc(tab, i, num); - } -} - -int main (int argc, char * argv[]) -{ - int *tab = NULL; - int num = 20; - int i; - - iter(tab, num); - - for (i = 0; i < 10; i++) { - printf("%d ", tab[i]); - } - printf("\n"); - - return 0; -} \ No newline at end of file diff --git a/Outils/src/thread_crash.c b/Outils/src/thread_crash.c deleted file mode 100644 index d22a2e8..0000000 --- a/Outils/src/thread_crash.c +++ /dev/null @@ -1,34 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> - -#define N_THREADS 3 - -pthread_mutex_t global_mutex; - -static void *thread_work(void *arg) -{ - pthread_mutex_lock(&global_mutex); - - /* Do some work here */ - - pthread_exit(NULL); - pthread_mutex_unlock(&global_mutex); -} - - -int main (int argc, char const *argv[]) -{ - int i; - pthread_t threads[N_THREADS]; - - pthread_mutex_init(&global_mutex, NULL); - - for (i = 0; i < N_THREADS; ++i) - pthread_create(&threads[i], NULL, thread_work, NULL); - - for (i = 0; i < N_THREADS; ++i) - pthread_join(threads[i], NULL); - - return 0; -} \ No newline at end of file diff --git a/Outils/src/twofree.c b/Outils/src/twofree.c deleted file mode 100644 index 384757a..0000000 --- a/Outils/src/twofree.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <stdlib.h> - -int main(int argc, char * argv[]) -{ - char *ptrChars = (char *)malloc(6 * sizeof(char)); - ptrChars[0]= 'H'; - free(ptrChars); - free(ptrChars); - - return 0; -} \ No newline at end of file diff --git a/Outils/ssh.rst b/Outils/ssh.rst deleted file mode 100644 index 1409eba..0000000 --- a/Outils/ssh.rst +++ /dev/null @@ -1,92 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch, Grégory Detal et Maxime De Mol -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -.. _ssh: - -SSH ---- - -`ssh(1)`_ est un outil qui permet de se connecter depuis l'Internet à la console d'une autre machine et donc d'y exécuter des commandes. Dans l'infrastructure INGI vous pouvez vous connecter via ssh aux différents machines des salles en utilisant votre login et mot de passe INGI. Pour savoir les noms de machines, visitez le `student-wiki <http://wiki.student.info.ucl.ac.be/Matériel/Matériel>`_. - -Depuis l'extérieur vous devez passer via ``sirius.info.ucl.ac.be`` pour ensuite pouvoir vous connecter sur les machines des salles. - -Quelques exemples d'utilisation de `ssh(1)`_ qui vous seront utiles: - - * ``ssh [username]@[hostname]``: Avec ceci vous pouvez vous connecter à la machine ``hostname``. Exemple: ``ssh myUserName@yunaska.info.ucl.ac.be`` pour vous connecter à la machine ``yunaska`` de la salle intel. Il faut d'abord se connecter à sirius avant de se connecter aux machines des salles. - * ``ssh -X [username]@[hostname]``: L'option ``-X`` vous permet d'exécuter des programmes sur la machine distante mais en voyant l'interface graphique en local sur votre machine (pour autant qu'elle supporte :term:`X11`). Exemple: ``ssh -X myUserName@yunaska.info.ucl.ac.be`` et ensuite dans le terminal ``gedit test.c`` pour ouvrir l'éditeur de texte. - * ``ssh [username]@[hostname] [commande]``: Pour exécuter la commande sur la machine distante. Exemple: ``ssh myUserName@sirius.info.ucl.ac.be cc test.c -o test`` pour exécuter ``cc test.c -o test`` sur sirius. - * ``scp [local_file] [username]@[hostname]:[path]``: `scp(1)`_ permet de copier des fichiers locaux vers un répertoire distant (et l'inverse). Exemple: ``scp test.c myUserName@sirius.info.ucl.ac.be:SINF1252/projet_S2/`` copie test.c vers le dossier ``SINF1252/projet_S2/`` de la machine sirius. - -Le site `Getting started with SSH <http://www.ibm.com/developerworks/aix/library/au-sshsecurity/>`_ contient une bonne description de l'utilisation de ssh. Notamment l'`utilisation de ssh sur des machines UNIX/Linux <http://www.ibm.com/developerworks/aix/library/au-sshsecurity/#SSH_for_UNIX>`_. Si vous utilisez Windows, il existe des clients `ssh(1)`_ comme `putty <http://www.putty.org/>`_ - -Authentification par clé -^^^^^^^^^^^^^^^^^^^^^^^^ - -Face à la faiblesse au niveau sécurité de l'authentification par mot de passe, l'authentification par clé se révèle être un moyen nettement plus efficace. - -L'authentification par clé consiste en un premier temps à générer une paire de clés et son mot de passe: - - * la ``clé publique`` que l'on exporte vers chaque hôte sur lequel on veut se connecter - * la ``clé privée`` que l'on garde précieusement sur notre ordinateur, et qui sert à prouver à l'hôte notre identité - * le ``mot de passe`` permet de sécuriser sa clé privée - -Le mot de passe ne servant à rien sans les clé et vice versa, on devine aisément que le niveau de sécurité d'une telle connexion est largement accru par rapport à une simple authentification par mot de passe. - -Pour générer ces clés et choisir votre mot de passe, il suffit d'entrer la commande - - .. code-block:: none - - $ ssh-keygen -t rsa -C "login" - # remplacer "login" par votre nom d'utilisateur - - Generating public/private rsa key pair. - Enter file in which to save the key (~/.ssh/id_rsa): - Enter passphrase (empty for no passphrase): - Enter same passphrase again: - Your identification has been saved in ~/.ssh/id_rsa. - Your public key has been saved in ~/.ssh/id_rsa.pub. - The key fingerprint is: - 17:bc:98:ab:39:f6:a2:db:1d:07:9a:63:d7:c7:9b:e0 "login" - -Maintenant que les clés ont été crées, il faut communiquer votre clé publique à l'hôte sur lequel vous voulez vous connecter. Pour cela, le plus simple est d'utiliser la commande suivante - - .. code-block:: console - - $ cat ~/.ssh/id_rsa.pub | ssh [username]@[hostname] "cat - >> ~/.ssh/authorized_keys" - -Cette commande va récupérer votre clé publique dans votre dossier ``~/.ssh``, se connecter en ssh à l'hôte et va placer votre clé dans son répertoire de clés autorisées. Maintenant nous pouvons utilisez en toute sérénité votre connexion ssh sécurisée! - -Petit mot sur les permissions du dossier ``~/.ssh`` où sont stockées les clés: - - .. code-block:: console - - .ssh user$ ls -ld - drwx------ 6 user staff 204 22 aoû 10:29 . - - -Les bits de permissions sont définis comme ``drwx------`` ce qui fait du propriétaire de ce dossier la seul personne capable de lire, d'écrire et d'exécuter le contenu de se dossier. La clé privée est donc belle et bien privée! - -Synchronisation de fichiers entre ordinateurs -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Quand nous avons besoin de synchroniser des fichiers entre 2 ordinateurs différents, Unix nous vient en aide avec l'utilitaire `rsync <http://linux.about.com/library/cmd/blcmdl1_rsync.htm>`_. - -L'utilisation la plus basique de `rsync <http://linux.about.com/library/cmd/blcmdl1_rsync.htm>`_ est: - - .. code-block:: console - - rsync *.c [hostname]:src/ - -`rsync <http://linux.about.com/library/cmd/blcmdl1_rsync.htm>`_ va copier tout les fichiers qui correspondent au pattern ``*.c`` du répertoire courant vers le dossier ``src/`` sur la machine hôte. De plus, si certains ou tout les fichiers sont déjà présents chez l'hôte, `rsync <http://linux.about.com/library/cmd/blcmdl1_rsync.htm>`_ va procéder à une mise à jour différentielle de ces fichiers (seuls les changements sont transférés). - -L'ajout du drapeau ``-avz`` permet de synchroniser les fichiers en mode archive. Cela veut dire que tous les liens, permissions, propriétaires, etc de ces fichiers seront préservés durant le transfert. - -Nous pouvons aussi utiliser `rsync <http://linux.about.com/library/cmd/blcmdl1_rsync.htm>`_ dans l'autre sens: - - .. code-block:: console - - rsync -avz [hostname]:src/bar /data/tmp - -Maintenant tout les fichiers de la machine hôte, dans le dossier src/bar vont être copiés vers le répertoire local /data/tmp. diff --git a/Outils/valgrind.rst b/Outils/valgrind.rst deleted file mode 100644 index 52d5099..0000000 --- a/Outils/valgrind.rst +++ /dev/null @@ -1,238 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch, Grégory Detal et Maxime De Mol -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _valgrind-ref: - -Valgrind --------- - -Plusieurs outils en informatique peuvent vous aider à localiser des bugs dans vos programmes. Parmi ceux-ci, voici deux outils particulièrement utiles pour les problèmes liés à la mémoire : - - * `valgrind(1)`_ vous permet de détecter des erreurs liés à la gestion de la mémoire (`malloc(3)`_, `free(3)`_,...) - * `gdb(1)`_ permet de voir ce qui se passe "à l'intérieur" de votre programme et comment les variables évoluent. - -Le site http://www.cprogramming.com/debugging/ vous donne des techniques de débuggage plus détaillées et explique `valgrind(1)`_ et `gdb(1)`_ plus en détails. - -Valgrind permet de détecter des erreurs liées à la gestion de la mémoire dans vos programmes. Pour utiliser valgrind, lancez la commande `valgrind(1)`_ avec votre exécutable comme argument: - - .. code-block:: console - - valgrind --leak-check=yes [my binary] - -Parmi les erreurs que valgrind est capable de détecter nous avons: - - * Mémoire non-désallouée: Lors d'un appel à `malloc(3)`_, vous obtenez un pointeur vers une zone de mémoire allouée. Si vous "perdez" la valeur de ce pointeur, vous n'avez plus le moyen de libérer cette zone de mémoire. Essayez `valgrind(1)`_ avec le petit programme :download:`src/nofree.c` - * Désallouer deux fois la même zone de mémoire: Si vous appelez deux fois `free(3)`_ sur la même zone de mémoire, `valgrind(1)`_ va détecter cette erreur. Essayez-le avec le petit programme :download:`src/twofree.c` - * Accès en dehors des limites d'une zone mémoire: Si vous allouez une zone de mémoire d'une certaine taille (par exemple un table de 10 chars) et que vous accèdez à une adresse qui excède cette zone (par exemple vous accèdez au 11ième élément) vous aurez probablement une ``Segmentation fault``. Valgrind permet de détecter ces erreurs et indique l'endroit dans votre code où vous faites cet accès. Essayez-le avec le petit programme :download:`src/outofbounds.c` - -On vous encourage à lancer `valgrind(1)`_ sur votre projet pour vérifier que vous n'avez pas introduit de memory-leaks sans le vouloir. `valgrind(1)`_ ne remplace pas une écriture attentive du code mais peut permettre de détecter rapidement certaines erreurs courantes. Vous trouverez plus de détails sur les liens suivants: - - * http://www.cprogramming.com/debugging/valgrind.html - * http://valgrind.org - -Les bases de ``valgrind`` -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Commençons par le programme le plus simple possible que nous allons tester à l'aide de `valgrind(1)`_: - - .. code-block:: c - - #include <stdio.h> - #include <stdlib.h> - - int main(void) - { - printf("Hello, 1252 !\n"); - return EXIT_SUCCESS; - } - -Après compilation et l'exécutions avec `valgrind(1)`_ nous obtenons : - - - .. code-block:: console - - $ gcc -o hello hello.c - $ ./hello - Hello, 1252 ! - $ valgrind ./hello - ==13415== Memcheck, a memory error detector - ==13415== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. - ==13415== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info - ==13415== Command: ./hello - ==13415== - Hello, 1252 ! - ==13415== - ==13415== HEAP SUMMARY: - ==13415== in use at exit: 0 bytes in 0 blocks - ==13415== total heap usage: 0 allocs, 0 frees, 0 bytes allocated - ==13415== - ==13415== All heap blocks were freed -- no leaks are possible - ==13415== - ==13415== For counts of detected and suppressed errors, rerun with: -v - ==13415== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 6) - -Nous pouvons lire dans ce rapport plusieurs informations importante comme le ``HEAP SUMMARY`` qui résume l'utilisation du tas. Dans notre cas particulier, on peut voir que rien n'a été alloué (en effet, il n'y a pas eu de malloc) et rien n'a été libéré. - -L' ``ERROR SUMMARY`` indique le nombre d'erreurs détectées. - -La phrase que nous voulons voir après chaque exécution de `valgrind(1)`_ est: - - .. code-block:: console - - All heap blocks were freed -- no leaks are possible - -Ce qui indique qu'aucun memory leak ne peut avoir lieu dans notre programme. - -Detecter les memory leaks -^^^^^^^^^^^^^^^^^^^^^^^^^ - -A présent nous allons montrer comment détecter des fuites de mémoire dans un programme à l'aide de `valgrind(1)`_. Testons le programme :download:`src/nofree.c`: - - .. code-block:: console - - $ gcc -o nofree nofree.c - $ valgrind ./nofree - ==13791== Memcheck, a memory error detector - ==13791== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. - ==13791== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info - ==13791== Command: ./nofree - ==13791== - ==13791== - ==13791== HEAP SUMMARY: - ==13791== in use at exit: 6 bytes in 1 blocks - ==13791== total heap usage: 1 allocs, 0 frees, 6 bytes allocated - ==13791== - ==13791== LEAK SUMMARY: - ==13791== definitely lost: 6 bytes in 1 blocks - ==13791== indirectly lost: 0 bytes in 0 blocks - ==13791== possibly lost: 0 bytes in 0 blocks - ==13791== still reachable: 0 bytes in 0 blocks - ==13791== suppressed: 0 bytes in 0 blocks - ==13791== Rerun with --leak-check=full to see details of leaked memory - ==13791== - ==13791== For counts of detected and suppressed errors, rerun with: -v - ==13791== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 6) - -Nous remarquons directement que cette fois ci des leaks ont été trouvés par `valgrind(1)`_. Celui ci indique en effet la perte de 6 bytes de mémoire sur le tas qui ont été alloués par 1 `malloc(3)`_ et qui n'ont pas été libérés avant le ``return``. - -Maintenant nous savons que nous avons un memory leak, mais `valgrind(1)`_ peut faire plus que seulement les détecter, il peut aussi trouver où ont ils lieu. Nous remarquons dans le rapport qu'il conseil de relancer le test avec cette fois ci l'option ``--leak-check=full`` pour avoir plus de détails sur notre fuite. Nous avons dés lors de nouvelles informations dans ``HEAP SUMMARY`` : - - .. code-block:: console - - ==13818== 6 bytes in 1 blocks are definitely lost in loss record 1 of 1 - ==13818== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) - ==13818== by 0x4004DC: main (nofree.c:5) - -La fuite a donc lieu à la ligne 5 de notre programme qui correspond à : - - .. code-block:: c - - char *ptrChars = (char *)malloc(6 * sizeof(char)); - -On sait maintenant quel est le `malloc(3)`_ responsable du leak, et il est facile de l'éviter en écrivant ``free(ptrChars);`` avant le ``return``. - -Double free -^^^^^^^^^^^ - -`valgrind(1)`_ ne se contente pas seulement de trouver des memory leaks, il est aussi capable de détecter des doubles free qui peuvent engendrer des corruptions de mémoire. -Pour montrer cette fonction de `valgrind(1)`_ nous utilisons le petit programme :download:`src/twofree.c`. - - .. code-block:: console - - $ valgrind ./twofree - ==13962== Memcheck, a memory error detector - ==13962== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. - ==13962== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info - ==13962== Command: ./twofree - ==13962== - ==13962== Invalid free() / delete / delete[] - ==13962== at 0x4A0595D: free (vg_replace_malloc.c:366) - ==13962== by 0x40053F: main (in twofree.c:8) - ==13962== Address 0x4c2d040 is 0 bytes inside a block of size 6 free'd - ==13962== at 0x4A0595D: free (vg_replace_malloc.c:366) - ==13962== by 0x400533: main (in twofree.c:8) - ==13962== - ==13962== - ==13962== HEAP SUMMARY: - ==13962== in use at exit: 0 bytes in 0 blocks - ==13962== total heap usage: 1 allocs, 2 frees, 6 bytes allocated - ==13962== - ==13962== All heap blocks were freed -- no leaks are possible - ==13962== - ==13962== For counts of detected and suppressed errors, rerun with: -v - ==13962== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 6 from 6) - -Ici `valgrind(1)`_ nous indique qu'il a trouver une erreur et qu'il s'agit d'un ``Invalid free()`` à la ligne 8 de notre programme. Facilement trouvé et corrigé! - -Segmentation Fault -^^^^^^^^^^^^^^^^^^ - -Les segmentation faults sont des erreurs courantes lors de la programmation en C/C++. Elles ont lieu lors de l'accès à des zones de mémoire non-allouées. `valgrind(1)`_ permet de facilement trouver l'origine des segfaults et de les corriger. Démonstration avec :download:`src/outofbounds.c`: - - .. code-block:: console - - $ gcc -g -o outofbounds outofbounds.c - -Il est important de compiler avec le drapeau -g pour dire au compilateur de garder les informations de débuggage. - - .. code-block:: console - - $ ./outofbounds - Segmentation fault - $ gcc -g -o outofbounds outofbounds.c - $ ./outofbounds - $ valgrind ./outofbounds - ==14236== Memcheck, a memory error detector - ==14236== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. - ==14236== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info - ==14236== Command: ./outofbounds - ==14236== - ==14236== Invalid write of size 1 - ==14236== at 0x400530: main (outofbounds.c:7) - ==14236== Address 0x4c2d04c is 6 bytes after a block of size 6 alloc'd - ==14236== at 0x4A05FDE: malloc (vg_replace_malloc.c:236) - ==14236== by 0x40051C: main (outofbounds.c:5) - ==14236== - ==14236== - ==14236== HEAP SUMMARY: - ==14236== in use at exit: 0 bytes in 0 blocks - ==14236== total heap usage: 1 allocs, 1 frees, 6 bytes allocated - ==14236== - ==14236== All heap blocks were freed -- no leaks are possible - ==14236== - ==14236== For counts of detected and suppressed errors, rerun with: -v - ==14236== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 6 from 6) - -`valgrind(1)`_ trouve bien une erreur, à la ligne 7 de notre petit programme. - -.. _helgrind-ref: - -Détecter les deadlocks avec ``valgrind`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -`valgrind(1)`_ contient des outils qui vont au-delà des simples tests de l'allocation de la mémoire. Notamment l'outil ``helgrind`` permet de détecter des deadlocks. Utilisez ``helgrind`` sur le petit programme :download:`/src/thread_crash.c` en faisant: - - .. code-block:: console - - $ valgrind --tool=helgrind [my binary] - - ==24314== Helgrind, a thread error detector - ==24314== Copyright (C) 2007-2010, and GNU GPL'd, by OpenWorks LLP et al. - ==24314== Using Valgrind-3.6.1-Debian and LibVEX; rerun with -h for copyright info - ==24314== Command: ./thread_crash - ==24314== - ==24314== Thread #2 was created - ==24314== at 0x512E85E: clone (clone.S:77) - ==24314== by 0x4E36E7F: do_clone.constprop.3 (createthread.c:75) - ==24314== by 0x4E38604: pthread_create@@GLIBC_2.2.5 (createthread.c:256) - ==24314== by 0x4C29B23: pthread_create_WRK (hg_intercepts.c:257) - ==24314== by 0x4C29CA7: pthread_create@* (hg_intercepts.c:288) - ==24314== by 0x400715: main (in /home/christoph/workspace/SINF1252/SINF1252/2012/S6/src/thread_crash) - ==24314== - ==24314== Thread #2: Exiting thread still holds 1 lock - ==24314== at 0x4E37FB6: start_thread (pthread_create.c:430) - ==24314== by 0x512E89C: clone (clone.S:112) - -Plus d'informations sur: - * http://valgrind.org/docs/manual/hg-manual.html diff --git a/Theorie/.gitkeep b/Theorie/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/Theorie/Assembleur/fig/figures-memoire-001-c.png b/Theorie/Assembleur/fig/figures-memoire-001-c.png deleted file mode 100644 index 1a2e2df92415468ae99eaba43807df7d884d3861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21089 zcmeIac{G&o|35wqW4kfRGM4PwqQ)9gc16}oQDN+4-^p$mYZ7JO*AkJkhhc1GPoeBv z2qDRCe)p)}?_QtJ@0{;BzdzpJ^ZA|6eU8)Vp6kAr=k<I(ug7z{B6YPdQ&X}~LLd-o z^(!jZAP^!m@b4};41Dul_;nEka!o*8Me&Ary4e99e0Db%#O1u#gG}jTLiCW7YD9-b zU`ssSEJe(cQrX2tR9RpDqe8vq@1NOr@OXLXuNKqu^Og}25vZqSWgIr!zdmn{AOU|Q ze9vM-_WRWpvR|)QL?SLX3m{1IP(i=O_|Lpp=@q5KDv+xT(6xHfy}?tIk}#EMR(nJ# zoLKj0LLdV6v6D5jb*vBt738bY(eBoX{U5ifxLq%B>*}Mdo_=*J>Of?9f)mE$SsdsR z$ZzQDGq<+3A_#vfs;bN{Oq#S`8_Ubf*BFb6ieel_t8zL!+S|n<A|pkmWo56Ae#%3E z#8U+RMFc^T=Qm5aHO9M=&N0)l%Uv-aJ|+}~`>z&fZoS~u7_akKMjRa-M&Ei68A*Yz zu0D@0EftYWm!eby>G-GlDIUI)PoF	jo(*p5EJ929nO1SoMGW*!G<LChB={vDjFn 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 aE{8(Cwol1B8(AJZvei|!RbD8eLjE788PKu- diff --git a/Theorie/Assembleur/fig/figures-memoire-002-c.png b/Theorie/Assembleur/fig/figures-memoire-002-c.png deleted file mode 100644 index 473e57aa9dc829e41d0d875c80dff27d4a8e8cb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42312 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%0AWNAzx1gv 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 ROaD$uakO={DJD^({sZ!!@sa=l diff --git a/Theorie/Assembleur/fig/figures-memoire-003-c.png b/Theorie/Assembleur/fig/figures-memoire-003-c.png deleted file mode 100644 index 8f2fd4dcbb953aeaec2a29df42523981009b90b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39070 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 SbI8Pxx{9KvLZO^#(EkNRb|01i diff --git a/Theorie/Assembleur/fig/figures-memoire-004-c.png b/Theorie/Assembleur/fig/figures-memoire-004-c.png deleted file mode 100644 index e5a7c4a668b49921ad9ea32b3f5b92d63d478a5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16349 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 R2}Su^U&lzhNE03Qe*h;npN9Yd diff --git a/Theorie/Assembleur/fig/figures-memoire-005-c.png b/Theorie/Assembleur/fig/figures-memoire-005-c.png deleted file mode 100644 index bdcaa2c5fd0e8ee78cbcabceca572979e9db6417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18378 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 F{y)l1i6j63 diff --git a/Theorie/Assembleur/fig/figures-memoire-006-c.png b/Theorie/Assembleur/fig/figures-memoire-006-c.png deleted file mode 100644 index 9c8f66ce9ff71af85e01130ae2918beb2127292b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50581 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 diff --git a/Theorie/Assembleur/fig/figures-memoire-007-c.png b/Theorie/Assembleur/fig/figures-memoire-007-c.png deleted file mode 100644 index f26df4feb8bef7f4134d3e69fe511a345c110cb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35828 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 diff --git a/Theorie/Assembleur/memory.rst b/Theorie/Assembleur/memory.rst deleted file mode 100644 index 455a53c..0000000 --- a/Theorie/Assembleur/memory.rst +++ /dev/null @@ -1,753 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _ordinateurs: - - -Organisation des ordinateurs -============================ - -Pour bien comprendre la façon dont les programmes s'exécutent sur un ordinateur, il est nécessaire de connaitre quelques principes de base sur l'architecture des ordinateurs et de leur organisation. - -Un des premiers principes fondateurs est le modèle d'architecture de :term:`von Neumann`. Ce modèle d'architecture a été introduit durant le développement des premiers ordinateurs pendant la seconde guerre mondiale mais reste tout à fait valide aujourd'hui [Krakowiak2011]_. La partie la plus intéressante de ce modèle concerne les fonctions de calcul d'un ordinateur. Il postule qu'un ordinateur est organisé autour de deux types de dispositifs : - - - L'unité centrale ou :term:`processeur`. Cette unité centrale peut être décomposée en deux parties : l'unité de commande et l'unité arithmétique et logique. L'unité arithmétique et logique regroupe les circuits électroniques qui permettent d'effectuer les opérations arithmétiques (addition, soustraction, division, ...) et logiques. C'est cette unité qui réalise les calculs proprement dits. L'unité de commande permet quant à elle de charger, décoder et exécuter les instructions du programme qui sont stockées en mémoire. - - La :term:`mémoire`. Celle-ci joue un double rôle. Elle stocke à la fois les données qui sont traitées par le programme mais aussi les instructions qui composent celui-ci. Cette utilisation de la mémoire pour stocker les données et une représentation binaire du programme à exécuter sont un des principes fondamentaux du fonctionnement des ordinateurs actuels. - -La figure ci-dessous illustre les principaux éléments du modèle de von Neumann. - - -.. figure:: /Assembleur/fig/figures-memoire-001-c.png - :align: center - - Modèle de von Neumann - - -Les technologies utilisées pour construire les processeurs et la mémoire ont fortement évolué depuis les premiers ordinateurs, mais les principes fondamentaux restent applicables. En première approximation, on peut considérer la mémoire comme étant un dispositif qui permet de stocker des données binaires. La mémoire est découpée en blocs d'un octet. Chacun de ces blocs est identifié par une adresse, qui est elle aussi représentée sous la forme d'un nombre binaire. Une mémoire qui permet de stocker :math:`2^k` bytes de données utilisera au minimum `k` bits pour représenter l'adresse d'une zone mémoire. Ainsi, une mémoire pouvant stocker 64 millions de bytes doit utiliser au moins 26 bits d'adresse. En pratique, les processeurs des ordinateurs de bureau utilisent 32 ou 64 bits pour représenter les adresses en mémoire. D'anciens processeurs utilisaient 16 ou 20 bits d'adresse. Le nombre de bits utilisés pour représenter une adresse en mémoire limite la capacité totale de mémoire adressable par un processeur. Ainsi, un processeur qui utilise des adresses sur 32 bits n'est pas capable physiquement d'adresser plus de 4 GBytes de mémoire. - -En pratique, l'organisation physique d'un ordinateur actuel est plus complexe que le modèle de von Neumann. Schématiquement, on peut considérer l'organisation présentée dans la figure ci-dessous. Le processeur est directement connecté à la mémoire via un :term:`bus` de communication rapide. Ce bus permet des échanges de données et d'instructions efficaces entre la mémoire et le processeur. Outre le processeur et la mémoire, un troisième dispositif, souvent baptisé -adaptateur de bus est connecté au bus processeur-mémoire. Cet adaptateur permet au processeur d'accéder aux dispositifs de stockage ou aux dispositifs d'entrées-sorties tels que le clavier, la souris ou les cartes réseau. En pratique, cela se réalise en connectant les différents dispositifs à un autre bus de communication (PCI, SCSI, ...) et en utilisant un adaptateur de bus qui est capable de traduire les commandes venant du processeur. - -.. figure:: /Assembleur/fig/figures-memoire-002-c.png - :align: center - - Architecture d'un ordinateur actuel - -Différentes technologies ont été mises en oeuvre pour construire les mémoires utilisées dans les ordinateurs. Aujourd'hui, les technologies les plus courantes sont les mémoires de type :term:`SRAM` et les mémoires de type :term:`DRAM`. Dans une :term:`SRAM`, l'information est stockée sous la forme d'un courant électrique qui passe ou ne passe pas à un endroit donné. L'avantage de cette technologie est que le temps d'accès à une donnée stockée en :term:`SRAM` est assez faible. Malheureusement, leur inconvénient majeur est leur grande consommation électrique qui empêche de développer des mémoires de grande capacité. Aujourd'hui, les :term:`SRAM` les plus grandes ont une capacité de seulement 12 MBytes [HennessyPatterson]_. - -Les :term:`DRAM` sont totalement différentes des :term:`SRAM` d'un point de vue électronique. Dans une mémoire de type :term:`DRAM`, c'est la présence ou l'absence d'une charge (de quelques électrons à quelques dizaines d'électrons) dans un condensateur qui représente la valeur ``0`` ou ``1``. Il est possible de construire des :term:`DRAM` de très grande taille, jusqu'à 1 GByte par chip [HennessyPatterson]_. C'est la raison pour laquelle on retrouve très largement des mémoires de type :term:`DRAM` dans les ordinateurs. Malheureusement, leurs performances sont nettement moins bonnes que les mémoires de type :term:`SRAM`. En pratique, une mémoire :term:`DRAM` actuelle peut être vue comme étant équivalente à une grille [Drepper2007]_. Les adresses peuvent être vues comme étant composées d'un numéro de colonne et d'un numéro de ligne. Pour lire ou écrire une donnée en mémoire :term:`DRAM`, le processeur doit d'abord indiquer la ligne qu'il souhaite lire et ensuite la colonne. Ces deux opérations sont successives. Lorsque la mémoire a reçu la ligne et la colonne demandées, elle peut commencer le transfert de la donnée. En pratique, les mémoires :term:`DRAM` sont optimisées pour fournir un débit de transfert élevé, mais elles ont une latence élevée. Cela implique que dans une mémoire :term:`DRAM`, il est plus rapide de lire ou d'écrire un bloc de 128 bits successifs que quatre blocs de 32 bits à des endroits différents en mémoire. A titre d'exemple, le tableau ci-dessous, extrait de [HP]_ fournit le taux de transfert maximum de différentes technologies de :term:`DRAM`. - - ============ ================ ================ - Technologie Fréquence [MHz] Débit [MB/sec] - ============ ================ ================ - SDRAM 200 1064 - RDRAM 400 1600 - DDR-1 266 2656 - DDR-2 333 5328 - DDR-2 400 6400 - DDR-3 400 6400 - DDR-3 533 8500 - DDR-3 667 10600 - ============ ================ ================ - - -Le processeur interagit en permanence avec la mémoire, que ce soit pour charger des données à traiter ou pour charger les instructions à exécuter. Tant les données que les instructions sont représentées sous la forme de nombres en notation binaire. Certains processeurs utilisent des instructions de taille fixe. Par exemple, chaque instruction est encodée sous la forme d'un mot de 32 bits. D'autres processeurs, comme ceux qui implémentent l'architecture [IA32]_, utilisent des instructions qui sont encodées sous la forme d'un nombre variable de bytes. Ces choix d'encodage des instructions influencent la façon dont les processeurs sont implémentés d'un point de vue microélectronique, mais ont assez peu d'impact sur le développeur de programmes. L'élément qu'il est important de bien comprendre est que le processeur doit en permanence charger des données et des instructions depuis la mémoire lors de l'exécution d'un programme. - -Outre des unités de calcul, un processeur contient plusieurs registres. Un :term:`registre` est une zone de mémoire très rapide se trouvant sur le processeur. Sur les processeurs actuels, cette zone de mémoire permet de stocker un mot de 32 bits ou un long mot de 64 bits. Les premiers processeurs disposaient d'un registre unique baptisé l':term:`accumulateur`. Les processeurs actuels en contiennent généralement une ou quelques dizaines. Chaque registre est identifié par un nom ou un numéro et les instructions du processeur permettent d'accéder directement aux données se trouvant dans un registre particulier. Les registres sont les mémoires les plus rapides qui sont disponibles sur un ordinateur. Malheureusement, ils sont en nombre très limité et il est impossible de faire fonctionner un programme non trivial en utilisant uniquement des registres. - -Du point de vue des performances, il serait préférable de pouvoir construire un ordinateur équipé uniquement de :term:`SRAM`. Malheureusement, au niveau de la capacité et du prix, c'est impossible sauf pour de rares applications bien spécifiques qui nécessitent de hautes performances et se contentent d'une capacité limitée. Les ordinateurs actuels utilisent en même temps de la mémoire :term:`SRAM` et de la mémoire :term:`DRAM`. Avec les registres, les :term:`SRAM` et les :term:`DRAM` composent les trois premiers niveaux de la :term:`hiérarchie de mémoire`. - -Le tableau ci-dessous, extrait de [BryantOHallaron2011]_ , compare les temps d'accès entre les mémoires :term:`SRAM` et les mémoires :term:`DRAM` à différentes périodes. - -====== ========== ========== -Année Accès SRAM Accès DRAM -====== ========== ========== -1980 300 ns 375 ns -1985 150 ns 200 ns -1990 35 ns 100 ns -1995 15 ns 70 ns -2000 3 ns 60 ns -2005 2 ns 50 ns -2010 1.5 ns 40 ns -====== ========== ========== - -Cette évolution des temps d'accès doit être mise en parallèle avec l'évolution des performances des processeurs. En 1980, le processeur Intel 8080 fonctionnait avec une horloge de 1 MHz et accédait à la mémoire toutes les 1000 ns. A cette époque, la mémoire était nettement plus rapide que le processeur. En 1990, par contre, le processeur Intel 80386 accédait à la mémoire en moyenne toutes les 50 ns. Couplé à une mémoire uniquement de type DRAM, il était ralenti par cette mémoire. En 2000, le Pentium-III avait un cycle de 1.6 ns, plus rapide que les meilleures mémoires disponibles à l'époque. Il en va de même aujourd'hui où les temps de cycle sont inférieurs au temps d'accès des mémoires. Même s'il existe des solutions techniques pour mitiger ce problème, la différence de performance croissante entre la mémoire et le processeur est un des facteurs qui limitent les améliorations des performances de nombreux programmes. - -Une première solution pour combiner la :term:`SRAM` et la :term:`DRAM` serait de réserver par exemple les adresses basses à la :term:`SRAM` qui est plus performante et d'utiliser la :term:`DRAM` pour les adresses hautes. Avec cette solution, le programme stocké dans la :term:`SRAM` pourrait s'exécuter plus rapidement que le programme stocké en :term:`DRAM`. Afin de permettre à tous les programmes de pouvoir utiliser la :term:`SRAM`, on pourrait imaginer que le système d'exploitation fournisse des fonctions qui permettent aux applications de demander la taille de la mémoire :term:`SRAM` disponible et de déplacer des parties d'un programme et des données en :term:`SRAM`. Ce genre de solution obligerait chaque application à pouvoir déterminer quelles sont les instructions à exécuter et quelles données doivent être placées en mémoire :term:`SRAM` pour obtenir les meilleures performances. Même si en théorie, ce genre de solution est envisageable, en pratique, elle a très peu de chances de pouvoir fonctionner. - -La deuxième solution est d'utiliser le principe de la :term:`mémoire cache`. Une :term:`mémoire cache` est une mémoire de faible capacité mais rapide. La mémoire cache peut stocker des données provenant de mémoires de plus grande capacité mais plus lentes. Cette mémoire cache sert d'interface entre le processeur et la mémoire principale. Toutes les demandes d'accès à la mémoire principale passent par la mémoire cache comme illustré dans la figure ci-dessous. - -.. figure:: /Assembleur/fig/figures-memoire-005-c.png - :align: center - - Le processeur, la mémoire cache et la mémoire principale - -On utilise des mémoires caches dans de nombreux systèmes informatiques de façon à améliorer leurs performances. Ces mémoires caches utilisent en fait le :term:`principe de localité`. En pratique, deux types de localité doivent être considérés. Tout d'abord, il y a la :term:`localité temporelle`. Si un processeur a accédé à la mémoire à l'adresse `A` à l'instant `t`, il est fort probable qu'il accédera encore à cette adresse dans les instants qui suivent. La localité temporelle apparaît notamment lors de l'exécution de longues boucles qui exécutent à de nombreuses reprises les mêmes instructions. Le second type de localité est la :term:`localité spatiale`. Celle-ci implique que si un programme a accédé à l'adresse `A` à l'instant `t`, il est fort probable qu'il accédera aux adresses proches de `A` comme `A+4`, `A-4` dans les instants qui suivent. Cette localité apparaît par exemple lorsqu'un programme traite un vecteur stocké en mémoire. - -Les mémoires caches exploitent ces principes de localité en stockant de façon transparente les instructions et les données les plus récemment utilisées. D'un point de vue physique, on peut voir le processeur comme étant connecté à la (ou parfois les) mémoire cache qui est elle-même connectée à la mémoire :term:`RAM`. Les opérations de lecture en mémoire se déroulent généralement comme suit. Chaque fois que le processeur a besoin de lire une donnée se trouvant à une adresse, il fournit l'adresse demandée à la mémoire cache. Si la donnée correspondant à cette adresse est présente en mémoire cache, celle-ci répond directement au processeur. Sinon, la mémoire cache interroge la mémoire :term:`RAM`, se met à jour et ensuite fournit la donnée demandée au processeur. Ce mode de fonctionnement permet à la mémoire cache de se mettre à jour au fur et à mesure des demandes faites par le processeur afin de profiter de la localité temporelle. Pour profiter de la localité spatiale, la plupart des caches se mettent à jour en chargeant directement une :term:`ligne de cache` qui peut compter jusqu'à quelques dizaines d'adresses consécutives en mémoire. Ce chargement d'une ligne complète de cache permet également de profiter des mémoires :term:`DRAM` récentes qui sont souvent optimisées pour fournir des débits de transfert élevés pour de longs blocs consécutifs en mémoire. -La figure ci-dessous illustre graphiquement la hiérarchie de mémoires dans un ordinateur. - -.. figure:: /Assembleur/fig/figures-memoire-003-c.png - :align: center - - La hiérarchie de mémoires - - -Pour les opérations d'écriture, la situation est plus compliquée. Si le processeur écrit l'information `x` à l'adresse `A` en mémoire, il faudrait idéalement que cette valeur soit écrite simultanément en mémoire cache et en mémoire :term:`RAM` de façon à s'assurer que la mémoire :term:`RAM` contienne toujours des données à jour. La stratégie d'écriture la plus simple est baptisée :term:`write through`. Avec cette stratégie, toute demande d'écriture venant du processeur donne lieu à une écriture en mémoire cache et une écriture en mémoire :term:`RAM`. Cette stratégie garantit qu'à tout moment la mémoire cache et la mémoire :term:`RAM` contiennent la même information. Malheureusement, d'un point de vue des performances, cette technique rabaisse les performances de la mémoire cache à celles de la mémoire :term:`RAM`. Vu la différence de performance entre les deux types de mémoires, cette stratégie n'est plus acceptable aujourd'hui. L'alternative est d'utiliser la technique du :term:`write back`. Avec cette technique, toute écriture est faite en :term:`mémoire cache` directement. Cela permet d'obtenir de très bonnes performances pour les écritures. Une donnée modifiée n'est réécrite en mémoire :term:`RAM` que lorsqu'elle doit être retirée de la mémoire cache. Cette écriture est faite automatiquement par la mémoire cache. Pour la plupart des programmes, la gestion des opérations d'écriture est transparente. Il faut cependant être attentif à la technique d'écriture utilisée lorsque plusieurs dispositifs peuvent accéder directement à la mémoire :term:`RAM` sans passer par le processeur. C'est le cas par exemple pour certaines cartes réseaux ou certains contrôleurs de disque dur. Pour des raisons de performances, ces dispositifs peuvent copier des données directement de la mémoire :term:`RAM` vers le réseau ou un disque dur. Si une écriture de type :term:`write-back` est utilisée, le système d'exploitation doit veiller à ce que les données écrites par le processeur en cache aient bien été écrites également en mémoire :term:`RAM` avant d'autoriser la carte réseau ou le contrôleur de disque à effectuer un transfert. - -.. C'est particulièrement important lorsque des dispositifs tels qu'une carte réseau ou un controleur de disque dur peuvent aller lire des données en mémoire. Ces dispositifs doivent trouver en mémoire :term:`RAM` la dernière donnée écrite par le processeur - -.. _ia32_section: - -Etude de cas : Architecture IA32 -================================ - -Pour comprendre le fonctionnement d'un microprocesseur, la solution la plus efficace est de considérer une architecture en particulier et de voir comment fonctionnent les processeurs qui l'implémentent. Dans cette section, nous analysons brièvement le fonctionnement des processeurs [#fintel]_ de la famille [IA32]_. - -Cette architecture recouvre un grand nombre de variantes qui ont leur spécificités propre. Une descriptions détaillée de cette architecture est disponible dans [IA32]_. Nous nous limiterons à un très petit sous-ensemble de cette architecture dans le cadre de ce cours. Une analyse complète de l'architecture [IA32]_ occupe plusieurs centaines de pages dans des livres de référence [BryantOHallaron2011]_ [Hyde2010]_. - -L'architecture [IA32]_ est supportée par différents types de processeurs. Certains utilisent des registres et des bus de données de 32 bits. D'autres, plus récents utilisent des registres de 64 bits. Il y a des différences importantes entre ces deux architectures. Comme les processeurs récents supportent à la fois les modes 32 bits et 64 bits, nous nous limiterons à l'architecture 32 bits. - -Un des éléments importants d'un processeur tel que ceux de l'architecture [IA32]_ sont ses registres. Un processeur [IA32]_ dispose de huit registres génériques. Ceux-ci ont été baptisés ``EAX``, ``EBX``, ``ECX``, ``EDX``, ``EBP``, ``ESI``, ``EDI`` et ``ESP``. Ces registres peuvent stocker des données sous forme binaire. Dans l'architecture [IA32]_, ils ont une taille de 32 bits. Cela implique que chaque registre peut contenir un nombre ou une adresse puisque les entiers (``int`` en C) et les adresses (pointeurs ``*`` en C sur [IA32]_) sont tous les deux encodés sur 32 bits dans l'architecture [IA32]_. Cette capacité à stocker des données ou des adresses à l'intérieur d'un même registre est un des points clés de la flexibilité des microprocesseurs. - -Deux de ces registres, ``EBP`` et ``ESP`` sont utilisés dans la gestion de la pile comme nous le verrons plus tard. Les autres registres peuvent être utilisés directement par le programmeur. En outre, tout processeur contient un registre spécial qui stocke à tout moment l'adresse de l'instruction courante en mémoire. Ce registre est souvent dénommé le :term:`compteur de programme` ou :term:`program counter` (:term:`PC`) en anglais. Dans l'architecture [IA32]_, c'est le registre ``EIP`` qui stocke l':term:`Instruction Pointer` qui joue ce rôle. Ce registre ne peut pas être utilisé pour effectuer des opérations arithmétiques. Il peut cependant être modifié par les instructions de saut comme nous le verrons plus tard et joue un rôle essentiel dans l'implémentation des instructions de contrôle. - -Outre ces registres génériques, les processeurs de la famille [IA32]_ contiennent aussi des registres spécialisés pour manipuler les nombres en virgule flottante (``float`` et ``double``). Nous ne les analyserons pas dans le cadre de ce cours. Par contre, les processeurs [IA32]_ contiennent également des drapeaux regroupés dans le registre ``eflags``. Ceux-ci sont utilisés pour implémenter différents tests et comparaisons. - - -Les processeurs qui implémentent les spécifications [IA32]_ supportent les types de données repris dans le tableau ci-dessous. - - =============== ================ ===================== - Type Taille (bytes) Suffixe assembleur - =============== ================ ===================== - ``char`` 1 b - ``short`` 2 w - ``int`` 4 l - ``long int`` 4 l - ``void *`` 4 l - =============== ================ ===================== - -Dans les sections qui suivent, nous analysons quelques instructions de l'architecture [IA32]_ qui permettent de manipuler des nombres entiers en commençant par les instructions de transfert entre la mémoire et les registres. - - -Les instructions ``mov`` ------------------------- - -Les instructions de la famille ``mov`` [#fmov]_ permettent de déplacer des données entre registres ou depuis la mémoire vers un registre ou enfin d'un registre vers une zone mémoire. Ces instructions sont essentielles car elles permettent au processeur de récupérer les données qui sont stockées en mémoire mais aussi de sauvegarder en mémoire le résultat d'un calcul effectué par le processeur. Une instruction ``mov`` contient toujours deux arguments. Le premier spécifie la donnée à déplacer ou son adresse et la seconde l'endroit où il faut sauvegarder cette donnée ou la valeur stockée à cette adresse. - -.. code-block:: nasm - - mov src, dest ; déplacement de src vers dest - -Il existe une instruction de la famille ``mov`` qui correspond à chaque type de donnée pouvant être déplacé. L'instruction ``movb`` est utilisée pour déplacer un byte, ``movw`` pour déplacer un mot de 16 bits et ``movl`` lorsqu'il faut déplacer un mot de 32 bits. - -En pratique, il y a plusieurs façons de spécifier chaque argument d'une instruction ``mov``. Certains auteurs utilisent le terme :term:`mode d'adressage` pour représenter ces différents types d'arguments même si il ne s'agit pas toujours d'adresses. Le premier mode est le mode `registre`. La source et la destination d'une opération ``mov`` peuvent être un nom de registre. Ceux-ci sont en général préfixés avec le caractère ``%``. Ainsi, ``%eax`` correspond au registre ``EAX``. La première instruction ci-dessous déplace le mot de 32 bits stocké dans le registre ``%eax`` vers le registre ``%ebx``. La seconde instruction elle n'a aucun effet puisqu'elle déplace le contenu du registre ``%ecx`` vers ce même registre. - - -.. code-block:: nasm - - movl %eax, %ebx ; déplacement de %eax vers %ebx - movl %ecx, %ecx ; aucun effet - -Le deuxième mode d'adressage est le mode `immédiat`. Celui-ci ne peut être utilisé que pour l'argument `source`. Il permet de placer une constante dans un registre, par exemple pour initialiser sa valeur comme dans les exemples ci-dessous. Il se reconnaît à l'utilisation du symbole ``$`` comme préfixe de la constante. - -.. code-block:: nasm - - movl $0, %eax ; initialisation de %eax à 0 - movl $1252, %ecx ; initialisation de %ecx à 1252 - -Le troisième mode d'adressage est le mode `absolu`. Dans ce mode, l'un des arguments de l'instruction ``mov`` est une adresse en mémoire. Si la source est une adresse, alors l'instruction ``mov`` transfère le mot de 32 bits stocké à l'adresse spécifiée comme source vers le registre spécifié comme destination. Si la destination est une adresse, alors l'instruction ``mov`` sauvegarde la donnée source à cette adresse en mémoire. Pour illustrer cette utilisation de l'instruction ``mov``, considérons la mémoire illustrée ci-dessous. - - ========= ======== - Adresse Valeur - ========= ======== - 0x10 0x04 - 0x0C 0x10 - 0x08 0xFF - 0x04 0x00 - 0x00 0x04 - ========= ======== - -Les instructions ci-dessous sont un exemple de déplacement de données entre la mémoire et un registre et d'un registre vers la mémoire. - -.. code-block:: nasm - - movl 0x04, %eax ; place la valeur 0x00 (qui se trouve à l'adresse 0x04) dans %eax - movl $1252, %ecx ; initialisation de %ecx à 1252 - movl %ecx, 0x08 ; remplace 0xFF par le contenu de %ecx (1252) à l'adresse 0x08 - - -Le quatrième mode d'adressage est le mode `indirect`. Plutôt que de spécifier directement une adresse, avec le mode indirect, on spécifie un registre dont la valeur est une adresse en mémoire. Ce mode indirect est équivalent à l'utilisation des pointeurs en langage C. Il se reconnait à l'utilisation de parenthèses autour du nom du registre source ou destination. L'exemple ci-dessous illustre l'utilisation de l'adressage indirect en considérant la mémoire présentée plus haut. - -.. code-block:: nasm - - movl $0x08, %eax ; place la valeur 0x08 dans %eax - movl (%eax), %ecx ; place la valeur se trouvant à l'adresse qui est - ; dans %eax dans le registre %ecx %ecx=0xFF - movl 0x10, %eax ; place la valeur se trouvant à l'adresse 0x10 dans %eax - movl %ecx, (%eax) ; place le contenu de %ecx, c'est-à -dire 0xFF à l'adresse qui est contenue dans %eax (0x10) - -Le cinquième mode d'adressage est le mode avec une `base` et un `déplacement`. Ce mode peut être vu comme une extension du mode `indirect`. Il permet de lire en mémoire à une adresse qui est obtenue en additionnant un entier, positif ou négatif, à une adresse stockée dans un registre. Ce mode d'adressage joue un rôle important dans le fonctionnement de la pile comme nous le verrons d'ici peu. - -.. code-block:: nasm - - movl $0x08, %eax ; place la valeur 0x08 dans %eax - movl 0(%eax), %ecx ; place la valeur (0xFF) se trouvant à l'adresse - ; 0x08= (0x08+0) dans le registre %ecx - movl 4(%eax), %ecx ; place la valeur (0x10) se trouvant à l'adresse - ; 0x0C (0x08+4) dans le registre %ecx - movl -8(%eax), %ecx ; place la valeur (0x04) se trouvant à l'adresse - ; 0x00 (0x08-8) dans le registre %ecx - -L'architecture [IA32]_ supporte encore d'autres modes d'adressage. Ceux sont décrits dans [IA32]_ ou [BryantOHallaron2011]_. Une autre instruction permettant de déplacer de l'information est l'instruction ``leal`` (load effective address). Cette instruction est parfois utilisée par les compilateurs. Elle place dans le registre destination l'adresse de son argument source plutôt que sa valeur. Ainsi ``leal 4(%esp) %edx`` placera dans le registre ``%edx`` l'adresse de son argument source, c'est-à -dire l'adresse contenue dans ``%esp+4``. - - -Instructions arithmétiques et logiques --------------------------------------- - -La deuxième famille d'instructions importante sur un processeur sont les instructions qui permettent d'effectuer les opérations arithmétiques et logiques. Voici quelques exemples d'instructions arithmétiques et logiques supportées par l'architecture [IA32]_. - -Les instructions les plus simples sont celles qui prennent un seul argument. Il s'agit de : - - - ``inc`` qui incrémente d'une unité la valeur stockée dans le registre/l'adresse fournie en argument et sauvegarde le résultat de l'incrémentation au même endroit. Cette instruction peut être utilisée pour implémenter des compteurs de boucles. - - ``dec`` est équivalente à ``inc`` mais décrémente son argument. - - ``not`` qui applique l'opération logique ``NOT`` à son argument et stocke le résultat à cet endroit - -Il existe une variante de chacune de ces instructions pour chaque type de données à manipuler. Cette variante se reconnait grâce au dernier caractère de l'instruction (``b`` pour byte, ``w`` pour un mot de 16 bits et ``l`` pour un mot de 32 bits). Nous nous limiterons aux instructions qui manipulent des mots de 32 bits. - -.. code-block:: nasm - - movl $0x12345678, %ecx ; initialisation - notl %ecx ; calcul de NOT - movl $0, %eax ; %eax=0 - incl %eax ; %eax++ - -L'architecture [IA32]_ supporte également des instructions arithmétiques et logiques prenant chacune deux arguments. - - - ``add`` permet d'additionner deux nombres entiers. ``add`` prend comme arguments une source et une destination et place dans la destination la somme de ses deux arguments. - - ``sub`` permet de soustraire le premier argument du second et stocke le résultat dans le second - - ``mul`` permet de multiplier des nombres entiers non-signés (``imul`` est le pendant de ``mul`` pour la multiplication de nombres signés) - - ``div`` permet la division de nombres entiers non-signés. - - ``shl`` (resp. ``shr``) permet de réaliser un décalage logique vers la gauche (resp. droite) - - ``xor`` calcule un ou exclusif entre ses deux arguments et sauvegarde le résultat dans le second - - ``and`` calcule la conjonction logique entre ses deux arguments et sauvegarde le résultat dans le second - - -Pour illustrer le fonctionnement de ces instructions, considérons une mémoire hypothétique contenant les données suivantes. Supposons que la variable entière ``a`` est stockée à l'adresse ``0x04``, ``b`` à l'adresse ``0x08`` et ``c`` à l'adresse ``0x0C``. - - ========== ======== ======== - Adresse Variable Valeur - ========== ======== ======== - 0x0C c 0x00 - 0x08 b 0xFF - 0x04 a 0x02 - 0x00 - 0x01 - ========== ======== ======== - -Les trois premières instructions ci-dessous sont équivalentes à l'expression C ``a=a+1;``. Pour implémenter une telle opération en C, il faut d'abord charger la valeur de la variable dans un registre. Ensuite le processeur effectue l'opération arithmétique. Enfin le résultat est sauvegardé en mémoire. Après ces trois instructions, la valeur ``0x03`` est stockée à l'adresse ``0x04`` qui correspond à la variable ``a``. Les trois dernières instructions calculent ``a=b-c;``. On remarquera que le programmeur a choisi de d'abord charger la valeur de la variable ``b`` dans le registre ``%eax``. Ensuite il utilise l'instruction ``subl`` en mode d'adressage immédiat pour placer dans ``%eax`` le résultat de la soustraction entre ``%eax`` et la donnée se trouvant à l'adresse ``0x0C``. Enfin, le contenu de ``%eax`` est sauvé à l'adresse correspondant à la variable ``a``. - -.. code-block:: nasm - - movl 0x04, %eax ; %eax=a - addl $1, %eax ; %eax++ - movl %eax, 0x04 ; a=%eax - movl 0x08, %eax ; %eax=b - subl 0x0c, %eax ; %eax=b-c - movl %eax, 0x04 ; a=%eax - -L'exemple ci-dessous présente la traduction directe [#fllvm]_ d'un fragment de programme C utilisant des variables globales en langage assembleur. - -.. code-block:: c - - int j,k,g,l; - // ... - l=g^j; - j=j|k; - g=l<<6; - -Dans le code assembleur, les noms de variables tels que ``g`` ou ``j`` correspondent à l'adresse mémoire à laquelle la variable est stockée. - -.. code-block:: nasm - - movl g, %eax ; %eax=g - xorl j, %eax ; %eax=g^j - movl %eax, l ; l=%eax - movl j, %eax ; %eax=j - orl k, %eax ; %eax=j|k - movl %eax, j ; j=%eax - movl l, %eax ; %eax=l - shll $6, %eax ; %eax=%eax << 6 - movl %eax, g ; g=%eax - -Les opérations arithmétiques telles que la multiplication ou la division sont plus complexes que les opérations qui ont été présentées ci-dessus. En toute généralité, la multiplication entre deux nombres de 32 bits peut donner un résultat sur 64 bits qui ne pourra donc pas être stocké entièrement dans un registre. De la même manière, une division entière retourne un quotient et un reste qui sont tous les deux sur 32 bits. L'utilisation des instructions de division et de multiplication nécessite de prendre ces problèmes en compte. Nous ne les aborderons pas dans ce cours. Des détails complémentaires sont disponibles dans [IA32]_ et [BryantOHallaron2011]_ notamment. - - -Les instructions de comparaison -------------------------------- - -Outre les opérations arithmétiques, un processeur doit être capable de réaliser des comparaisons. Ces comparaisons sont nécessaires pour implémenter des tests tels que ``if (condition) { ... } else { ... }``. Sur les processeurs [IA32]_, les comparaisons utilisent des drapeaux qui sont mis à jour par le processeur après l'exécution de certaines instructions. Ceux-ci sont regroupés dans le registre ``eflags``. Les principaux drapeaux sont : - - - `ZF` (Zero Flag) : ce drapeau indique si le résultat de la dernière opération était zéro - - `SF` (Sign Flag) : indique si le résultat de la dernière instruction était négatif - - `CF` (Carry Flag) : indique si le résultat de la dernière instruction arithmétique non signée nécessitait plus de 32 bits pour être stocké - - `OF` (Overflow Flag) : indique si le résultat de la dernière instruction arithmétique signée a provoqué un dépassement de capacité - -Nous utiliserons principalement les drapeaux `ZF` et `SF` dans ce chapitre. Ces drapeaux peuvent être fixés par les instructions arithmétiques standard, mais aussi par des instructions dédiées comme ``cmp`` et ``test``. L'instruction ``cmp`` effectue l'équivalent d'une soustraction et met à jour les drapeaux `CF` et `SF` mais sans sauvegarder son résultat dans un registre. L'instruction ``test`` effectue elle une conjonction logique sans sauvegarder son résultat mais en mettant à jour les drapeaux. - -Ces instructions de comparaison peuvent être utilisées avec les instructions ``set`` qui permettent de fixer la valeur d'un registre en fonction des valeurs de certains drapeaux du registre ``eflags``. Chaque instruction ``set`` prend comme argument un registre. Pour des raisons historiques, ces instructions modifient uniquement les bits de poids faible du registre indiqué et non le registre complet. C'est un détail qui est lié à l'histoire de l'architecture [IA32]_. - - - ``sete`` met le registre argument à la valeur du drapeau `ZF`. Permet d'implémenter une égalité. - - ``sets`` met le registre argument à la valeur du drapeau `SF` - - ``setg`` place dans le registre argument la valeur ``~SF & ~ZF`` (tout en prenant en compte les dépassements éventuels avec `OF`). Permet d'implémenter la condition ``>``. - - ``setl`` place dans le registre argument la valeur de ``SF`` (tout en prenant en compte les dépassements éventuels avec `OF`). Permet d'implémenter notamment la condition ``<=``. - -A titre d'illustration, voici quelques expressions logiques en C et leur implémentation en assembleur lorsque les variables utilisées sont toutes des variables globales. - -.. code-block:: c - - r=(h>1); - r=(j==0); - r=g<=h; - r=(j==h); - - -Le programme assembleur utilise une instruction ``cmpl`` pour effectuer la comparaison. Ensuite, une instruction ``set`` permet de fixer la valeur du byte de poids faible de ``%eax`` et une instruction (``movzbl``) permettant de transformer ce byte en un mot de 32 bits afin de pouvoir le stocker en mémoire. Cette traduction a été obtenue avec :term:`llvm`, d'autres compilateurs peuvent générer du code un peu différent. - -.. code-block:: nasm - - cmpl $1, h ; comparaison - setg %al ; %al est le byte de poids faible de %eax - movzbl %al, %ecx ; copie le byte dans %ecx - movl %ecx, r ; sauvegarde du résultat dans r - - cmpl $0, j ; comparaison - sete %al ; fixe le byte de poids faible de %eax - movzbl %al, %ecx - movl %ecx, r ; sauvegarde du résultat dans r - - movl g, %ecx - cmpl h, %ecx ; comparaison entre g et h - setl %al ; fixe le byte de poids faible de %eax - movzbl %al, %ecx - movl %ecx, r - - movl j, %ecx - cmpl h, %ecx ; comparaison entre j et h - sete %al - movzbl %al, %ecx - movl %ecx, r - - -Les instructions de saut ------------------------- - -Les instructions de saut sont des instructions de base pour tous les processeurs. Elles permettent de modifier la valeur du compteur de programme ``%eip`` de façon à modifier l'ordre d'exécution des instructions. Elles sont nécessaires pour implémenter les tests, les boucles et les appels de fonction. Les premiers langages de programmation et des langages tels que BASIC ou FORTRAN disposent d'une construction similaire avec l'instruction ``goto``. Cependant, l'utilisation de l'instruction ``goto`` dans des programmes de haut niveau rend souvent le code difficile à lire et de nombreux langages de programmation n'ont plus de ``goto`` [Dijkstra1968]_. Contrairement à Java, le C contient une instruction ``goto``, mais son utilisation est fortement découragée. En C, l'instruction ``goto`` prend comme argument une étiquette (label en anglais). Lors de l'exécution d'un ``goto``, le programme saute directement à l'exécution de l'instruction qui suit le label indiqué. Ceci est illustré dans l'exemple ci-dessous : - -.. literalinclude:: /Assembleur/src/goto.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Si l'utilisation ``goto`` est en pratique prohibée dans la plupart des langages de programmation, en assembleur, les instructions de saut sont inévitables. L'instruction de saut la plus simple est ``jmp``. Elle prend généralement comme argument une étiquette. Dans ce cas, l'exécution du programme après l'instruction ``jmp`` se poursuivra par l'exécution de l'instruction qui se trouve à l'adresse correspondant à l'étiquette fournie en argument. Il est également possible d'utiliser l'instruction ``jmp`` avec un registre comme argument. Ainsi, l'instruction ``jmp *%eax`` indique que l'exécution du programme doit se poursuivre par l'exécution de l'instruction se trouvant à l'adresse qui est contenue dans le registre ``%eax``. - -Il existe plusieurs variantes conditionnelles de l'instruction ``jmp``. Ces variantes sont exécutées uniquement si la condition correspondante est vérifiée. Les variantes les plus fréquentes sont : - - - ``je`` : saut si égal (teste le drapeau `ZF`) (inverse : ``jne``) - - ``js`` : saut si négatif (teste le drapeau `SF`) (inverse : ``jns``) - - ``jg`` : saut si strictement supérieur (teste les drapeaux `SF` et `ZF` et prend en compte un overflow éventuel) (inverse : ``jl``) - - ``jge`` : saut si supérieur ou égal (teste le drapeaux `SF` et prend en compte un overflow éventuel) (inverse : ``jle``) - -Ces instructions de saut conditionnel sont utilisées pour implémenter notamment des expressions ``if (condition) { ... } else { ... }`` en C. Voici quelques traductions réalisées par un compilateur C en guise d'exemple. - -.. code-block:: c - - if(j==0) - r=1; - - if(j>g) - r=2; - else - r=3; - - if (j>=g) - r=4; - - -Avant d'analyser la traduction de ce programme en assembleur, il est utile de le réécrire en utilisant l'instruction ``goto`` afin de s'approcher du fonctionnement de l'assembleur. - -.. code-block:: c - - if(j!=0) { goto diff; } - r=1; - diff: - // suite - - if(j<=g) { goto else; } - r=2; - goto fin; - else: - r=3; - fin: - // suite - - if (j<g) { goto suivant; } - r=4; - -Ce code C correspond assez bien au code assembleur produit par le compilateur. - -.. code-block:: nasm - - cmpl $0, j ; j==0 ? - jne .LBB2_2 ; jump si j!=0 - movl $1, r ; r=1 - .LBB2_2: - - movl j, %eax ; %eax=j - cmpl g, %eax ; j<=g ? - jle .LBB2_4 ; jump si j<=g - - movl $2, r ; r=2 - jmp .LBB2_5 ; jump fin expression - .LBB2_4: - movl $3, r ; r=3 - .LBB2_5: - - movl j, %eax ; %eax=j - cmpl g, %eax ; j<g ? - jl .LBB2_7 ; jump si j<g - movl $4, r ; r=4 - .LBB2_7: - -Les instructions de saut conditionnel interviennent également dans l'implémentation des boucles. Plusieurs types de boucles existent en langage C. Considérons tout d'abord une boucle ``while``. - -.. code-block:: c - - while(j>0) - { - j=j-3; - } - -Cette boucle peut se réécrire en utilisant des ``goto`` comme suit. - - -.. code-block:: c - - debut: - if(j<=0) { goto fin; } - j=j-3; - goto debut; - fin: - -On retrouve cette utilisation des instructions de saut dans la traduction en assembleur de cette boucle. - -.. code-block:: nasm - - .LBB3_1: - cmpl $0, j ; j<=0 - jle .LBB3_3 ; jump si j<=0 - movl j, %eax - subl $3, %eax - movl %eax, j ; j=j-3 - jmp .LBB3_1 - .LBB3_3: - -Les boucles ``for`` s'implémentent également en utilisant des instructions de saut. - -.. code-block:: c - - for(j=0;j<10;j++) - { g=g+h; } - - for(j=9;j>0;j=j-1) - { g=g-h; } - -La première boucle démarre par l'initialisation de la variable ``j`` à ``0``. Ensuite, la valeur de cette variable est comparée avec ``10``. L'instruction ``jge`` fait un saut à l'adresse mémoire correspondant à l'étiquette ``.LBB4_4`` si la comparaison indique que ``j>=10``. Sinon, les instructions suivantes calculent ``g=g+h`` et ``j++`` puis l'instruction ``jmp`` relance l'exécution à l'instruction de comparaison qui est stockée à l'adresse de l'étiquette ``.LBB4_1``. - -.. code-block:: nasm - - movl $0, j ; j=0 - .LBB4_1: - cmpl $10, j - jge .LBB4_4 ; jump si j>=10 - movl g, %eax ; %eax=g - addl h, %eax ; %eax+=h - movl %eax, g ; %eax=g - movl j, %eax ; %eax=j - addl $1, %eax ; %eax++ - movl %eax, j ; j=%eax - jmp .LBB4_1 - .LBB4_4: - - movl $9, j ; j=9 - .LBB4_5: - cmpl $0, j - jle .LBB4_8 ; jump si j<=0 - movl g, %eax - subl h, %eax - movl %eax, g - movl j, %eax ; %eax=j - subl $1, %eax ; %eax-- - movl %eax, j ; j=%eax - jmp .LBB4_5 - .LBB4_8: - -La seconde boucle est organisée de façon similaire. - - -Manipulation de la pile ------------------------ - -Les instructions ``mov`` permettent de déplacer de l'information à n'importe quel endroit de la mémoire. A côté de ces instructions de déplacement, il y a des instructions qui sont spécialisées dans la manipulation de la pile. La pile, qui dans un processus Unix est stockée dans les adresses hautes est essentielle au bon fonctionnement des programmes. Par convention dans l'architecture [IA32]_, l'adresse du sommet de la pile est toujours stockée dans le registre ``%esp``. Deux instructions spéciales permettent de rajouter et de retirer une information au sommet de la pile. - - - ``pushl %reg`` : place le contenu du registre ``%reg`` au sommet de la pile et décrémente dans le registre ``%esp`` l'adresse du sommet de la pile de 4 unités. - - ``popl %reg`` : retire le mot de 32 bits se trouvant au sommet de la pile, le sauvegarde dans le registre ``%reg`` et incrémente dans le registre ``%esp`` l'adresse du sommet de la pile de 4 unités. - -En pratique, ces deux instructions peuvent également s'écrire en utilisant des instructions de déplacement et des instructions arithmétiques. Ainsi, ``pushl %ebx`` est équivalent à : - -.. code-block:: nasm - - subl $4, %esp ; ajoute un bloc de 32 bits au sommet de la pile - movl %ebx, (%esp) ; sauvegarde le contenu de %ebx au sommet - -Tandis que ``popl %ecx`` est équivalent à : - -.. code-block:: nasm - - movl (%esp), %ecx ; sauve dans %ecx la donnée au sommet de la pile - addl $4, %esp ; déplace le sommet de la pile de 4 unites vers le haut - -Pour bien comprendre le fonctionnement de la pile, il est utile de considérer un exemple simple. Imaginons la mémoire ci-dessous et supposons qu'initialement le registre ``%esp`` contient la valeur ``0x0C`` et que les registres ``eax`` et ``%ebx`` contiennent les valeurs ``0x02`` et ``0xFF``. - - ========= ======== - Adresse Valeur - ========= ======== - 0x10 0x04 - 0x0C 0x00 - 0x08 0x00 - 0x04 0x00 - 0x00 0x00 - ========= ======== - -.. code-block:: nasm - - push %eax ; %esp contient 0x08 et M[0x08]=0x02 - push %ebx ; %esp contient 0x04 et M[0x04]=0xFF - pop %eax ; %esp contient 0x08 et %eax 0xFF - pop %ebx ; %esp contient 0x0C et %ebx 0x02 - pop %eax ; %esp contient 0x10 et %eax 0x00 - - -Les fonctions et procédures ---------------------------- - -Les fonctions et les procédures sont essentielles dans tout langage de programmation. Une procédure est une fonction qui ne retourne pas de résultat. Nous commençons par expliquer comment les procédures peuvent être implémentées en assembleur et nous verrons ensuite comment implémenter les fonctions. - -Une procédure est un ensemble d'instructions qui peuvent être appelées depuis n'importe quel endroit du programme. Généralement, une procédure est appelée depuis plusieurs endroits différents d'un programme. Pour comprendre l'implémentation des procédures, nous allons considérer des procédures de complexité croissante. Nos premières procédures ne prennent aucun argument. En C, elles peuvent s'écrire sous la forme de fonctions ``void`` comme suit. - -.. literalinclude:: /Assembleur/src/proc.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Ces deux procédures utilisent et modifient des variables globales. Nous verrons plus tard comment supporter les variables locales. Lorsque la fonction ``main`` appelle la procédure ``init_g()`` ou la procédure ``increase``, il y a plusieurs opérations qui doivent être effectuées. Tout d'abord, le processeur doit transférer l'exécution du code à la première instruction de la procédure appelée. Cela se fait en associant une étiquette à chaque procédure qui correspond à l'adresse de la première instruction de cette procédure en mémoire. Une instruction de saut telle que ``jmp`` pourrait permettre de démarrer l'exécution de la procédure. Malheureusement, ce n'est pas suffisant car après son exécution la procédure doit pouvoir poursuivre son exécution à l'adresse de l'instruction qui suit celle d'où elle a été appelée. Pour cela, il est nécessaire que la procédure qui a été appelée puisse connaître l'adresse de l'instruction qui doit être exécutée à la fin de son exécution. Dans l'architecture [IA32]_, cela se fait en utilisant la pile. Vu l'importance des appels de procédure et de fonctions, l'architecture [IA32]_ contient deux instructions dédiés pour implémenter ces appels. L'instruction ``call`` est une instruction de saut qui transfère l'exécution à l'adresse de l'étiquette passée en argument et en plus elle sauvegarde au sommet de la pile l'adresse de l'instruction qui la suit. Cette adresse est l'adresse à laquelle la procédure doit revenir après son exécution. Elle est équivalente à une instruction ``push`` suivie d'une instruction ``jmp``. L'instruction ``ret`` est également une instruction de saut. Elle suppose que l'adresse de retour se trouve au sommet de la pile, retire cette adresse de la pile et fait un saut à cette adresse. Elle est donc équivalente à une instruction ``pop`` suivie d'une instruction ``jmp``. Dans l'architecture [IA32]_, le registre ``%esp`` contient en permanence le sommet de la pile. Les instructions ``call`` et ``ret`` modifient donc la valeur de ce registre lorsqu'elles sont exécutées. En assembleur, le programme ci-dessus se traduit comme suit : - -.. code-block:: nasm - - increase: ; étiquette de la première instruction - movl g, %eax - addl h, %eax - movl %eax, g - ret ; retour à l'endroit qui suit l'appel - init_g: ; étiquette de la première instruction - movl $1252, g - ret ; retour à l'endroit qui suit l'appel - main: - subl $12, %esp - movl 20(%esp), %eax - movl 16(%esp), %ecx - movl $0, 8(%esp) - movl %ecx, 4(%esp) - movl %eax, (%esp) - calll init_g ; appel à la procédure init_g - A_init_g: calll increase ; appel à la procédure increase - A_increase: movl $0, %eax - addl $12, %esp - ret ; fin de la fonction main - g: ; étiquette, variable globale g - .long 0 ; initialisée à 0 - h: ; étiquette, variable globale g - .long 2 ; initialisée à 2 - - -Dans ce code assembleur, on retrouve dans le bas du code la déclaration des deux variables globales, ``g`` et ``h`` et leurs valeurs initiales. Chaque procédure a son étiquette qui correspond à l'adresse de sa première instruction. La fonction ``main`` débute par une manipulation de la pile qui ne nous intéresse pas pour le moment. L'appel à la procédure ``init_g()`` se fait via l'instruction ``calll init_g`` qui place sur la pile l'adresse de l'étiquette ``A_init_g``. La procédure ``init_g()`` est très simple puisqu'elle comporte une instruction ``movl`` qui permet d'initialiser la variable ``g`` suivie d'une instruction ``ret``. Celle-ci retire de la pile l'adresse ``A_init_g`` qui y avait été placée par l'instruction ``call`` et poursuit l'exécution du programme à cette adresse. L'appel à la procédure ``increase`` se déroule de façon similaire. - - -Considérons une petite variante de notre programme C dans lequel une procédure ``p`` appelle une procédure ``q``. - -.. literalinclude:: /Assembleur/src/proc2.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -La compilation de ce programme produit le code assembleur suivant pour les procédures ``p`` et ``q``. - - -.. code-block:: nasm - - q: - movl $1252, g - ret ; retour à l'appelant - p: - subl $12, %esp ; réservation d'espace sur pile - calll q ; appel à la procédure q - movl g, %eax - addl h, %eax - movl %eax, g - addl $12, %esp ; libération espace réservé sur pile - ret ; retour à l'appelant - -La seule différence par rapport au programme précédent est que la procédure ``p`` descend le sommet de la pile de 12 unités au début de son exécution et l'augmente de 12 unités à la fin. Ces manipulations sont nécessaires pour respecter une convention de l'architecture [IA32]_ qui veut que les adresses de retour des procédures soient alignées sur des blocs de 16 bytes. - -Considérons maintenant une procédure qui prend un argument. Pour qu'une telle procédure puisse utiliser un argument, il faut que la procédure appelante puisse placer sa valeur à un endroit où la procédure appelée peut facilement y accéder. Dans l'architecture [IA32]_, c'est la pile qui joue ce rôle et permet le passage des arguments. En C, les arguments sont passés par valeur et ce sera donc les valeurs des arguments qui seront placées sur la pile. A titre d'exemple, considérons une procédure simple qui prend deux arguments entiers. - -.. literalinclude:: /Assembleur/src/fct.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Le passage des arguments de la fonction ``init`` depuis la fonction ``main`` se fait en les plaçant sur la pile avec les instructions ``movl $1252, (%esp)`` et ``movl $1, 4(%esp)`` qui précèdent l'instruction ``call init``. Le premier argument est placé au sommet de la pile et le second juste au-dessus. La fonction ``main`` sauvegarde d'autres registres sur la pile avant l'appel à ``init``. Ces sauvegardes sont nécessaires car la fonction ``main`` ne sait pas quels registres seront modifiés par la fonction qu'elle appelle. En pratique l'architecture [IA32]_ définit des conventions d'utilisation des registres. Les registres ``%eax``, ``%edx`` et ``%ecx`` sont des registres qui sont sous la responsabilité de la procédure appellante (dans ce cas ``main``). Une procédure appelée (dans ce cas-ci ``init``) peut modifier sans restrictions les valeurs de ces registres. Si la fonction appellante souhaite pouvoir utiliser les valeurs stockées dans ces registres après l'appel à la procédure, elle doit les sauvegarder elle-même sur la pile. C'est ce que fait la fonction ``main`` pour ``%eax``, ``%edx`` et ``%ecx``. Inversement, les registres ``%ebx``, ``%edi`` et ``%esi`` sont des registres qui doivent être sauvés par la procédure appelée si celle-ci les modifie. La procédure ``init`` n'utilisant pas ces registres, elle ne les sauvegarde pas. Par contre, la fonction ``main`` débute en sauvegardant le registre ``%esi`` sur la pile. - -.. code-block:: nasm - - init: - subl $8, %esp ; réservation d'espace sur la pile - movl 16(%esp), %eax ; récupération du second argument - movl 12(%esp), %ecx ; récupération du premier argument - movl %ecx, 4(%esp) ; sauvegarde sur la pile - movl %eax, (%esp) ; sauvegarde sur la pile - movl 4(%esp), %eax ; chargement de i - movl %eax, g ; g=i - movl (%esp), %eax ; chargement de j - movl %eax, h ; h=j - addl $8, %esp ; libération de l'espace réservé - ret - main: - pushl %esi - subl $40, %esp - movl 52(%esp), %eax - movl 48(%esp), %ecx - movl $1252, %edx - movl $1, %esi - movl $0, 36(%esp) - movl %ecx, 32(%esp) - movl %eax, 24(%esp) - movl $1252, (%esp) ; premier argument sur la pile - movl $1, 4(%esp) ; deuxième argument sur la pile - movl %esi, 20(%esp) - movl %edx, 16(%esp) - calll init ; appel à init - movl $0, %eax - addl $40, %esp - popl %esi - ret - - -La différence entre une procédure et une fonction est qu'une fonction retourne un résultat. Considérons le programme suivant et les fonctions triviales ``int init()`` et ``int sum(int, int)``. Pour que de telles fonctions puissent s'exécuter et retourner un résultat, il faut que la procédure appelante puisse savoir où aller chercher le résultat après exécution de l'instruction ``ret``. - -.. literalinclude:: /Assembleur/src/fct2.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -La compilation du programme C ci-dessus en assembleur produit le code suivant. Dans l'architecture [IA32]_, la valeur de retour d'une fonction est stockée par convention dans le registre ``%eax``. Cette convention est particulièrement visible lorsque l'on regarde les instructions générées pour la fonction ``int init()``. La fonction ``sum`` retourne également son résultat dans le registre ``%eax``. - -.. code-block:: nasm - - init: - movl $1252, %eax - ret - sum: - subl $8, %esp ; réservation d'espace sur la pile - movl 16(%esp), %eax ; récupération du second argument - movl 12(%esp), %ecx ; récupération du premier argument - movl %ecx, 4(%esp) - movl %eax, (%esp) - movl 4(%esp), %eax ; %eax=a - addl (%esp), %eax ; %eax=a+b - addl $8, %esp ; libération de l'espace réservé - ret - main: - subl $28, %esp - movl 36(%esp), %eax - movl 32(%esp), %ecx - movl $0, 24(%esp) - movl %ecx, 20(%esp) ; sauvegarde sur la pile - movl %eax, 16(%esp) ; sauvegarde sur la pile - calll init - movl $1, %ecx - movl $2, %edx - movl %eax, g - movl $1, (%esp) ; premier argument - movl $2, 4(%esp) ; second argument - movl %ecx, 12(%esp) ; sauvegarde sur la pile - movl %edx, 8(%esp) ; sauvegarde sur la pile - calll sum - movl $0, %ecx - movl %eax, h - movl %ecx, %eax - addl $28, %esp - ret - - -Pour terminer notre exploration de la compilation de fonctions C en assembleur, considérons une fonction récursive. Par simplicité, nous utilisons la fonction ``sumn`` qui calcule de façon récursive la somme des n premiers entiers. - -.. literalinclude:: /Assembleur/src/sumn.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lorsque cette fonction récursive est compilée, on obtient le code ci-dessous. Celui-ci démarre par réserver une zone de 28 bytes sur la pile et récupère ensuite l'argument qui est placé dans le registre ``%eax``. Cet argument est utilisé comme variable locale, il est donc sauvegardé sur la pile de la fonction ``sumn`` dans la zone qui vient d'être réservée. Ensuite, on compare la valeur de l'argument avec ``1``. Si l'argument est inférieur ou égal à ``1``, on récupère la variable locale sur la pile et on la sauve à un autre endroit en préparation à la fin du code (étiquette ``.LBB1_3``) ou elle sera placée dans le registre ``%eax`` avant l'exécution de l'instruction ``ret``. Sinon, l'appel récursif est effectué. Pour cela, il faut d'abord calculer ``n-1``. Cette valeur est stockée dans le registre ``%ecx`` puis placée sur la pile avant l'appel récursif. Comme un appel de fonction ne préserve pas ``%eax`` et que cette valeur est nécessaire après l'appel récursif, elle est sauvegardée sur la pile. La première instruction qui suit l'exécution de l'appel récursif récupère la valeur de la variable ``n`` sur la pile et la place dans le registre ``%ecx``. Le résultat de l'appel récursif étant placé dans ``%eax``, l'instruction ``addl %ecx, %eax`` calcule bien ``n+sum(n-1)``. Ce résultat est placé sur la pile puis récupéré et placé dans ``%eax`` avant l'exécution de ``ret``. Il faut noter que les 28 bytes qui avaient étés ajoutés à la pile au début de la fonction sont retirées par l'instruction ``addl $28, %esp``. C'est nécessaire pour que la pile soit bien préservée lors de l'appel à une fonction. - -.. code-block:: nasm - - sumn: - subl $28, %esp ; réservation d'espace sur la pile - movl 32(%esp), %eax ; récupération argument - movl %eax, 20(%esp) ; sauvegarde sur pile - cmpl $1, 20(%esp) - jg .LBB1_2 ; jump si n>1 - movl 20(%esp), %eax ; récupération n - movl %eax, 24(%esp) - jmp .LBB1_3 - .LBB1_2: - movl 20(%esp), %eax - movl 20(%esp), %ecx - subl $1, %ecx ; %ecx=n-1 - movl %ecx, (%esp) ; argument sur pile - movl %eax, 16(%esp) - recursion: - calll sumn - movl 16(%esp), %ecx ; récupération de n - addl %ecx, %eax ; %eax=%eax+n - movl %eax, 24(%esp) - .LBB1_3: - movl 24(%esp), %eax - addl $28, %esp ; libération de l'espace réservé sur la pile - ret - - -Ce code illustre la complexité de supporter des appels récursifs en C et le coût au niveau de la gestion de la pile notamment. Ces appels récursifs doivent être réservés à des fonctions où l'appel récursif apporte une plus value claire. - -.. rubric:: Footnotes - -.. [#fintel] Pour une liste détaillée des processeurs de cette famille produits par intel_, voir notamment http://www.intel.com/pressroom/kits/quickreffam.htm D'autres fabricants produisent également des processeurs compatibles avec l'architecture [IA32]_. - -.. [#fmov] On parle de famille d'instructions car il existe de nombreuses instructions de déplacement en mémoire. Les plus simples sont suffixées par un caractère qui indique le type de données transféré. Ainsi, ``movb`` permet le transfert d'un byte tandis que ``movl`` permet le transfert d'un mot de 32 bits. Des détails sur ces instructions peuvent être obtenus dans [IA32]_ - -.. [#fllvm] Cette traduction et la plupart des traductions utilisées dans ce chapitre ont été obtenues en utilisant l'interface `web de démo <http://llvm.org/demo/index.cgi>`_ du compilateur llvm_ qui a été configuré pour générer du code 32 bits sans optimisation. Quelques détails ont été supprimés du code assembleur pour le rendre plus compact. - - diff --git a/Theorie/Assembleur/src/argserror.c b/Theorie/Assembleur/src/argserror.c deleted file mode 100644 index eafc07a..0000000 --- a/Theorie/Assembleur/src/argserror.c +++ /dev/null @@ -1,24 +0,0 @@ -/************************************** - * argserror.c - * - * Programme d'exemple d'appel de fonction - * avec un nombre erroné d'arguments - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int g; - -int f(int i, int j) { - return i+j; -} - -int main(int argc, char *argv[]) { - - g=f(3,0); - // g=f(5,6,7); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/asm-exemples.c b/Theorie/Assembleur/src/asm-exemples.c deleted file mode 100644 index 0e22c1a..0000000 --- a/Theorie/Assembleur/src/asm-exemples.c +++ /dev/null @@ -1,118 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> - -int g=1; -int h=2; -int j,j2,l,l,m,k; -int r; - -void a() -{ - j=j+1; - k=g-h; -} - -void cmp() -{ - r=(h>1); - r=(j==0); - r=g<h; - r=(j==h); -} - -void jump() -{ - if(j==0) - r=1; - - if(j>g) - r=2; - else - r=3; - - if (j>=g) - r=4; - -} - -void while_loop() -{ - while(j>0) - { - j=j-3; - } - -} - -void for_loop() -{ - for(j=0;j<10;j++) - g=g+h; - - for(j=9;j>0;j=j-1) - g=g-h; -} - -void increase() -{ - g=g+h; -} - -void init_g() -{ - g=1252; -} - -void init(int a) { -g=a; -} - -void sumg(int a, int b) { - g= a+b; -} - -int sum(int a, int b) { - return a+b; -} - -void b() -{ - l=g^j; - j=j|k; - g=l<<6; -} - -int test() -{ - h=~h; - j++; - j=j+1; - j=g/h; - j2=g*h; - k=g-h; - l=g>>4; - g=l<<6; - m= h&&g; - return m; - -} - -int add() -{ - int l=1252; - l=g+h; - return l; -} - -int factorial(int X) { - if (X == 0) return 1; - return X*factorial(X-1); -} - -int main(int argc, char **argv) { - init_g(); - increase(); - init(1252); - sumg(6,7); - printf("%d\n", factorial(atoi(argv[1]))); -} diff --git a/Theorie/Assembleur/src/asm-intro.c b/Theorie/Assembleur/src/asm-intro.c deleted file mode 100644 index 18a5e83..0000000 --- a/Theorie/Assembleur/src/asm-intro.c +++ /dev/null @@ -1,54 +0,0 @@ -/************************************** - * var.c - * - * Programme d'exemple pour localiser - * les variables en mémoire - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - - - -int global_int=1; -int global_i=1; -int global_j=1; -float global_float=1.0; -char global_char='c'; - -int add() { - int v=global_i+global_j; - return(v); -} - -int sum(int i, int j) { - return (i+j); -} - -int sumn(int n) { - if(n>0) - return (n + sumn(n-1)); - else - return n; -} - - -int while_loop(void) { - int i=1; - int j=17; - while(i<j) - i=i+2; - return i; -} - -int main(int argc, char *argv[]) { - - int local_int=1; - float local_float=1.0; - char local_char='c'; - printf("while0=%d\n",while_loop()); - printf("add=%d\n",add()); - printf("sumn(3)=%d\n",sumn(3)); - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/backtrace.c b/Theorie/Assembleur/src/backtrace.c deleted file mode 100644 index 8802f85..0000000 --- a/Theorie/Assembleur/src/backtrace.c +++ /dev/null @@ -1,56 +0,0 @@ -#include <stdio.h> -#include <string.h> - -char safechar(char c) -{ - if (c >= 'a' && c <= 'z') return(c); - if (c >= 'A' && c <= 'Z') return(c); - if (c >= '0' && c <= '9') return(c); - if (c == ' ') return(c); - if (c == '.') return(c); - if (c == '-') return(c); - if (c == ',') return(c); - if (c == '(') return(c); - if (c == ')') return(c); - if (c == '[') return(c); - if (c == ']') return(c); - if (c == '{') return(c); - if (c == '}') return(c); - return '.'; -} - -void print_backtrace(void *from) -{ - long *s = (long *) &s+1; - - while ((long) s <= (long) from) { - int i; - printf("[%p] %20ld 0x%-16lx ", s, *s, *s); - for (i = 0; i < sizeof(*s); i++) - printf("%c", safechar(((char *) s)[i])); - printf("\n"); - s++; - } - -} - -long bar(void *p) -{ - print_backtrace(p); - return 42; -} - -long foo(void *p) -{ - long a = 42, b; - void *cool = p; - b = a; - - return b + a + bar(cool); -} - -int main(int argc, char const *argv[]) -{ - const char *args = argv[argc-1]; - return foo((void *)&args[strlen(args)+1]); -} diff --git a/Theorie/Assembleur/src/fct.c b/Theorie/Assembleur/src/fct.c deleted file mode 100644 index 376d17b..0000000 --- a/Theorie/Assembleur/src/fct.c +++ /dev/null @@ -1,22 +0,0 @@ -/************************************** - * fct.c - * - * Programme d'exemple pour une fonction - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA -int g=0; -int h=2; -void init(int i, int j) { - g=i; - h=j; -} - -int main(int argc, char *argv[]) { - init(1252,1); - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/fct2.c b/Theorie/Assembleur/src/fct2.c deleted file mode 100644 index 5a93282..0000000 --- a/Theorie/Assembleur/src/fct2.c +++ /dev/null @@ -1,27 +0,0 @@ -/************************************** - * fct2.c - * - * Programme d'exemple pour une fonction - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA -int g=0; -int h=2; - -int init() { - return 1252; -} - -int sum(int a, int b) { - return a+b; -} - -int main(int argc, char *argv[]) { - g=init(); - h=sum(1,2); - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/gdb.c b/Theorie/Assembleur/src/gdb.c deleted file mode 100644 index c1f104d..0000000 --- a/Theorie/Assembleur/src/gdb.c +++ /dev/null @@ -1,31 +0,0 @@ -#include <stdio.h> - -void calc (int *tab, int i, int num) -{ - tab[i] = num / i; -} - -void iter (int *tab, int num) -{ - int i; - printf("Iterating\n"); - for (i = 0; i <= 10; i++) { - calc(tab, i, num); - } -} - -int main (int argc, char * argv[]) -{ - int *tab = NULL; - int num = 20; - int i; - - iter(tab, num); - - for (i = 0; i < 10; i++) { - printf(" %d", tab[i]); - } - printf("\n"); - - return 0; -} diff --git a/Theorie/Assembleur/src/gdbex.c b/Theorie/Assembleur/src/gdbex.c deleted file mode 100644 index 504615d..0000000 --- a/Theorie/Assembleur/src/gdbex.c +++ /dev/null @@ -1,21 +0,0 @@ -/************************************** - * gdbex.c - * - * Programme d'exemple pour gdb - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - - -int g=0; -int h=0; - -int main(int argc, char *argv[]) { - - g=3; - h=g+h; - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/goto.c b/Theorie/Assembleur/src/goto.c deleted file mode 100644 index 7a5bafc..0000000 --- a/Theorie/Assembleur/src/goto.c +++ /dev/null @@ -1,40 +0,0 @@ -/************************************** - * goto.c - * - * Programme d'exemple pour goto - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -#define SIZE 10 -#define MVAL 2100000000 - -int m[SIZE][SIZE]; - -int main(int argc, char *argv[]) { - - srandom(getpid()); - for(int i=0;i<SIZE;i++) - for(int j=0;j<SIZE;j++) { - m[i][j]=(int)random(); - } - ///AAA - int v=0; - for(int i=0;i<SIZE;i++) - for(int j=0;j<SIZE;j++) { - if(m[i][j]>MVAL) { - v=m[i][j]; - goto suite; - } - } - printf("aucune valeur supérieure à %d\n",MVAL,v); - goto fin; - suite: - printf("première valeur supérieure à %d : %d\n",MVAL,v); - fin: - return(EXIT_SUCCESS); - ///BBB - -} diff --git a/Theorie/Assembleur/src/memory.c b/Theorie/Assembleur/src/memory.c deleted file mode 100644 index a3bacbd..0000000 --- a/Theorie/Assembleur/src/memory.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************** - * memory.c - * - * Programme de manipulation de la mémoire - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - - -#define SIZE 1000000 - -struct s1 { - int i; - char c[1]; - int j; -}; - -struct s100 { - int i; - char c[100]; - int j; -}; - - -int main(int argc, char *argv[]) { - - struct s1 *s1_ptr=(struct s1 *)malloc(sizeof(struct s1)*SIZE); - struct s100 *s100_ptr=(struct s100 *)malloc(sizeof(struct s100)*SIZE); - - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/nofree.c b/Theorie/Assembleur/src/nofree.c deleted file mode 100644 index 490d9d9..0000000 --- a/Theorie/Assembleur/src/nofree.c +++ /dev/null @@ -1,9 +0,0 @@ -#include <stdlib.h> - -int main(int argc, char * argv[]) -{ - char *ptrChars = (char *)malloc(6 * sizeof(char)); - ptrChars[0]= 'H'; - - return 0; -} diff --git a/Theorie/Assembleur/src/outofbounds.c b/Theorie/Assembleur/src/outofbounds.c deleted file mode 100644 index 6142f78..0000000 --- a/Theorie/Assembleur/src/outofbounds.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <stdlib.h> - -int main(int argc, char * argv[]) -{ - char *ptrChars = (char *)malloc(6 * sizeof(char)); - ptrChars[0]= 'H'; - ptrChars[12]= 'W'; - free(ptrChars); - - return 0; -} diff --git a/Theorie/Assembleur/src/proc.c b/Theorie/Assembleur/src/proc.c deleted file mode 100644 index b396bbd..0000000 --- a/Theorie/Assembleur/src/proc.c +++ /dev/null @@ -1,27 +0,0 @@ -/************************************** - * proc.c - * - * Programme d'exemple pour les procédures - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA -int g=0; -int h=2; - -void increase() { - g=g+h; -} - -void init_g() { - g=1252; -} - -int main(int argc, char *argv[]) { - init_g(); - increase(); - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/proc2.c b/Theorie/Assembleur/src/proc2.c deleted file mode 100644 index 24e6461..0000000 --- a/Theorie/Assembleur/src/proc2.c +++ /dev/null @@ -1,29 +0,0 @@ -/************************************** - * proc2.c - * - * Programme d'exemple pour les procédures - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA -int g=0; -int h=2; - -void q() { - g=1252; -} - -void p() { - q(); - g=g+h; -} - - - -int main(int argc, char *argv[]) { - p(); - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/sumarray.c b/Theorie/Assembleur/src/sumarray.c deleted file mode 100644 index 6351bcc..0000000 --- a/Theorie/Assembleur/src/sumarray.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************** - * sumarray.c - * - * Programme d'exemple pour calculer la - * somme des éléments d'une matrice - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -/* Return t2-t1 in microseconds */ -long timeval_diff(struct timeval *t2, struct timeval *t1) -{ - long diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); - return (diff); -} - -///AAA -#define SIZE 10000 - -int matrix[SIZE][SIZE]; - -int sum() { - int sum=0; - for(int i=0;i<SIZE;i++) { - for(int j=0;j<SIZE;j++) { - sum+=matrix[i][j]; - } - } - return sum; -} - -int sum2() { - int sum=0; - for(int i=0;i<SIZE;i++) { - for(int j=0;j<SIZE;j++) { - sum+=matrix[j][i]; - } - } - return sum; -} -///BBB - -int main(int argc, char *argv[]) { - - for(int i=0;i<SIZE;i++) { - for(int j=0;j<SIZE;j++) { - matrix[i][j]=1; - } - } - printf("%d\n",sum()); - printf("%d\n",sum2()); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/sumn.c b/Theorie/Assembleur/src/sumn.c deleted file mode 100644 index 208c855..0000000 --- a/Theorie/Assembleur/src/sumn.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************** - * sumn.c - * - * Programme d'exemple pour un calcul récursif - * de la somme des n premiers entiers - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - - -int g=0; -int h=0; -///CCC -int sumn_iter(int n) { - int sum=0; - for(int i=1;i<=n;i++) - sum+=i; - return sum; -} -///AAA -int sumn(int n) { - if(n<=1) - return n; - else - return n+sumn(n-1); -} -///BBB -int main(int argc, char *argv[]) { - g=sumn(3); - h=sumn_iter(3); - return(EXIT_SUCCESS); -} diff --git a/Theorie/Assembleur/src/twofree.c b/Theorie/Assembleur/src/twofree.c deleted file mode 100644 index 93d7ae5..0000000 --- a/Theorie/Assembleur/src/twofree.c +++ /dev/null @@ -1,11 +0,0 @@ -#include <stdlib.h> - -int main(int argc, char * argv[]) -{ - char *ptrChars = (char *)malloc(6 * sizeof(char)); - ptrChars[0]= 'H'; - free(ptrChars); - free(ptrChars); - - return 0; -} diff --git a/Theorie/Assembleur/src/var.c b/Theorie/Assembleur/src/var.c deleted file mode 100644 index 4ce1462..0000000 --- a/Theorie/Assembleur/src/var.c +++ /dev/null @@ -1,17 +0,0 @@ -/************************************** - * var.c - * - * Programme d'exemple pour localiser - * les variables en mémoire - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - // affiche sur la sortie standard - printf("Hello, world!\n"); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/array.c b/Theorie/C/S2-src/array.c deleted file mode 100644 index b9414f6..0000000 --- a/Theorie/C/S2-src/array.c +++ /dev/null @@ -1,97 +0,0 @@ -/*********************************************** - * array.c - * - * Programme d'exemple d'utilisation de tableaux - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA - -#define N 10 -int vecteur[N]; -float matriceC[N][N]; -float matriceR[N][2*N]; - -///BBB - -// calcule la somme des éléments d'un tableau -int sum(int v[]) -{ - ///CCC - - int i; - int sum = 0; - for (i = 0; i < N; i++) { - sum += v[i]; - } - - ///DDD - - return sum; -} - -// calcule la somme des éléments d'un tableau -int sum2(int size, int v[size]) -{ - int i; - int sum = 0; - for (i = 0; i < size; i++) { - sum += v[i]; - } - return sum; -} - -#include <float.h> - -// retourne le maximum d'un matrice -// carrée de NxN élément -float max() -{ - ///EEE - #define L 2 - #define C 3 - float matriceR[L][C] = { {1.0,2.0,3.0}, - {4.0,5.0,6.0} }; - int i, j; - float min = FLT_MAX; - for (i = 0; i < L; i++) - for (j = 0; j < C; j++) - if (matriceR[i][j] < min) - min=matriceR[i][j]; - - ///FFF - return min; -} - -// retourne le maximum d'un matrice -// carrée de NxN élément -float max2(int size, float mat[size][size]) { - int i,j; - float m=0.0; // corrige MINFLOAT - for(i=0;i<size;i++) - for(j=0;j<size;j++){ - if(mat[i][j]>m) - m=mat[i][j]; - } - return m; -} - - -int main(int argc, char *argv[]) { - - ///CCC - int vecteur[N]={0,1,2,3,4,5,6,7,8,9}; - int i; - int sum=0; - for(i=0;i<N; i++) { - sum+=vecteur[i]; - } - ///DDD - - - return(EXIT_SUCCESS); -} - diff --git a/Theorie/C/S2-src/arrayvar.c b/Theorie/C/S2-src/arrayvar.c deleted file mode 100644 index eb5c7a7..0000000 --- a/Theorie/C/S2-src/arrayvar.c +++ /dev/null @@ -1,46 +0,0 @@ -/*********************************************** - * arrayvar.c - * - * Programme d'exemple d'utilisation de tableaux - * de taille non prédéfinie à la compilation - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <math.h> - -#define N 10 - -void init(int size, int v[]) { - int i; - for(i=0;i<size;i++) - v[i]=1; - -} - - -int main(int argc, char *argv[]) { - /* - int size; - int vecteur[]; - int i; - if(argc!=1) { - fprintf(stderr, "Usage : arrayvar n avec n entier\n"); - return(EXIT_FAILURE); - } - size=atoi(argv[1]); - */ - - ///CCC - int vecteur[N]={0,1,2,3,4,5,6,7,8,9}; - int i; - int sum=0; - for(i=0;i<N; i++) { - sum+=vecteur[i]; - } - ///DDD - - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/char-addr.c b/Theorie/C/S2-src/char-addr.c deleted file mode 100644 index 667a1f2..0000000 --- a/Theorie/C/S2-src/char-addr.c +++ /dev/null @@ -1,27 +0,0 @@ -/*********************************************** - * charaddr.c - * - * Pointeurs et chaînes de caractères - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - - -///BBB -int main(int argc, char *argv[]) { - -///AAA - - int i; - char name1[] = "str"; - // char name2[] = "SINF1252"; - - for(i=0;i<10;i++) { - printf("%c",name1[i]); - } - - return(EXIT_SUCCESS); -} - diff --git a/Theorie/C/S2-src/char.c b/Theorie/C/S2-src/char.c deleted file mode 100644 index 657e37b..0000000 --- a/Theorie/C/S2-src/char.c +++ /dev/null @@ -1,36 +0,0 @@ -/*********************************************** - * strlen.c - * - * Initialisation de chaînes de caractères - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - - -///AAA - -int length(char str[]) { - int i=0; - while(str[i]!=0) { // '\0' et 0 sont égaux - i++; - } - return(i); -} - -///BBB -int main(int argc, char *argv[]) { - - int i; - char name1[] = "str"; - // char name2[] = "SINF1252"; - - printf("Longueur de name1 [%s] : %d\n",name1,length(name1)); - for(i=0;i<10;i++) { - printf("%c",name1[i]); - } - - return(EXIT_SUCCESS); -} - diff --git a/Theorie/C/S2-src/exprbin.c b/Theorie/C/S2-src/exprbin.c deleted file mode 100644 index 405d3f1..0000000 --- a/Theorie/C/S2-src/exprbin.c +++ /dev/null @@ -1,104 +0,0 @@ -/*********************************************** - * exprbin.c - * - * Programme d'exemple d'utilisation d'expressions - * binaires - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -#include <stdlib.h> -#define BITS_CHAR 8 - -///EEE -#define BITS_INT 32 -// str[BITS_INT] -void int2bin(unsigned int num, char *str) -{ - int i; - str[BITS_INT] = '\0'; - for (i = BITS_INT - 1; i >= 0; i--) { - if ((num & 1) == 1) - str[i] = '1'; - else - str[i] = '0'; - num = num >> 1; - } -} -///FFF - -// str[32] -void char2bin(unsigned char num, char *str) -{ - int i; - str[BITS_CHAR]='\0'; - for(i=BITS_CHAR-1; i>=0; i--) { - if( (num & 1)==1) - str[i]='1'; - else - str[i]='0'; - num = num >> 1; - } -} - - - -int main(int argc, char *argv[]) { - - unsigned char zero='\0'; ///EEE - unsigned char a=0xFA; - unsigned char b=0x5F; - unsigned char c=0x50; - unsigned char d=0x50; - - unsigned char r; - unsigned int i1,i2,i3; - i1=0; - i2=0x4; - i3=0x5; - - char str1[32]; - char str2[32]; - char str3[32]; - - char2bin(zero,str1); - char2bin(~zero,str2); - printf("~ %s = %s\n",str1,str2); - char2bin(a,str1); - char2bin(b,str2); - char2bin(a&b,str3); - printf("%s & %s = %s\n",str1,str2,str3); - char2bin(a,str1); - char2bin(b,str2); - char2bin(a|b,str3); - printf("%s | %s = %s\n",str1,str2,str3); - char2bin(a^b,str3); - printf("%s ^ %s = %s\n",str1,str2,str3); - -///AAA - -r = ~a; // négation bit à bit -r = a & b; // conjonction bit à bit -r = a | b; // disjonction bit à bit -r = a ^ b; // xor bit à bit - -///BBB - -///CCC - -r = c & 0x7E; // 0b01111110 force les bits de poids faible et fort à 0 -r = d | 0x18; // 0b00011000 force les bits 4 et 3 à 1 - -///DDD - - /* - printf("0x%x & 0x%x = 0x%x\n",i2,i3,i2 & i3); - printf("0x%x && 0x%x = 0x%8x\n",i2,i3,i2 && i3); - printf("0x%x | 0x%x = 0x%8x\n",i2,i3,i2 | i3); - printf("0x%x || 0x%x = 0x%8x\n",i2,i3,i2 || i3); - */ - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/exprbin.out b/Theorie/C/S2-src/exprbin.out deleted file mode 100644 index 01ca81d..0000000 --- a/Theorie/C/S2-src/exprbin.out +++ /dev/null @@ -1,4 +0,0 @@ -~ 00000000 = 11111111 -11111010 & 01011111 = 01011010 -11111010 | 01011111 = 11111111 -11111010 ^ 01011111 = 10100101 diff --git a/Theorie/C/S2-src/fct.c b/Theorie/C/S2-src/fct.c deleted file mode 100644 index 4c407b0..0000000 --- a/Theorie/C/S2-src/fct.c +++ /dev/null @@ -1,79 +0,0 @@ -/*********************************************** - * fct.c - * - * Programme d'exemple d'utilisation de fonctions - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -///AAA - -void usage() -{ - printf("Usage : ...\n"); -} - -///BBB - -///CCC - -int twotimes(int n) -{ - return 2 * n; -} - -int two_times(int n) -{ - n = 2 * n; - return n; -} - -///DDD - - -///EEE - -int times_two(int *n) -{ - return (*n) + (*n); -} - -int timestwo(int *n) -{ - *n = (*n) + (*n); - return *n; -} - -void f() -{ - int i = 1252; - printf("i:%d\n", i); - printf("times_two(&i)=%d\n", times_two(&i)); - printf("après times_two, i:%d\n", i); - printf("timestwo(&i)=%d\n", timestwo(&i)); - printf("après timestwo, i:%d\n", i); -} - -///FFF - -void plusun(int size, int *v) { - int i; - for(i=0;i<size;i++) - v[i]++; -} - -///GGG - - -int main(int argc, char *argv[]) { - - int i=1252; - int j; - - f(); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/fct.h b/Theorie/C/S2-src/fct.h deleted file mode 100644 index 5f423f8..0000000 --- a/Theorie/C/S2-src/fct.h +++ /dev/null @@ -1,11 +0,0 @@ -/*********************************************** - * fct.h - * - * Exemple de signatures de fonctions - * - ***********************************************/ - -///HHH -int times_two(int *); -int timestwo(int *); -///III diff --git a/Theorie/C/S2-src/fct.out b/Theorie/C/S2-src/fct.out deleted file mode 100644 index 8c4f157..0000000 --- a/Theorie/C/S2-src/fct.out +++ /dev/null @@ -1,5 +0,0 @@ -i:1252 -times_two(&i)=2504 -après times_two, i:1252 -timestwo(&i)=2504 -après timestwo, i:2504 diff --git a/Theorie/C/S2-src/fctargs.c b/Theorie/C/S2-src/fctargs.c deleted file mode 100644 index a08a229..0000000 --- a/Theorie/C/S2-src/fctargs.c +++ /dev/null @@ -1,65 +0,0 @@ -/*********************************************** - * fctargs.c - * - * Programme d'exemple d'utilisation de fonctions - * montre l'importance de traiter les arguments en - * ordre - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <ctype.h> - -#define N 5 -///AAA -int length(char c[]) { - int i=0; - while(c[i]!='\0') - i++; - return (i); -} -///BBB - -///CCC -void plusun(int size, int *v) -{ - int i; - for (i = 0; i < size; i++) - v[i]++; -} - -void print_vecteur(int size, int*v) { - int i; - printf("v={"); - for (i = 0;i < size - 1; i++) - printf("%d,", v[i]); - - if (size > 0) - printf("%d}", v[size - 1]); - else - printf("}"); -} -///DDD - -void wrong() { - int vecteur[N]={1,2,3,4,5}; - /// provoque un segmentation fault - ///GGG - plusun(vecteur,N); - print_vecteur(N,vecteur); - ///HHH -} - - -int main(int argc, char *argv[]) { - -///EEE -int vecteur[N] = {1, 2, 3, 4, 5}; -plusun(N, vecteur); -print_vecteur(N, vecteur); -///FFF - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/S2-src/foobar.c b/Theorie/C/S2-src/foobar.c deleted file mode 100644 index c54fe40..0000000 --- a/Theorie/C/S2-src/foobar.c +++ /dev/null @@ -1,25 +0,0 @@ -/*********************************************** - * foobar.c - * - * Exercice - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -void foo(void) { - int a = 42; - printf("%d\n", a); -} - -void bar(void) { -// cppcheck-suppress uninitvar ; - int a; - printf("%d\n", a); -} -// cppcheck-suppress uninitvar // -int main(int argc, char *argv[]) { - foo(); - bar(); - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/int2bin.c b/Theorie/C/S2-src/int2bin.c deleted file mode 100644 index f0cf288..0000000 --- a/Theorie/C/S2-src/int2bin.c +++ /dev/null @@ -1,36 +0,0 @@ -/********************************************** - * int2bin - * - * Conversion d'entier non signé en binaire - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -#define MAXSIZE 33 // nombre maximum de bits+1 - -void print_bin(int num) { - int i; - int n=num; - char str[MAXSIZE]; - i=MAXSIZE; - while (--i>=0) { - str[i] = n & 1 ? '1' : '0'; - n >>= 1; - } - printf("La valeur de %d en hexadécimal est %x et en binaire : %s\n",num,num,str); - -} - -int main(int argc, char *argv[]) { - - int n=7654321; - print_bin(n); - print_bin(123); - print_bin(987654321); - - return(EXIT_SUCCESS); -} - -// inspiré de http://stackoverflow.com/questions/111928/is-there-a-printf-converter-to-print-in-binary-format diff --git a/Theorie/C/S2-src/num.c b/Theorie/C/S2-src/num.c deleted file mode 100644 index d0f045d..0000000 --- a/Theorie/C/S2-src/num.c +++ /dev/null @@ -1,24 +0,0 @@ -/*********************************************** - * num - * - * Déclaration de nombres - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) -{ - ///AAA - - int i; - i = 123; // décimal - i = 0x7b; // hexadécimal - i = 0173; // octal !! - // i = 0b1111011; // binaire, seulement certains compilateurs - - ///BBB - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/S2-src/octal.c b/Theorie/C/S2-src/octal.c deleted file mode 100644 index b2796c9..0000000 --- a/Theorie/C/S2-src/octal.c +++ /dev/null @@ -1,27 +0,0 @@ -/*********************************************** - * octal - * - * Exemple d'erreur avec les nombres en octal - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) -{ - - ///AAA - - int i, j; - i = 65; // décimal - j = 065; // octal !!! - if (i == j) - printf("%d et %d sont égaux\n", i, j); - else - printf("%d et %d sont différents\n", i, j); - - ///BBB - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/S2-src/perf.c b/Theorie/C/S2-src/perf.c deleted file mode 100644 index a31da93..0000000 --- a/Theorie/C/S2-src/perf.c +++ /dev/null @@ -1,53 +0,0 @@ -/*********************************************** - * perf.c - * - * Mesure de temps de calcul via gettimeofday - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <sys/time.h> - -/* Return t2-t1 in microseconds */ -long timeval_diff(struct timeval *t2, struct timeval *t1) -{ - long diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); - return (diff); -} -// n : number of iterations of the loop -void compute(int n) { - // long computation - double sum=0; - int i; - for(i=0;i<n;i++) { - sum=sum+i; - } -} - -int main(int argc, char *argv[]) -{ - struct timeval tvStart, tvEnd; - int err; - int num; // number of operations for compute - if(argc!=2) - exit(EXIT_FAILURE); - else - num=atoi(argv[1]); - - err=gettimeofday(&tvStart, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - // long computation - compute(num); - - err=gettimeofday(&tvEnd, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - printf("Duration : %ld microseconds\n", timeval_diff(&tvEnd, &tvStart)); - - return(EXIT_SUCCESS); -} - diff --git a/Theorie/C/S2-src/ptr.c b/Theorie/C/S2-src/ptr.c deleted file mode 100644 index 1e02c8f..0000000 --- a/Theorie/C/S2-src/ptr.c +++ /dev/null @@ -1,28 +0,0 @@ -/*********************************************** - * ptr - * - * Programme d'exemple d'utilisation de pointeurs - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - - ///AAA - - int i = 1252; - char str[] = "sinf1252"; - char c = 'c'; - - printf("i vaut %d, occupe %ld bytes et est stocké à l'adresse : %p\n", - i, sizeof(i), &i); - printf("c vaut %c, occupe %ld bytes et est stocké à l'adresse : %p\n", - c, sizeof(c), &c); - printf("str contient \"%s\" et est stocké à partir de l'adresse : %p\n", - str, &str); - - ///BBB - return EXIT_SUCCESS; -} diff --git a/Theorie/C/S2-src/ptr.out b/Theorie/C/S2-src/ptr.out deleted file mode 100644 index a4ade13..0000000 --- a/Theorie/C/S2-src/ptr.out +++ /dev/null @@ -1,3 +0,0 @@ -i vaut 1252, occupe 4 bytes et est stocké à l'adresse : 0x7fff89f99cbc -c vaut c, occupe 1 bytes et est stocké à l'adresse : 0x7fff89f99caf -str contient "sinf1252" et est stocké à partir de l'adresse : 0x7fff89f99cb0 diff --git a/Theorie/C/S2-src/ptrchar.c b/Theorie/C/S2-src/ptrchar.c deleted file mode 100644 index ce253e2..0000000 --- a/Theorie/C/S2-src/ptrchar.c +++ /dev/null @@ -1,34 +0,0 @@ -/*********************************************** - * ptrchar - * - * Programme d'exemple d'utilisation de pointeurs - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -int main(int argc, char *argv[]) { - - ///AAA - char c='Z'; - char str[]="sinf1252"; - char *str_ptr=NULL; - int i; - - str_ptr=&c; - printf("c vaut %c et est stocké à l'adresse : %p\n",c,&c); - printf("*str_ptr vaut %p et pointe vers %c\n",str_ptr,*(str_ptr)); - str_ptr=str; // équivaut à str_ptr=&(str[0]); - printf("après str_ptr=str[];\n"); - printf("*str_ptr vaut %p et pointe vers %c\n",str_ptr,*(str_ptr)); - printf("Contenu du tableau\n"); - for(i=0;i<strlen(str);i++) { - printf("str[%d]=%c et *(str_ptr+%d) contient %c\n",i,str[i],i,*(str_ptr+i)); - } - - - ///BBB - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/ptrex.c b/Theorie/C/S2-src/ptrex.c deleted file mode 100644 index 7b7cbb6..0000000 --- a/Theorie/C/S2-src/ptrex.c +++ /dev/null @@ -1,33 +0,0 @@ -/*********************************************** - * ptrex.c - * - * Programme d'exemple d'utilisation de pointeurs - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -int main(int argc, char *argv[]) { - - ///AAA - - int i = 1; // entier - int *ptr_i; // pointeur vers un entier - char str[] = "Unix"; - char *s; // pointeur vers un char - - ptr_i = &i; - printf("valeur de i : %d, valeur pointée par ptr_i : %d\n", i, *ptr_i); - *ptr_i = *ptr_i + 1252; - printf("valeur de i : %d, valeur pointée par ptr_i : %d\n", i, *ptr_i); - s = str; - for (i = 0; i < strlen(str); i++){ - printf("valeur de str[%d] : %c, valeur pointée par *(s+%d) : %c\n", - i, str[i], i, *(s+i)); - } - - ///BBB - return EXIT_SUCCESS; -} diff --git a/Theorie/C/S2-src/ptrex.out b/Theorie/C/S2-src/ptrex.out deleted file mode 100644 index 43314a5..0000000 --- a/Theorie/C/S2-src/ptrex.out +++ /dev/null @@ -1,6 +0,0 @@ -valeur de i : 1, valeur pointée par ptr_i : 1 -valeur de i : 1253, valeur pointée par ptr_i : 1253 -valeur de str[0] : U, valeur pointée par *(s+0) : U -valeur de str[1] : n, valeur pointée par *(s+1) : n -valeur de str[2] : i, valeur pointée par *(s+2) : i -valeur de str[3] : x, valeur pointée par *(s+3) : x diff --git a/Theorie/C/S2-src/random.c b/Theorie/C/S2-src/random.c deleted file mode 100644 index 51a211f..0000000 --- a/Theorie/C/S2-src/random.c +++ /dev/null @@ -1,29 +0,0 @@ -/*********************************************** - * random - * - * Utilisation de nombres aléatoires - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - - ///AAA - - long int r; - int i; - int pair=0; - unsigned int seed=1252; // semence initiale - srandom(seed); - for(i=0;i<10000;i++) { - r=random(); - if (r%2==0) - pair++; - } - printf("%d nombres pairs ont été générés\n",pair); - ///BBB - return(EXIT_SUCCESS); -} - diff --git a/Theorie/C/S2-src/short.c b/Theorie/C/S2-src/short.c deleted file mode 100644 index f7452be..0000000 --- a/Theorie/C/S2-src/short.c +++ /dev/null @@ -1,34 +0,0 @@ -/*********************************************** - * short - * - * Overflow sur les shorts - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) -{ - ///AAA - - short int i = 1; - unsigned short j = 1; - int n; - - printf("\nPuissances de 5 en notation signée\n"); - for (n = 1; n < 10; n++) { - i = i * 5; - printf("5^%d=%d\n", n, i); - } - - printf("\nPuissances de 10 en notation non signée\n"); - for (n = 1; n < 10; n++) { - j = j * 10; - printf("10^%d=%d\n", n, j); - } - - ///BBB - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/S2-src/short.out b/Theorie/C/S2-src/short.out deleted file mode 100644 index eb18f95..0000000 --- a/Theorie/C/S2-src/short.out +++ /dev/null @@ -1,22 +0,0 @@ - -Puissances de 5 en notation signée -5^1=5 -5^2=25 -5^3=125 -5^4=625 -5^5=3125 -5^6=15625 -5^7=12589 -5^8=-2591 -5^9=-12955 - -Puissances de 10 en notation non signée -10^1=10 -10^2=100 -10^3=1000 -10^4=10000 -10^5=34464 -10^6=16960 -10^7=38528 -10^8=57600 -10^9=51712 diff --git a/Theorie/C/S2-src/sizeof.c b/Theorie/C/S2-src/sizeof.c deleted file mode 100644 index 1f60495..0000000 --- a/Theorie/C/S2-src/sizeof.c +++ /dev/null @@ -1,33 +0,0 @@ -/********************************************** - * sizeof - * - * Programme d'exemple d'utilisation de sizeof - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - - ///AAA - - printf("Type\t\t\tTaille\n"); - printf("\n"); - printf("char\t\t\t%ld octet(s)\n",sizeof(char)); - printf("unsigned char\t\t%ld octet(s)\n",sizeof(unsigned char)); - printf("short\t\t\t%ld octet(s)\n",sizeof(short)); - printf("unsigned short\t\t%ld octet(s)\n",sizeof(unsigned short)); - printf("int\t\t\t%ld octet(s)\n",sizeof(int)); - printf("unsigned int\t\t%ld octet(s)\n",sizeof(unsigned int)); - printf("long\t\t\t%ld octet(s)\n",sizeof(long)); - printf("unsigned long\t\t%ld octet(s)\n",sizeof(unsigned long)); - printf("long long\t\t%ld octet(s)\n",sizeof(long long)); - printf("unsigned long long\t%ld octet(s)\n",sizeof(unsigned long long)); - printf("float\t\t\t%ld octet(s)\n",sizeof(float)); - printf("double\t\t\t%ld octet(s)\n",sizeof(double)); - printf("long double\t\t%ld octet(s)\n",sizeof(long double)); - - ///BBB - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/sizeofptr.c b/Theorie/C/S2-src/sizeofptr.c deleted file mode 100644 index 29a2b7c..0000000 --- a/Theorie/C/S2-src/sizeofptr.c +++ /dev/null @@ -1,32 +0,0 @@ -/********************************************** - * sizeofptr - * - * Programme d'exemple d'utilisation de sizeof - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - - - printf("Type\t\t\tTaille\n"); - printf("\n"); - printf("char *\t\t\t%ld octet(s)\n",sizeof(char *)); - printf("unsigned char *\t\t%ld octet(s)\n",sizeof(unsigned char *)); - printf("short *\t\t\t%ld octet(s)\n",sizeof(short *)); - printf("unsigned short *\t%ld octet(s)\n",sizeof(unsigned short *)); - printf("int *\t\t\t%ld octet(s)\n",sizeof(int *)); - printf("unsigned int *\t\t%ld octet(s)\n",sizeof(unsigned int *)); - printf("long *\t\t\t%ld octet(s)\n",sizeof(long *)); - printf("unsigned long *\t\t%ld octet(s)\n",sizeof(unsigned long *)); - printf("long long *\t\t%ld octet(s)\n",sizeof(long long *)); - printf("unsigned long long *\t%ld octet(s)\n",sizeof(unsigned long long *)); - printf("float *\t\t\t%ld octet(s)\n",sizeof(float *)); - printf("double *\t\t%ld octet(s)\n",sizeof(double *)); - printf("long double *\t\t%ld octet(s)\n",sizeof(long double *)); - - ///BBB - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/strlen.c b/Theorie/C/S2-src/strlen.c deleted file mode 100644 index a623e5b..0000000 --- a/Theorie/C/S2-src/strlen.c +++ /dev/null @@ -1,39 +0,0 @@ -/*********************************************** - * strlen.c - * - * Initialisation de chaînes de caractères - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - - -///AAA - -int length(char str[]) -{ - int i = 0; - while (str[i] != 0) {// '\0' et 0 sont égaux - i++; - } - return i; -} - -///BBB - -int main(int argc, char *argv[]) -{ - - int i; - char name1[] = "str"; - // char name2[] = "SINF1252"; - - printf("Longueur de name1 [%s] : %d\n", name1, length(name1)); - for (i = 0; i < length(str); i++) { - printf("%c", name1[i]); - } - - return EXIT_SUCCESS; -} - diff --git a/Theorie/C/S2-src/strlenptr.c b/Theorie/C/S2-src/strlenptr.c deleted file mode 100644 index 7030859..0000000 --- a/Theorie/C/S2-src/strlenptr.c +++ /dev/null @@ -1,36 +0,0 @@ -/*********************************************** - * strlen.c - * - * Calcul de longueur de chaînes avec pointeurs - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA - -int length(char *s) -{ - int i = 0; - while (*(s+i) != '\0') - i++; - return i; -} - -///BBB - -int main(int argc, char *argv[]) -{ - int i; - char name1[] = "str"; - // char name2[] = "SINF1252"; - - printf("Longueur de name1 [%s] : %d\n", name1, length(name1)); - for (i = 0; i < 10; i++) { - printf("%c", name1[i]); - } - - return EXIT_SUCCESS; -} - diff --git a/Theorie/C/S2-src/struct.c b/Theorie/C/S2-src/struct.c deleted file mode 100644 index dac885b..0000000 --- a/Theorie/C/S2-src/struct.c +++ /dev/null @@ -1,103 +0,0 @@ -/*********************************************** - * struct.c - * - * Programme d'exemple de structures - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -///AAA - -// structure pour stocker une coordonnée 3D -struct coord { - int x; - int y; - int z; -}; - -struct coord point = {1, 2, 3}; -struct coord p; - -// structure pour stocker une fraction -struct fraction { - int numerator; - int denominator; -}; - -struct fraction demi = {1, 2}; -struct fraction f; - -// structure pour représenter un étudiant -struct student { - int matricule; - char prenom[20]; - char nom[30]; -}; - -struct student s = {1, "Linus", "Torvalds"}; - -///BBB - -///EEE -struct fraction init(int num, int den) -{ - struct fraction f; - f.numerator = num; - f.denominator = den; - return f; -} - -int equal(struct fraction f1, struct fraction f2) -{ - return ((f1.numerator == f2.numerator) - && (f1.denominator == f2.denominator)); -} - -int equalptr(struct fraction *f1, struct fraction *f2) -{ - return ((f1->numerator==f2->numerator) - && (f1->denominator==f2->denominator)); -} - -void initptr(struct fraction *f, int num, int den) -{ - f->numerator = num; - f->denominator = den; -} -///FFF - -int main(int argc, char *argv[]) -{ - - int c[3] = {0, 0, 0}; - -///CCC - -point.x = 1; -point.y = 2; -point.z = 3; - -///DDD - -///GGG - -struct fraction quart; -struct fraction tiers; -quart = init(1, 4); -initptr(&tiers, 1, 3); -printf("equal(tiers,quart)=%d\n", equal(tiers, quart)); -printf("equalptr(&tiers,&quart)=%d\n", equalptr(&tiers, &quart)); - -///HHH - - f.numerator=1; - f.denominator=4; - printf("%c\n",s.prenom[2]); - printf("sizeof int[3]=%ld, sizeof coord=%ld\n",sizeof(c),sizeof(struct coord)); - printf("sizeof student : %ld\n",sizeof(s)); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/structptr.c b/Theorie/C/S2-src/structptr.c deleted file mode 100644 index 59b93eb..0000000 --- a/Theorie/C/S2-src/structptr.c +++ /dev/null @@ -1,37 +0,0 @@ -/*********************************************** - * structptr.c - * - * Programme d'exemple de pointeurs vers des - * structures - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -int main(int argc, char *argv[]) -{ - - struct fraction { - int num; - int den; - }; - -///AAA -struct fraction demi, quart; -struct fraction *demi_ptr; -struct fraction *quart_ptr; - -demi_ptr = &demi; -quart_ptr = &quart; - -(*demi_ptr).num = 1; -(*demi_ptr).den = 2; - -quart_ptr->num = 1; -quart_ptr->den = 4; -///BBB - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/S2-src/time.c b/Theorie/C/S2-src/time.c deleted file mode 100644 index 3b082a8..0000000 --- a/Theorie/C/S2-src/time.c +++ /dev/null @@ -1,69 +0,0 @@ -/*********************************************** - * struct.c - * - * Programme d'exemple de structures - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -///AAA - -// structure pour stocker une coordonnée 3D -struct coord { - int x; - int y; - int z; -} ; - -struct coord origin={1,2,3}; -struct coord p; - -// structure pour stocker une fraction -struct fraction { - double numerator; - double denominator; -}; - -struct fraction demi={1.0,2.0}; -struct fraction f; - -// structure pour représenter un étudiant -struct student { - int matricule; - char prenom[20]; - char nom[30]; -}; - -struct student s={1,"Linux","Torvalds"}; - -///BBB - -///EEE - -int equal(struct fraction f1, struct fraction f2) { - return ( (f1.numerator==f2.numerator) && - (f1.denominator==f2.denominator) ); -} - -///FFF - -int main(int argc, char *argv[]) { - int c[3]={0,0,0}; - - ///CCC - origin.x=1; - origin.y=2; - origin.z=3; - ///DDD - - f.numerator=1; - f.denominator=4; - printf("%c\n",s.prenom[2]); - printf("sizeof int[3]=%ld, sizeof coord=%ld\n",sizeof(c),sizeof(struct coord)); - printf("sizeof student : %ld\n",sizeof(s)); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S2-src/toupper.c b/Theorie/C/S2-src/toupper.c deleted file mode 100644 index cf87bc4..0000000 --- a/Theorie/C/S2-src/toupper.c +++ /dev/null @@ -1,31 +0,0 @@ -/*********************************************** - * toupper.c - * - * Conversion de caractères - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA - -// conversion de minuscules en majuscules -int toUpper(char c) { - if (c >= 'a' && c <= 'z') - return c + ('A' - 'a'); - else - return c; -} -///BBB - -int main(int argc, char *argv[]) -{ - - printf("%c\n",toUpper('g')); - printf("%c\n",toUpper('=')); - printf("%c\n",toUpper('Z')); - printf("%c\n",toUpper('x')); - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/S2-src/typedef.c b/Theorie/C/S2-src/typedef.c deleted file mode 100644 index 988cd9d..0000000 --- a/Theorie/C/S2-src/typedef.c +++ /dev/null @@ -1,37 +0,0 @@ -/*********************************************** - * typedef.c - * - * Programme d'exemple d'utilisation de typedef - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///EEE -typedef unsigned int u_int_t; -typedef unsigned long u_long_t; -///FFF - -///CCC -typedef int * int_ptr; -typedef char * string; -///DDD - -///AAA -// structure pour stocker une fraction -typedef struct fraction { - double numerator; - double denominator; -} Fraction ; - -typedef int Entier; - -int main(int argc, char *argv[]) -{ - Fraction demi = {1, 2}; - Entier i = 2; - // ... - return EXIT_SUCCESS; -} -///BBB diff --git a/Theorie/C/S2-src/xor.c b/Theorie/C/S2-src/xor.c deleted file mode 100644 index 9466a82..0000000 --- a/Theorie/C/S2-src/xor.c +++ /dev/null @@ -1,34 +0,0 @@ -/*********************************************** - * xor.c - * - * Programme d'exemple d'encryptage avec XOR - * - ***********************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -// affiche un message d'erreur -void usage(char *msg) -{ - fprintf(stderr,"Usage : %s\n",msg); - exit(EXIT_FAILURE); -} - -///AAA -int main(int argc, char* argv[]) -{ - if (argc != 2) - usage("ce programme prend une clé comme argument"); - - char *key = argv[1]; - char c; - int i = 0; - while (((c = getchar()) != EOF) && (i < strlen(key))) { - putchar(c ^ *(key + i)); - i++; - } - return EXIT_SUCCESS; -} -///BBB diff --git a/Theorie/C/S3-src/argv-env.c b/Theorie/C/S3-src/argv-env.c deleted file mode 100644 index 7800144..0000000 --- a/Theorie/C/S3-src/argv-env.c +++ /dev/null @@ -1,42 +0,0 @@ -/************************************** - * arg-env.c - * - * Arguments et variables d'environnement - * - **************************************/ - -///AAA -#include <stdio.h> -#include <stdlib.h> - -// affiche la valeur de la variable d'environnement var -void print_var(char *var) { - char *val=getenv(var); - if(val!=NULL) - printf("La variable %s a la valeur : %s\n",var,val); - else - printf("La variable %s n'a pas été assignée\n",var); -} - -int main(int argc, char *argv[]) { - - char *old_path=getenv("PATH"); - - print_var("PATH"); - - if(unsetenv("PATH")!=0) { - fprintf(stderr,"Erreur unsetenv\n"); - exit(EXIT_FAILURE); - } - - print_var("PATH"); - - if(setenv("PATH",old_path,1)!=0) { - fprintf(stderr,"Erreur setenv\n"); - exit(EXIT_FAILURE); - } - - print_var("PATH"); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/callocperf.c b/Theorie/C/S3-src/callocperf.c deleted file mode 100644 index 5707955..0000000 --- a/Theorie/C/S3-src/callocperf.c +++ /dev/null @@ -1,39 +0,0 @@ -/************************************** - * callocperf.c - * - * Programme mesurant les performances - * de calloc - * - **************************************/ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -#define LOOP 2 - -void error(char *msg) { - fprintf(stderr,"Erreur :%s\n",msg); - exit(EXIT_FAILURE); -} - -int main(int argc, char *argv[]) { - int size=1; - if(argc==2) - size=atoi(argv[1]); - - for(int j=1;j<LOOP+1;j++) { - int *vector; - vector=(int *)calloc(size,sizeof(int)); - - int count=0; - for(int i=0;i<size;i++) { - if( *(vector+i)!=0) - count++; - else - *(vector+i)=j; - } - printf("Nombre d'entiers non initialisés à zéro : %d\n",count); - free(vector); - } - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/const.c b/Theorie/C/S3-src/const.c deleted file mode 100644 index ee00775..0000000 --- a/Theorie/C/S3-src/const.c +++ /dev/null @@ -1,29 +0,0 @@ -/************************************** - * const.c - * - * Programme d'exemple de constantes - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA -// extrait de <math.h> -#define M_PI 3.14159265358979323846264338327950288; - -const double pi=3.14159265358979323846264338327950288; - -const struct fraction { - int num; - int denom; -} demi={1,2}; -///BBB -int main(int argc, char *argv[]) { - // demi.num=0; invalid - printf("%d/%d\n",demi.num,demi.denom); - printf("Adresse de pi :%p\n",&pi); - printf("Adresse de demi :%p\n",&demi); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/dataseg.c b/Theorie/C/S3-src/dataseg.c deleted file mode 100644 index 9f4cb34..0000000 --- a/Theorie/C/S3-src/dataseg.c +++ /dev/null @@ -1,32 +0,0 @@ -/************************************** - * initvar.c - * - * Programme d'exemple sur le segment - * de données - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA -#define MSG_LEN 10 -int g; // initialisé par le compilateur -int g_init=1252; -const int un=1; -int tab[3]={1,2,3}; -int array[10000]; -char cours[]="SINF1252"; -char msg[MSG_LEN]; // initialisé par le compilateur - -int main(int argc, char *argv[]) { - int i; - printf("g est à l'adresse %p et initialisée à %d\n",&g,g); - printf("msg est à l'adresse %p contient les caractères :",msg); - for(i=0;i<MSG_LEN;i++) - printf(" %x",msg[i]); - printf("\n"); - printf("Cours est à l'adresse %p et contient : %s\n",&cours,cours); - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/C/S3-src/dataseg.out b/Theorie/C/S3-src/dataseg.out deleted file mode 100644 index 9a372e2..0000000 --- a/Theorie/C/S3-src/dataseg.out +++ /dev/null @@ -1,3 +0,0 @@ -g est à l'adresse 0x60aeac et initialisée à 0 -msg est à l'adresse 0x60aea0 contient les caractères : 0 0 0 0 0 0 0 0 0 0 -Cours est à l'adresse 0x601220 et contient : SINF1252 diff --git a/Theorie/C/S3-src/empty.c b/Theorie/C/S3-src/empty.c deleted file mode 100644 index 80fa492..0000000 --- a/Theorie/C/S3-src/empty.c +++ /dev/null @@ -1,17 +0,0 @@ -/************************************** - * static.c - * - * Programme d'exemple de variables static -éé - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - // affiche sur la sortie standard - printf("Hello, world!\n"); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/enum.c b/Theorie/C/S3-src/enum.c deleted file mode 100644 index 63b4776..0000000 --- a/Theorie/C/S3-src/enum.c +++ /dev/null @@ -1,44 +0,0 @@ -/************************************** - * enum.c - * - * Programme d'exemple de enum - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA -// les jours de la semaine -typedef enum { - monday, tuesday, wednesday, thursday, friday, saturday, sunday - } day; - -// jeu de carte -typedef enum { - coeur, carreau, trefle, pique -} carte; - -// bits -typedef enum { - BITRESET = 0, - BITSET = 1 -} bit_t; - -///BBB - - -int main(int argc, char *argv[]) { - ///CCC - bit_t bit=BITRESET; - day jour=monday; - if(jour==saturday||jour==sunday) - printf("Congé\n"); - ///DDD - printf("jour: %d\n",jour); - printf("sizeof(day) %ld\n",sizeof(day)); - printf("sizeof(bit_t) %ld\n",sizeof(bit_t)); - - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/exhaust-stack.c b/Theorie/C/S3-src/exhaust-stack.c deleted file mode 100644 index c177bd4..0000000 --- a/Theorie/C/S3-src/exhaust-stack.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************** - * exhaust-stack.c - * - * Programme qui sature le stack - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <sys/resource.h> - -///AAA - -#define ARRAY_SIZE 10000 - -int sumn(int i) { - int array[ARRAY_SIZE]; - printf("Computing sumn(%d)\n",i); - for(int j=0;j<ARRAY_SIZE;j++){ - array[j]=i; - } - if(i>0) - return (i+sumn(i-1)); - else - return i; -} - -///BBB -int main(int argc, char *argv[]) { - int n; - if(argc==2) { - n=atoi(argv[1]); - } - else - n=5; - struct rlimit r; - - int err=getrlimit(RLIMIT_STACK,&r); - if(err!=0) { - printf("Error\n"); - return(EXIT_FAILURE); - } - printf("Softlimit %ld, hard limit %ld\n",(rlim_t) r.rlim_cur,(rlim_t)r.rlim_max); - printf("La somme des %d premiers entiers est : %d\n",n,sumn(n)); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/fact.c b/Theorie/C/S3-src/fact.c deleted file mode 100644 index 2ea01e9..0000000 --- a/Theorie/C/S3-src/fact.c +++ /dev/null @@ -1,82 +0,0 @@ -/************************************** - * fact.c - * - * Programme de calcul de factorielle - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///BBB -// retourne i*j -int times(int i, int j) { - int m; - m=i*j; - printf("\t[times(%d,%d)] : return(%d)\n",i,j,m); - return m; -} -// calcul récursif de factorielle -// n>0 -int fact(int n) { - printf("[fact(%d)]: Valeur de n:%d, adresse: %p\n",n,n,&n); - int f; - if(n==1) { - printf("[fact(%d)]: return(1)\n",n); - return(n); - } - printf("[fact(%d)]: appel à fact(%d)\n",n,n-1); - f=fact(n-1); - printf("[fact(%d)]: calcul de times(%d,%d)\n",n,n,f); - f=times(n,f); - printf("[fact(%d)]: return(%d)\n",n,f); - return(f); -} - -void compute() { - int nombre=3; - int f; - printf("La fonction fact est à l'adresse : %p\n",fact); - printf("La fonction times est à l'adresse : %p\n",times); - printf("La variable nombre vaut %d et est à l'adresse %p\n",nombre,&nombre); - f=fact(nombre); - printf("La factorielle de %d vaut %d\n",nombre,f); -} -///AAA - - -#define MSG_LEN 80 -char msg[MSG_LEN]; -float matrix1[4]; -float matrix3[2]={1.3,2.4}; -struct fraction { - float den; - float num; -} fract; -const int nombre=7; - -int max(int i, int j) { - if(i>j) - return(i); - else - return(j); -} - -int main(int argc, char *argv[]) { - - int f=1252; // variable locale - - printf("La variable nombre est à l'adresse : %p\n",(void *) &nombre); - printf("Le tableau msg est à l'adresse : %p\n",(void *)msg); - printf("La variable locale f est à l'adresse : %p\n",(void *) &f); - - printf("La fonction main est à l'adresse : %p\n",main); - printf("La fonction max est à l'adresse : %p\n",max); - - /// ... - ///BBB - printf("///FACT\n"); - compute(); - - return(EXIT_SUCCESS); -} - diff --git a/Theorie/C/S3-src/fact.out b/Theorie/C/S3-src/fact.out deleted file mode 100644 index c2698ff..0000000 --- a/Theorie/C/S3-src/fact.out +++ /dev/null @@ -1,22 +0,0 @@ -La variable nombre est à l'adresse : 0x100000e68 -Le tableau msg est à l'adresse : 0x1000010a0 -La variable locale f est à l'adresse : 0x7fff5fbfe1dc -La fonction main est à l'adresse : 0x100000b6b -La fonction max est à l'adresse : 0x100000b46 -///FACT -La fonction fact est à l'adresse : 0x100000a0f -La fonction times est à l'adresse : 0x1000009d8 -La variable nombre vaut 3 et est à l'adresse 0x7fff5fbfe1ac -[fact(3)]: Valeur de n:3, adresse: 0x7fff5fbfe17c -[fact(3)]: appel à fact(2) -[fact(2)]: Valeur de n:2, adresse: 0x7fff5fbfe14c -[fact(2)]: appel à fact(1) -[fact(1)]: Valeur de n:1, adresse: 0x7fff5fbfe11c -[fact(1)]: return(1) -[fact(2)]: calcul de times(2,1) - [times(2,1)] : return(2) -[fact(2)]: return(2) -[fact(3)]: calcul de times(3,2) - [times(3,2)] : return(6) -[fact(3)]: return(6) -La factorielle de 3 vaut 6 diff --git a/Theorie/C/S3-src/getpid.c b/Theorie/C/S3-src/getpid.c deleted file mode 100644 index 916a594..0000000 --- a/Theorie/C/S3-src/getpid.c +++ /dev/null @@ -1,28 +0,0 @@ -/************************************** - * getpid.c - * - * Programme d'exemple pour getpid - * - **************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -int main(int argc, char *argv[]) { - - unsigned int sec=30; - int pid=(int) getpid(); - - printf("Processus : %d\n",pid); - printf("[pid=%d] Sleep : %d secondes\n",pid, sec); - sec=sleep(sec); - if(sec==0) { - printf("[pid=%d] Fin du processus\n",pid ); - return(EXIT_SUCCESS); - } - else { - printf("[pid=%d] Interrompu alors qu'il restait %d secondes\n",pid,sec); - return(EXIT_FAILURE); - } -} diff --git a/Theorie/C/S3-src/initvar.c b/Theorie/C/S3-src/initvar.c deleted file mode 100644 index 80d027c..0000000 --- a/Theorie/C/S3-src/initvar.c +++ /dev/null @@ -1,50 +0,0 @@ -/************************************** - * initvar.c - * - * Programme d'exemple sur l'initialisation - * des variables - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA - -#define ARRAY_SIZE 1000 - -// initialise un tableau local -void init(void) { - long a[ARRAY_SIZE]; - for(int i=0;i<ARRAY_SIZE;i++) { - a[i]=i; - } -} - -// retourne la somme des éléments -// d'un tableau local -long read(void) { - long b[ARRAY_SIZE]; - long sum=0; - for(int i=0;i<ARRAY_SIZE;i++) { - sum+=b[i]; - } - return sum; -} - - -///BBB -int main(int argc, char *argv[]) { - unsigned int n=5; - - if(argc==2) { - n=atoi(argv[1]); - } - - ///CCC - printf("Résultat de read() avant init(): %ld\n",read()); - init(); - printf("Résultat de read() après init() : %ld\n",read()); - ///DDD - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/initvar.out b/Theorie/C/S3-src/initvar.out deleted file mode 100644 index c54a887..0000000 --- a/Theorie/C/S3-src/initvar.out +++ /dev/null @@ -1,2 +0,0 @@ -Résultat de read() avant init(): 7392321044987950589 -Résultat de read() après init() : 499500 diff --git a/Theorie/C/S3-src/malloc.c b/Theorie/C/S3-src/malloc.c deleted file mode 100644 index 3474c74..0000000 --- a/Theorie/C/S3-src/malloc.c +++ /dev/null @@ -1,55 +0,0 @@ -/************************************** - * malloc.c - * - * Programme illustrant malloc - * - **************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - - -typedef struct fraction { - int num; - int den; -} Fraction; - -void error(char *msg) { - fprintf(stderr,"Erreur :%s\n",msg); - exit(EXIT_FAILURE); -} - -int main(int argc, char *argv[]) { - int size=1; - if(argc==2) - size=atoi(argv[1]); - - char * string; - printf("Valeur du pointeur string avant malloc : %p\n",string); - string=(char *) malloc((size+1)*sizeof(char)); - if(string==NULL) - error("malloc(string)"); - - printf("Valeur du pointeur string après malloc : %p\n",string); - int *vector; - vector=(int *)malloc(size*sizeof(int)); - if(vector==NULL) - error("malloc(vector)"); - - Fraction * fract_vect; - fract_vect=(Fraction *) malloc(size*sizeof(Fraction)); - if(fract_vect==NULL) - error("malloc(fract_vect)"); - - free(string); - printf("Valeur du pointeur string après free : %p\n",string); - string=NULL; - free(vector); - vector=NULL; - free(fract_vect); - fract_vect=NULL; - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/C/S3-src/malloc.out b/Theorie/C/S3-src/malloc.out deleted file mode 100644 index 44c87d4..0000000 --- a/Theorie/C/S3-src/malloc.out +++ /dev/null @@ -1,3 +0,0 @@ -Valeur du pointeur string avant malloc : 0x7fff5fbfe1d8 -Valeur du pointeur string après malloc : 0x100100080 -Valeur du pointeur string après free : 0x100100080 diff --git a/Theorie/C/S3-src/mallocinit.c b/Theorie/C/S3-src/mallocinit.c deleted file mode 100644 index 645ac40..0000000 --- a/Theorie/C/S3-src/mallocinit.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************** - * mallocinit.c - * - * Malloc et les données non-initialisées - * - **************************************/ -#include <stdio.h> -#include <stdlib.h> -///AAA -#define LEN 1024 - -int main(int argc, char *argv[]) { - - int *v1; - int *v2; - int sum=0; - v1=(int *)malloc(sizeof(int)*LEN); - for(int i=0;i<LEN;i++) { - sum+=*(v1+i); - *(v1+i)=1252; - } - printf("Somme des éléments de v1 : %d\n", sum); - sum=0; - free(v1); - v2=(int *)malloc(sizeof(int)*LEN); - for(int i=0;i<LEN;i++) { - sum+=*(v2+i); - } - - printf("Somme des éléments de v2 : %d\n", sum); - free(v2); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/mallocinit.out b/Theorie/C/S3-src/mallocinit.out deleted file mode 100644 index 14d3a68..0000000 --- a/Theorie/C/S3-src/mallocinit.out +++ /dev/null @@ -1,2 +0,0 @@ -Somme des éléments de v1 : 0 -Somme des éléments de v2 : 1282048 diff --git a/Theorie/C/S3-src/mallocperf.c b/Theorie/C/S3-src/mallocperf.c deleted file mode 100644 index 291a614..0000000 --- a/Theorie/C/S3-src/mallocperf.c +++ /dev/null @@ -1,57 +0,0 @@ -/************************************** - * mallocperf.c - * - * Programme mesurant les performances - * de malloc - * - **************************************/ -#include <stdio.h> -#include <stdlib.h> -#include <sys/time.h> - - -#define LOOP 10 -#define SIZE 1000000000 - -void error(char *msg) { - fprintf(stderr,"Erreur :%s\n",msg); - exit(EXIT_FAILURE); -} - -/* Return t2-t1 in microseconds */ -long timeval_diff(struct timeval *t2, struct timeval *t1) -{ - long diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); - return (diff); -} - -int main(int argc, char *argv[]) { - - int *vector; - long mesures[LOOP], sum; - - struct timeval tvStart, tvEnd; - int err; - - vector=(int *)malloc(SIZE*sizeof(int)); - free(vector); - - for(int i=0;i<LOOP+1;i++) { - err=gettimeofday(&tvStart, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - vector=(int *)calloc(SIZE,sizeof(int)); - //vector=(int *)malloc(SIZE*sizeof(int)); - err=gettimeofday(&tvEnd, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - mesures[i]=timeval_diff(&tvEnd, &tvStart); - sum+=mesures[i]; - free(vector); - } - printf("Durée moyenne : %ld\n",sum/LOOP); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/nofree.c b/Theorie/C/S3-src/nofree.c deleted file mode 100644 index 2308e6d..0000000 --- a/Theorie/C/S3-src/nofree.c +++ /dev/null @@ -1,21 +0,0 @@ -/************************************** - * nofree.c - * - * malloc sans free - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -#define LEN 1024 -int main(int argc, char *argv[]) { - - char *str=(char *) malloc(sizeof(char)*LEN); - for(int i=0;i<LEN-1;i++) { - *(str+i)='A'; - } - *(str+LEN)='\0'; // fin de chaîne - return(EXIT_SUCCESS); -} - diff --git a/Theorie/C/S3-src/portee.c b/Theorie/C/S3-src/portee.c deleted file mode 100644 index 12ed7d9..0000000 --- a/Theorie/C/S3-src/portee.c +++ /dev/null @@ -1,62 +0,0 @@ -/************************************** - * portee.c - * - * Programme d'exemple pour la portée de - * variables - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA - -int g1; -int g2=1; - -void f(int i) { - int loc; //def1a - int loc2=2; //def2a - int g2=-i*i; - g1++; - - printf("[f-%da] \t\t %d \t %d \t %d \t %d\n",i,g1,g2,loc,loc2); - loc=i*i; - g1++; - g2++; - printf("[f-%db] \t\t %d \t %d \t %d \t %d\n",i,g1,g2,loc,loc2); - -} - - -int main(int argc, char *argv[]) { - int loc; //def1b - int loc2=1; //def2b - - printf("Valeurs de : \t g1 \t g2\t loc\t loc2\n"); - printf("===================================================\n"); - - printf("[main1] \t %d \t %d \t %d \t %d\n",g1,g2,loc,loc2); - - loc=1252; - loc2=1234; - g1=g1+1; - g1=g1+2; - - printf("[main2] \t %d \t %d \t %d \t %d\n",g1,g2,loc,loc2); - - for(int i=1;i<3;i++) { - int loc=i; //def1c - int g2=-i; - loc++; - g1=g1*2; - f(i); - printf("[main-for-%d] \t %d \t %d \t %d \t %d\n",i,g1,g2,loc,loc2); - } - f(7); - g1=g1*3; - g2=g2+2; - printf("[main3] \t %d \t %d \t %d \t %d\n",g1,g2,loc,loc2); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/C/S3-src/portee.out b/Theorie/C/S3-src/portee.out deleted file mode 100644 index c2034d2..0000000 --- a/Theorie/C/S3-src/portee.out +++ /dev/null @@ -1,13 +0,0 @@ -Valeurs de : g1 g2 loc loc2 -=================================================== -[main1] 0 1 0 1 -[main2] 3 1 1252 1234 -[f-1a] 7 -1 0 2 -[f-1b] 8 0 1 2 -[main-for-1] 8 -1 2 1234 -[f-2a] 17 -4 0 2 -[f-2b] 18 -3 4 2 -[main-for-2] 18 -2 3 1234 -[f-7a] 19 -49 0 2 -[f-7b] 20 -48 49 2 -[main3] 60 3 1252 1234 diff --git a/Theorie/C/S3-src/stack.c b/Theorie/C/S3-src/stack.c deleted file mode 100644 index db62dc7..0000000 --- a/Theorie/C/S3-src/stack.c +++ /dev/null @@ -1,96 +0,0 @@ -/************************************** - * stack.c - * - * Programme d'exemple implémentant un stack comme structure - * chaînée - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -typedef struct fraction_t { - int num; - int den; -} fraction; - -///AAA -typedef struct node_t -{ - struct fraction_t *data; - struct node_t *next; -} node; - -struct node_t *stack; // sommet de la pile - -// ajoute un élément au sommet de la pile -void push(struct fraction_t *f) -{ - struct node_t *n; - n=(struct node_t *)malloc(sizeof(struct node_t)); - if(n==NULL) - exit(EXIT_FAILURE); - n->data = f; - n->next = stack; - stack = n; -} -// retire l'élément au sommet de la pile -struct fraction_t * pop() -{ - if(stack==NULL) - return NULL; - // else - struct fraction_t *r; - struct node_t *removed=stack; - r=stack->data; - stack=stack->next; - free(removed); - return (r); -} - -///BBB - -// affiche le contenu de la pile -void display() -{ - struct node_t *t; - t = stack; - while(t!=NULL) { - if(t->data!=NULL) { - printf("Item at addr %p : Fraction %d/%d Next %p\n",t,t->data->num,t->data->den,t->next); - } - else { - printf("Bas du stack %p\n",t); - } - t=t->next; - } -} - -// exemple -int main(int argc, char *argv[]) { - - struct fraction_t demi={1,2}; - struct fraction_t tiers={1,3}; - struct fraction_t quart={1,4}; - struct fraction_t zero={0,1}; - - // initialisation - stack = (struct node_t *)malloc(sizeof(struct node_t)); - stack->next=NULL; - stack->data=NULL; - - display(); - push(&zero); - display(); - push(&demi); - push(&tiers); - push(&quart); - display(); - - struct fraction_t *f=pop(); - if(f!=NULL) - printf("Popped : %d/%d\n",f->num,f->den); - - return(EXIT_SUCCESS); -} -///CCC diff --git a/Theorie/C/S3-src/stack.out b/Theorie/C/S3-src/stack.out deleted file mode 100644 index a3b0861..0000000 --- a/Theorie/C/S3-src/stack.out +++ /dev/null @@ -1,9 +0,0 @@ -Bas du stack 0x100100080 -Item at addr 0x100100090 : Fraction 0/1 Next 0x100100080 -Bas du stack 0x100100080 -Item at addr 0x1001000c0 : Fraction 1/4 Next 0x1001000b0 -Item at addr 0x1001000b0 : Fraction 1/3 Next 0x1001000a0 -Item at addr 0x1001000a0 : Fraction 1/2 Next 0x100100090 -Item at addr 0x100100090 : Fraction 0/1 Next 0x100100080 -Bas du stack 0x100100080 -Popped : 1/4 diff --git a/Theorie/C/S3-src/static.c b/Theorie/C/S3-src/static.c deleted file mode 100644 index 5d369ef..0000000 --- a/Theorie/C/S3-src/static.c +++ /dev/null @@ -1,24 +0,0 @@ -/************************************** - * static.c - * - * Programme d'exemple d'utilisation de static - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - - -void f(int i) { - static int sum; - -} - -int main(int argc, char *argv[]) { - - f(1); - - f(2); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/strcat.c b/Theorie/C/S3-src/strcat.c deleted file mode 100644 index f1a7850..0000000 --- a/Theorie/C/S3-src/strcat.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************** - * concat.c - * - * Programme d'exemple pour concaténer - * deux chaînes de caractères - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -#define SIZE 4 - -int * init_vector(int length, int val) { - int *ret=malloc(length*sizeof(int)); - for(int i=0;i<length;i++) { - *(ret+i)=val; - } - return(ret); -} - -int *unit_matrix(int length) { - int *r=malloc(length*length*sizeof(int)); - for(int i=0;i<length;i++) { - for(int j=0;j<length;j++) { - if(i==j) { - *(r+(i*length)+j)=1; - } - else { - *(r+(i*length)+j)=0; - } - } - } - return (r); -} - -int main(int argc, char *argv[]) { - int *v; - int *m; - v=init_vector(SIZE,1252); - m=unit_matrix(SIZE); - for(int i=0;i<SIZE;i++) { - printf(" v[%d]=%d",i,*(v+i)); - } - printf("\n"); - for(int i=0;i<SIZE;i++) { - for(int j=0;j<SIZE;j++) { - printf(" m[%d,%d]=%d",i,j,*(m+(i*SIZE)+j)); - } - printf("\n"); - } - printf("\n"); - free(v); - free(m); - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/strcpy.c b/Theorie/C/S3-src/strcpy.c deleted file mode 100644 index c24c942..0000000 --- a/Theorie/C/S3-src/strcpy.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************** - * strcpy.c - * - * Programme d'exemple pour strcpy - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -#include <string.h> - -char *duplicate(char * str) { - int i; - size_t len=strlen(str); - char *ptr=(char *)malloc(sizeof(char)*(len+1)); - if(ptr!=NULL) { - for(i=0;i<len+1;i++) { - *(ptr+i)=*(str+i); - } - } - return ptr; -} -///BBB -char *duplicate2(char * str) { - int i; - size_t len=strlen(str); - char str2[len+1]; - for(i=0;i<len+1;i++) { - str2[i]=*(str+i); - } - return str2; -} -///CCC - -int main(int argc, char *argv[]) { - - char str[]="Hello, world"; - char *str2=duplicate(str); - char *str3=duplicate2(str); - printf("str: %s\n",str); - printf("str2: %s\n",str2); - printf("str3: %s\n",str3); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/structargs.c b/Theorie/C/S3-src/structargs.c deleted file mode 100644 index a8fc564..0000000 --- a/Theorie/C/S3-src/structargs.c +++ /dev/null @@ -1,72 +0,0 @@ -/************************************** - * structargs.c - * - * exemple de structures comme arguments - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <sys/time.h> - - -/* Return t2-t1 in microseconds */ -long timeval_diff(struct timeval *t2, struct timeval *t1) -{ - long diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); - return (diff); -} - -///AAA - -#define MILLION 1000000 - -struct large_t { - int i; - char str[MILLION]; -}; - -int sum(struct large_t s1, struct large_t s2) { - return (s1.i+s2.i); -} - -int sumptr(struct large_t *s1, struct large_t *s2) { - return (s1->i+s2->i); -} - -int main(int argc, char *argv[]) { - struct timeval tvStart, tvEnd; - int err; - int n; - struct large_t one={1,"one"}; - struct large_t two={1,"two"}; - - n=sum(one,two); - n=sumptr(&one,&two); - -///BBB - - err=gettimeofday(&tvStart, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - err=sum(one,two); - - err=gettimeofday(&tvEnd, NULL); - if(err!=0) - exit(EXIT_FAILURE); - printf("Durée de sum : %ld microsecondes\n",timeval_diff(&tvEnd, &tvStart)); - - err=gettimeofday(&tvStart, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - err=sumptr(&one,&two); - - err=gettimeofday(&tvEnd, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - printf("Durée de sumptr : %ld microsecondes\n",timeval_diff(&tvEnd, &tvStart)); -} - diff --git a/Theorie/C/S3-src/typecast.c b/Theorie/C/S3-src/typecast.c deleted file mode 100644 index 5093e47..0000000 --- a/Theorie/C/S3-src/typecast.c +++ /dev/null @@ -1,26 +0,0 @@ -/************************************** - * typecast.c - * - * Programme d'exemple de conversion entre - * types de données - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - - ///AAA - int i=1; - float f=1e20; - double d=1e100; - - printf("i [int]: %d, [float]:%f, [double]:%f\n",i,(float)i,(double)i); - printf("f [int]: %d, [float]:%f, [double]:%f\n",(int)f,f,(double)f); - printf("d [int]: %d, [float]:%f, [double]:%f\n",(int)d,(float)d,d); - printf("sizeof -> int:%d float:%d double:%d\n",(int)sizeof(int), (int)sizeof(float), (int)sizeof(double)); - - ///BBB - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/union.c b/Theorie/C/S3-src/union.c deleted file mode 100644 index 9951e91..0000000 --- a/Theorie/C/S3-src/union.c +++ /dev/null @@ -1,61 +0,0 @@ -/************************************** - * union.c - * - * Programme d'exemple de union - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -///AAA - -struct s_t { - int i; - char c; -} s; - -union u_t { - int i; - char c; -} u; - -///BBB - -typedef enum { INTEGER, CHAR } Type; - -typedef struct -{ - Type type; - union { - int i; - char c; - } x; -} Value; - - -///XXX - -int main(int argc, char *argv[]) { - ///CCC - // initialisation - s.i=1252; - s.c='A'; - u.i=1252; - // u contient un int - u.c='Z'; - // u contient maintenant un char (et u.i est perdu) - ///DDD - printf("sizeof(s_t) : %ld\n",sizeof(s)); - printf("sizeof(u_t) : %ld\n",sizeof(u)); - ///EEE - u.i=1252; - printf("char : %c\n", u.c); - - ///FFF -Value v; -v.type=INTEGER; -v.x.i=1252; -///GGG - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/var.c b/Theorie/C/S3-src/var.c deleted file mode 100644 index 4ce1462..0000000 --- a/Theorie/C/S3-src/var.c +++ /dev/null @@ -1,17 +0,0 @@ -/************************************** - * var.c - * - * Programme d'exemple pour localiser - * les variables en mémoire - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - // affiche sur la sortie standard - printf("Hello, world!\n"); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S3-src/vector.c b/Theorie/C/S3-src/vector.c deleted file mode 100644 index d41579c..0000000 --- a/Theorie/C/S3-src/vector.c +++ /dev/null @@ -1,59 +0,0 @@ -/************************************** - * vector.c - * - * Programme de manipulation de vecteurs - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -struct vector_t { - int size; - float *v; -}; -// initialise le vecteur à la valeur du réel -struct vector_t * init(int, float) ; -// récupère le nième élément -float get(struct vector_t *, int) ; -// fixe la valeur du nième élément -void set(struct vector_t *, int , float); -// supprime un vecteur -void destroy(struct vector_t *); - -///BBB -struct vector_t * init(int size, float val) -{ - struct vector_t *v=(struct vector_t *)malloc(sizeof(struct vector_t)); - v->v=(float *)malloc(size*sizeof(float)); - v->size=size; - for(int i=0;i<size;i++) { - *(v->v+i)=val; - } - return v; -} - -float get(struct vector_t *v, int i) { - return *(v->v+i); -} - -void set(struct vector_t *v, int i, float val) { - if(i<v->size) - *(v->v+i)=val; -} - -void destroy(struct vector_t *v) { - free(v->v); - free(v); -} - -int main(int argc, char *argv[]) { - - struct vector_t *v1=init(10,2.0); - printf("v1[%d]=%f\n",3,get(v1,3)); - set(v1,3,17.0); - printf("v1[%d]=%f\n",3,get(v1,3)); - destroy(v1); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/C/S5-src/Makefile2 b/Theorie/C/S5-src/Makefile2 deleted file mode 100644 index 9f43fca..0000000 --- a/Theorie/C/S5-src/Makefile2 +++ /dev/null @@ -1,21 +0,0 @@ -# -# Makefile for source code -# -# Builds all .c files, assuming they are all independant and runs them -# to collect the output on stdout -# -# Automatically builds some of the examples to be included in the text -# - -###AAA - -myprog: main.o min.o - gcc -std=c99 -o myprog main.o min.o - -main.o: main.c min.h - gcc -std=c99 -c main.c - -min.o: min.c min.h - gcc -std=c99 -c min.c - -###BBB diff --git a/Theorie/C/S5-src/errno.c b/Theorie/C/S5-src/errno.c deleted file mode 100644 index 4c0a4ec..0000000 --- a/Theorie/C/S5-src/errno.c +++ /dev/null @@ -1,24 +0,0 @@ -/************************************** - * errno.c - * - * Programme d'exemple pour errno - * - **************************************/ -///AAA -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -int main(int argc, char *argv[]) { - - if(setenv(NULL,NULL,1)!=0) { - fprintf(stderr,"Erreur : errno=%d %s\n",errno,strerror(errno)); - } - if(setenv("PATH=","/usr/bin",1)!=0) { - fprintf(stderr,"Erreur : errno=%d %s\n",errno,strerror(errno)); - } - - -} - diff --git a/Theorie/C/S5-src/fctptr.c b/Theorie/C/S5-src/fctptr.c deleted file mode 100644 index c9b68d5..0000000 --- a/Theorie/C/S5-src/fctptr.c +++ /dev/null @@ -1,45 +0,0 @@ -/************************************** - * fctptr.c - * - * Programme d'exemple pour les pointeurs - * vers des fonctions - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -int g=1; -int debug_level; - -void empty (char *str) { - return; -} - -void oneline(char *str) { - fprintf(stderr,"debug: %s\n",str); -} - -void detailed(char *str) { - fprintf(stderr, "debug: %s\n",str); - fprintf(stderr,"g=%d\n",g); -} - -void (* debug_print[])(char *) = { empty, - oneline, - detailed }; - -int main(int argc, char *argv[]) { - - if(argc!=2) - return(EXIT_FAILURE); - - debug_level=atoi(argv[1]); - if((debug_level<0) || (debug_level>2) ) - return(EXIT_FAILURE); - printf("fct debug_print : %p\n",debug_print[debug_level]); - (debug_print[debug_level])("Hello"); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/C/S5-src/main.c b/Theorie/C/S5-src/main.c deleted file mode 100644 index 01130f8..0000000 --- a/Theorie/C/S5-src/main.c +++ /dev/null @@ -1,18 +0,0 @@ -/************************************** - * main.c - * - * Programme d'exemple pour le linker - * - **************************************/ - -#include "min.h" -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - float f1=3.45; - float f2=-4.12; - printf("Minimum(%f,%f)=%f\n",f1,f2,min(f1,f2)); - return(EXIT_SUCCESS); -} - diff --git a/Theorie/C/S5-src/min.c b/Theorie/C/S5-src/min.c deleted file mode 100644 index 1a0c53f..0000000 --- a/Theorie/C/S5-src/min.c +++ /dev/null @@ -1,17 +0,0 @@ -/************************************** - * min.c - * - * Programme d'exemple pour le linker - * - **************************************/ - -#include "min.h" - -float min(float a, float b) { - if(a<b) - return a; - else - return b; -} - - diff --git a/Theorie/C/S5-src/min.h b/Theorie/C/S5-src/min.h deleted file mode 100644 index 7812a4f..0000000 --- a/Theorie/C/S5-src/min.h +++ /dev/null @@ -1,13 +0,0 @@ -/************************************** - * min.h - * - **************************************/ - -#ifndef _MIN_H_ -#define _MIN_H_ - -float min(float, float); - -#endif /* _MIN_H */ - - diff --git a/Theorie/C/S5-src/module.c b/Theorie/C/S5-src/module.c deleted file mode 100644 index a8f6204..0000000 --- a/Theorie/C/S5-src/module.c +++ /dev/null @@ -1,31 +0,0 @@ -/************************************** - * module.c - * - **************************************/ - -#include "module.h" - -static float min(float, float); - -int num1=0; // accessible hors de module.c -extern int num2; // définie dans un autre module -static int num3=1252; // accessible uniquement dans ce module - -float vmin(int n, float *ptr) { - float *p=ptr; - float m=*ptr; - for(int i=1;i<n;i++) { - m=min(m,*p); - p++; - } - return m; -} - -static float min(float a, float b) { - if(a<b) - return a; - else - return b; -} - - diff --git a/Theorie/C/S5-src/module.h b/Theorie/C/S5-src/module.h deleted file mode 100644 index cbfdb4c..0000000 --- a/Theorie/C/S5-src/module.h +++ /dev/null @@ -1,12 +0,0 @@ -/************************************** - * module.h - * - **************************************/ -#ifndef _MODULE_H_ -#define _MODULE_H_ - -float vmin(int, float *); - -#endif /* _MODULE_H */ - - diff --git a/Theorie/C/S5-src/mystrtol.c b/Theorie/C/S5-src/mystrtol.c deleted file mode 100644 index 3cfbfdc..0000000 --- a/Theorie/C/S5-src/mystrtol.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************** - * stresep.c - * - * Implementation partielle de strtol - * - **************************************/ -///AAA -#include <stdlib.h> -#include <stdio.h> -#include <ctype.h> -#include <stdbool.h> - -int mystrtol(const char *restrict str, - char **restrict endptr, - int base) { - - int val; - int i=0; - int err=false; - while(!err && *(str+i)!='\0') - { - if(!isdigit(*(str+i))) { - err=true; - *endptr=(char *)(str+i); - } - i++; - } - // ... - return val; -} -///BBB - -int main(int argc, char *argv[]) -{ - char *p, *s; - long li; - s = "1252m"; - li = mystrtol(s,&p,10); - if(p!=NULL) { - printf("Caractère erronné : %c\n",*p); - // p pointe vers le caractère en erreur - } - printf("Valeur convertie : %s -> %ld\n",s,li); - return(EXIT_SUCCESS); - -} diff --git a/Theorie/C/S5-src/prog.c b/Theorie/C/S5-src/prog.c deleted file mode 100644 index 538d4f8..0000000 --- a/Theorie/C/S5-src/prog.c +++ /dev/null @@ -1,39 +0,0 @@ -/************************************** - * prog - * - * Programme d'exemple pour le linker - * - **************************************/ - -#include <stdlib.h> -#include <stdio.h> -///AAA -#include "min.h" -#include "module.h" - -#define SIZE 4 - -extern int num1; // définie dans un autre module -int num2=1252; // accessible depuis un autre module -static int num3=-1; // accessible uniquement dans ce module - -void f() { - static int n=0; - int loc=2; - if(n==0) - printf("n est à l'adresse %p et loc à l'adresse %p\n",&n,&loc); - printf("f, n=%d\n",n); - n++; -} - -int main(int argc, char* argv[]) { - - float v[SIZE]={1.0, 3.4, -2.4, 9.9}; - printf("Minimum: %f\n",vmin(SIZE,v)); - f(); - f(); - printf("Minimum(0.0,1.1)=%f\n",min(0.0,1.1)); - return(EXIT_SUCCESS); -} - - diff --git a/Theorie/C/S5-src/prog.out b/Theorie/C/S5-src/prog.out deleted file mode 100644 index 95f6586..0000000 --- a/Theorie/C/S5-src/prog.out +++ /dev/null @@ -1,5 +0,0 @@ -Minimum: -2.400000 -n est à l'adresse 0x100001078 et loc à l'adresse 0x7fff5fbfe1cc -f, n=0 -f, n=1 -Minimum(0.0,1.1)=0.000000 diff --git a/Theorie/C/S5-src/ptrptr.c b/Theorie/C/S5-src/ptrptr.c deleted file mode 100644 index 1044c2a..0000000 --- a/Theorie/C/S5-src/ptrptr.c +++ /dev/null @@ -1,24 +0,0 @@ -/************************************** - * ptrptr.c - * - * Programme d'exemple pour les pointeurs - * vers des pointeurs - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -int main(int argc, char **argv) { - - char **p; - p=argv; - printf("Arguments :"); - while(*p!=NULL) { - printf(" %s",*p); - p++; - } - printf("\n"); - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/C/S5-src/qsort.c b/Theorie/C/S5-src/qsort.c deleted file mode 100644 index 3e834bb..0000000 --- a/Theorie/C/S5-src/qsort.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************** - * qosrt.c - * - * Programme d'exemple d'utilisation de qsort - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -#define SIZE 5 -double array[SIZE]= { 1.0, 7.32, -3.43, 8.7, 9.99 }; - -void print_array() { - for(int i=0;i<SIZE;i++) - printf("array[i]:%f\n",array[i]); -} - -int cmp(const void *ptr1, const void *ptr2) { - const double *a=ptr1; - const double *b=ptr2; - if(*a==*b) - return 0; - else - if(*a<*b) - return -1; - else - return +1; -} - -int main(int argc, char *argv[]) { - - printf("Avant qsort\n\n"); - print_array(); - qsort(array,SIZE,sizeof(double),cmp); - printf("Après qsort\n\n"); - print_array(); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/C/S5-src/strtol.c b/Theorie/C/S5-src/strtol.c deleted file mode 100644 index b1755d6..0000000 --- a/Theorie/C/S5-src/strtol.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************** - * strtol.c - * - * Programme d'exemple d'utilisation de strtol - * - **************************************/ -///AAA -#include <stdlib.h> -#include <stdio.h> - -int main(int argc, char *argv[]) { - - char *p, *s; - long li; - s = "1252"; - li = strtol(s,&p,10); - if(*p != '\0') { - printf("Caractère erronné : %c\n",*p); - // p pointe vers le caractère en erreur - } - printf("Valeur convertie : %s -> %ld\n",s,li); - - s = "12m52"; - li = strtol(s,&p,10); - if(*p != '\0') { - printf("Caractère erronné : %c\n",*p); - } - printf("Valeur convertie : %s -> %ld\n",s,li); - - return(EXIT_SUCCESS); -} - - - diff --git a/Theorie/C/S5-src/strtol.out b/Theorie/C/S5-src/strtol.out deleted file mode 100644 index 58f9b96..0000000 --- a/Theorie/C/S5-src/strtol.out +++ /dev/null @@ -1,3 +0,0 @@ -Valeur convertie : 1252 -> 1252 -Caractère erronné : m -Valeur convertie : 12m52 -> 12 diff --git a/Theorie/C/datatypes.rst b/Theorie/C/datatypes.rst deleted file mode 100644 index ceb4e4d..0000000 --- a/Theorie/C/datatypes.rst +++ /dev/null @@ -1,1022 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012, 2019 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Types de données -================ - -Dans les sections précédentes, nous avons abordé quelques types de -données de base dont les ``int`` et les ``char``. Pour utiliser ces types de données à bon escient, il est important de comprendre en détail la façon dont ils sont supportés par le compilateur et leurs limitations. Celles-ci dépendent souvent de leur représentation en mémoire et durant cette semaine nous allons commencer à analyser de façon plus détaillée comment la mémoire d'un ordinateur est structurée. - - - -Nombres entiers ---------------- - -Toutes les données stockées sur un ordinateur sont représentées sous la forme de séquences de bits. -Ces séquences de bits peuvent d'abord permettre de représenter des -nombres entiers. Un système informatique peut travailler avec deux -types de nombres entiers : - - - les nombres entiers signés (``int`` notamment en C) - - les nombres entiers non-signés (``unsigned int`` notamment en C) - -Une séquence de :math:`n` bits :math:`b_0 ... b_i ... b_{n-1}` peut représenter le -nombre entier :math:`\sum_{i=0}^{n-1} b_i \times 2^i`. Par convention, le bit -:math:`b_{n-1}`, associé au facteur du plus grand indice :math:`2^{n-1}`, est appelé le -:term:`bit de poids fort` tandis que le bit :math:`b_0`, associé à :math:`2^0`, -est appelé le :term:`bit de poids faible`. Les suites de bits sont communément -écrites dans l'ordre descendant des indices :math:`b_{n-1} ... b_i ... b_0`. À titre -d'exemple, la suite de bits ``0101`` correspond à l'entier non signé représentant -la valeur cinq. Le bit de poids fort de cette séquence de quatre bits -(ou :term:`nibble`) est ``0``. Le bit de poids faible est ``1``. La table ci-dessous reprend les -différentes valeurs décimales correspondant à toutes les séquences de quatre bits consécutifs. - -======= ===== =========== ======= -binaire octal hexadécimal décimal -======= ===== =========== ======= -0000 00 0 0 -0001 01 1 1 -0010 02 2 2 -0011 03 3 3 -0100 04 4 4 -0101 05 5 5 -0110 06 6 6 -0111 07 7 7 -1000 10 8 8 -1001 11 9 9 -1010 12 A 10 -1011 13 B 11 -1100 14 C 12 -1101 15 D 13 -1110 16 E 14 -1111 17 F 15 -======= ===== =========== ======= - - -Écrire une séquence de bits sous la forme d'une suite de -``0`` et de ``1`` peut s'avérer fastidieux. La représentation décimale -traditionnelle n'est pas pratique (optimale) non plus car il faut un ou deux -chiffres pour représenter une séquence de quatre bits (ou :term:`nibble`) en fonction de la -valeur de ces bits. En pratique, de nombreux systèmes informatiques -utilisent une représentation hexadécimale pour afficher des séquences -de bits. Cette notation hexadécimale est définie sur base de la table -ci-dessus en utilisant des lettres pour représenter chaque séquence de quatre -bits dont la valeur numérique est supérieure à ``9``. Tout comme avec -la représentation décimale habituelle, il est possible d'utiliser la -représentation hexadécimale pour de longues séquences de bits. La -notation octale est parfois utilisée et est supportée par les -compilateurs C. Elle utilise un chiffre pour représenter trois bits -consécutifs. A titre -d'exemple, voici quelques conversions de nombres en notation -décimale vers les notations hexadécimales et binaires. - - - L'entier décimal ``123`` s'écrit ``0x7b`` en notation hexadécimale - et ``0b000000000000000000000000001111011`` en notation binaire - - L'entier décimal ``7654321`` s'écrit ``0x74cbb1`` en notation - hexadécimale et ``0b000000000011101001100101110110001`` en notation - binaire - -Dans ces exemples, nous avons pris la convention de représentation des -nombres en langage C. En C, un nombre décimal s'écrit avec la -représentation standard. Un nombre entier en notation hexadécimale est par -convention préfixé par ``0x`` tandis qu'un nombre entier en notation -binaire est préfixé par ``0b``. Ainsi, les déclarations ci-dessous -correspondent toutes à la même valeur. - -.. literalinclude:: /C/S2-src/num.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Certains compilateurs permettent d'entrer des constantes en binaire -directement en préfixant le nombre avec ``0b`` comme dans -``i=0b1111011;``. Cependant, cette notation n'est pas portable sur -tous les compilateurs. Elle doit donc être utilisée avec précaution, -contrairement à la notation hexadécimale qui fait partie du langage. - -.. note:: Notation octale - - La notation octale peut poser des surprises désagréables au - programmeur C débutant. En effet, pour des raisons historiques, les - compilateurs C considèrent qu'un entier dont le premier chiffre est - ``0`` est écrit en représentation octale et non en représentation - décimale. - - Ainsi, le fragment de code ci-dessous affichera à l'écran le message - ``65 et 53 sont différents`` car le compilateur C interprète la ligne - ``j=065;`` comme contenant un entier en notation octale et non décimale. - - .. literalinclude:: /C/S2-src/octal.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Le langage C supporte différents types de données qui permettent de -représenter des nombres entiers non signés. Les principaux sont repris -dans le tableau ci-dessous. - -====================== =========================================================== -Type Explication -====================== =========================================================== -``unsigned short`` Nombre entier non signé représenté sur au moins 16 bits -``unsigned int`` Nombre entier non signé représenté sur au moins 16 bits -``unsigned long`` Nombre entier non signé représenté sur au moins 32 bits -``unsigned long long`` Nombre entier non signé représenté sur au moins 64 bits -====================== =========================================================== - - - -Le nombre de bits utilisés pour stocker chaque type d'entier non signé -peut varier d'une implémentation à l'autre. Le langage C permet de -facilement déterminer le nombre de bits utilisés pour stocker un type -de données particulier en utilisant l'expression ``sizeof``. Appliquée -à un type de données, celle-ci retourne le nombre d'octets que ce type -occupe. Ainsi, sur de nombreuses plateformes, -``sizeof(int)`` retournera la valeur ``4``. - -Les systèmes informatiques doivent également manipuler des nombres -entiers négatifs. Cela se fait en utilisant des nombres dits -signés. Au niveau binaire, il y a plusieurs approches possibles pour -représenter des nombres signés. La première est de réserver le bit de poids fort dans la représentation du nombre pour stocker le signe et stocker la -valeur absolue du nombre dans les bits de poids faible. -Mathématiquement, un nombre de `n` bits utilisant cette notation -pourrait se convertir via la formule -:math:`(-1)^{b_{n-1}} \times \sum_{i=0}^{n-2} b_i \times 2^i`. - -En pratique, cette notation est rarement utilisée pour les nombres -entiers car elle rend la réalisation des circuits électroniques de -calcul plus compliquée. Un autre inconvénient de cette notation est -qu'elle utilise deux séquences de bits différentes pour représenter la -valeur zéro (``00...0`` et ``10...0``). La représentation la plus courante pour les -nombres entiers signés est la notation en `complément à 2`. Avec cette -notation, une séquence de `n` bits correspond au nombre entier -:math:`-(b_{n-1})\times 2^{n-1} + \sum_{i=0}^{n-2} b_i \times 2^i`. -Avec cette notation, le nombre négatif de 4 bits le plus petit -correspond à la valeur ``-8``. En notation en complément à deux, il -n'y a qu'une seule représentation pour le nombre zéro, la séquence -dont tous les bits valent ``0``. Par contre, il existe toujours -un nombre entier négatif qui n'a pas d'équivalent positif. - -======= ============= -binaire décimal signé -======= ============= -0000 0 -0001 1 -0010 2 -0011 3 -0100 4 -0101 5 -0110 6 -0111 7 -1000 -8 -1001 -7 -1010 -6 -1011 -5 -1100 -4 -1101 -3 -1110 -2 -1111 -1 -======= ============= - -En C, les types de données utilisés pour représenter des entiers sont -signés par défaut. Ils ont la même taille que leurs équivalents -non signés et sont repris dans la table ci-dessous. - -============================= =================================================== -Type Explication -============================= =================================================== -``short`` Nombre entier signé représenté sur au moins 16 bits -``int`` Nombre entier signé représenté sur au moins 16 bits -``long`` Nombre entier signé représenté sur au moins 32 bits -``long long`` Nombre entier signé représenté sur au moins 64 bits -============================= =================================================== - - -Dans de nombreux systèmes Unix, on retrouve dans le fichier -`stdint.h`_ les définitions des types d'entiers supportés par le -système avec le nombre de bits et les valeurs minimales et maximales -pour chaque type. La table ci-dessous reprend à titre d'exemple -l'information relative aux types ``short`` (16 bits) et ``unsigned -int`` (32 bits). - -================= ==== ======= =========== -Type Bits Minimum Maximum -================= ==== ======= =========== -``short`` 16 -32768 32767 -``unsigned int`` 32 0 4294967295 -================= ==== ======= =========== - -.. todo:: ajouter les noms des constantes - -Le fichier `stdint.h`_ contient de nombreuses constantes qui doivent -être utilisées lorsque l'on a besoin des valeurs minimales et -maximales pour un type donné. Voici à titre d'exemple quelques unes de ces valeurs : - -.. code-block:: c - - #define INT8_MAX 127 - #define INT16_MAX 32767 - #define INT32_MAX 2147483647 - #define INT64_MAX 9223372036854775807LL - - #define INT8_MIN -128 - #define INT16_MIN -32768 - #define INT32_MIN (-INT32_MAX-1) - #define INT64_MIN (-INT64_MAX-1) - - #define UINT8_MAX 255 - #define UINT16_MAX 65535 - #define UINT32_MAX 4294967295U - #define UINT64_MAX 18446744073709551615ULL - - -L'utilisation d'un nombre fixe de bits pour représenter les entiers -peut causer des erreurs dans certains calculs. Par exemple, -voici un petit programme qui affiche les 10 premières puissances de -cinq et dix. - -.. literalinclude:: /C/S2-src/short.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lorsqu'il est exécuté, ce programme affiche la sortie suivante. - -.. literalinclude:: /C/S2-src/short.out - :encoding: utf-8 - :language: console - -Il est important de noter que le langage C ne contient aucun mécanisme -d'exception qui permettrait au programmeur de détecter ce problème à -l'exécution. Lorsqu'un programmeur choisit une représentation pour -stocker des nombres entiers, il est essentiel qu'il ait en tête -l'utilisation qui sera faite de cet entier et les limitations qui -découlent du nombre de bits utilisés pour représenter le nombre en -mémoire. Si dans de nombreuses applications ces limitations ne sont -pas pénalisantes, il existe des applications critiques où un calcul -erroné peut avoir des conséquences énormes [Bashar1997]_. - -Nombres réels -------------- - -Outre les nombres entiers, les systèmes informatiques doivent aussi -pouvoir manipuler des nombres réels. Ceux-ci sont également -représentés sous la forme d'une séquence fixe de bits. Il existe deux formes de représentation pour les nombres réels : - - - la représentation en :term:`simple précision` dans laquelle le nombre réel est stocké sous la forme d'une séquence de 32 bits; - - la représentation en :term:`double précision` dans laquelle le nombre réel est stocké sous la forme d'une séquence de 64 bits. - -La plupart des systèmes informatiques qui permettent de manipuler des -nombres réels utilisent le standard IEEE-754. Un nombre réel est -représenté en virgule flottante et la séquence de bits correspondante -est décomposée en trois parties [#fexemple]_ : - - - le bit de poids fort indique le signe du nombre. Par convention, ``0`` est utilisé pour les nombres positifs et ``1`` pour les nombres négatifs. - - `e` bits sont réservés pour stocker l'exposant [#fexposant]_. - - Les `f` bits de poids faible servent à stocker la partie fractionnaire du nombre réel. - -.. figure:: /C/svg/Float_example.png - :align: center - :scale: 100 - - Exemple de nombre en virgule flottante (simple précision). (source : Wikipedia) - -En simple (resp. double) précision, `8` (resp. `11`) bits sont utilisés pour -stocker l'exposant et `23` (resp. `52`) bits pour la partie -fractionnaire. L'encodage des nombres réels en simple et double -précision a un impact sur la précision de divers algorithmes -numériques. Une analyse détaillée de ces problèmes sort du cadre de ce -cours, mais il est important de noter deux propriétés importantes de -la notation en virgule flottante utilisée actuellement. Ces deux -propriétés s'appliquent de la même façon à la simple qu'à la double précision. - - - une représentation en virgule flottante sur `n` bits ne permet jamais de représenter plus de :math:`2^n` nombres réels différents; - - les représentations en virgule flottante privilégient les nombres réels compris dans l'intervalle :math:`[-1,1]`. On retrouve autant de nombres réels représentables dans cet intervalle que de nombres dont la valeur absolue est supérieure à `1`. - -En C, ces nombres en virgule flottante sont représentés en utilisant -les types ``float`` (simple précision) et ``double`` (double précision). Les fichiers `float.h`_ et `math.h`_ définissent de nombreuses constantes relatives à ces types. Voici, à titre d'exemple, les valeurs minimales et maximales pour les ``float`` et les ``double`` ainsi que les constantes associées. Pour qu'un programme soit portable, il faut utiliser les constantes définies dans `float.h`_ et `math.h`_ et non leurs valeurs numériques. - -.. code-block:: c - - #define FLT_MIN 1.17549435e-38F - #define FLT_MAX 3.40282347e+38F - - #define DBL_MIN 2.2250738585072014e-308 - #define DBL_MAX 1.7976931348623157e+308 - - -Les tableaux ------------- - -En langage C, les tableaux permettent d'agréger des données d'un même type. Il est possible de définir des vecteurs et des matrices en utilisant la syntaxe ci-dessous. - -.. literalinclude:: /C/S2-src/array.c - :language: c - :encoding: utf-8 - :start-after: ///AAA - :end-before: ///BBB - -Les premières versions du langage C ne permettaient que la définition de tableaux dont la taille est connue à la compilation. Cette restriction était nécessaire pour permettre au compilateur de réserver la zone mémoire pour stocker le tableau. Face à cette limitation, de nombreux programmeurs définissaient la taille du tableau via une directive ``#define`` du pré-processeur comme dans l'exemple ci-dessus. Cette directive permet d'associer une chaîne de caractères quelconque à un symbole. Dans l'exemple ci-dessus, la chaîne ``10`` est associée au symbole ``N``. Lors de chaque compilation, le préprocesseur remplace toutes les occurrences de ``N`` par ``10``. Cela permet au compilateur de ne traiter que des tableaux de taille fixe. - -Un tableau à une dimension peut s'utiliser avec une syntaxe similaire à celle utilisée par Java. Dans un tableau contenant ``n`` éléments, le premier se trouve à l'indice ``0`` et le dernier à l'indice ``n-1``. L'exemple ci-dessous présente le calcul de la somme des éléments d'un vecteur. - -.. literalinclude:: /C/S2-src/array.c - :language: c - :encoding: utf-8 - :start-after: ///CCC - :end-before: ///DDD - -Le langage C permet aussi la manipulation de matrices carrées ou rectangulaires qui sont composées d'éléments d'un même type. L'exemple ci-dessous calcule l'élément minimum d'une matrice rectangulaire. Il utilise la constante ``FLT_MAX`` qui correspond au plus grand nombre réel représentable avec un ``float`` et qui est définie dans `float.h`_. - -.. literalinclude:: /C/S2-src/array.c - :language: c - :encoding: utf-8 - :start-after: ///EEE - :end-before: ///FFF - -Les compilateurs récents qui supportent [C99]_ permettent l'utilisation de tableaux dont la taille n'est connue qu'à l'exécution. Nous en reparlerons ultérieurement. - -Caractères et chaînes de caractères ------------------------------------ - -Historiquement, les caractères ont été représentés avec des séquences -de bits de différentes longueurs. Les premiers ordinateurs utilisaient -des blocs de cinq bits. Ceux-ci permettaient de représenter 32 valeurs -différentes. Cinq bits ne permettent pas facilement de représenter à -la fois les chiffres et les lettres et les premiers ordinateurs -utilisaient différentes astuces pour supporter ces caractères sur 5 -bits. Ensuite, des représentations sur six puis sept et huit bits -ont été utilisées. Au début des années septante, le code de caractères -ASCII sur ``7`` et ``8`` bits s'est imposé sur un grand nombre -d'ordinateurs et a été utilisé comme standard pour de nombreuses -applications et notamment sur Internet :rfc:`20`. La table de -caractères ASCII définit une correspondance entre des séquences de -bits et des caractères. :rfc:`20` contient la table des caractères -ASCII représentés sur 7 bits. À titre d'exemple, le chiffre `0` -correspond à l'octet `0b00110000` et le chiffre `9` à l'octet -`0b00111001`. La lettre `a` correspond à l'octet `0b01100001` et la -lettre `A` à l'octet `0b01000001`. De nombreux détails sur la table ASCII sont disponibles sur la page Wikipedia: https://en.wikipedia.org/wiki/ASCII - -Les inventeurs du C se sont appuyés sur la table ASCII et ont choisi -de représenter un caractère en utilisant un octet. Cela correspond au -type ``char`` que nous avons déjà évoqué. - -Concernant le type ``char``, il est utile de noter qu'un ``char`` est -considéré en C comme correspondant à un entier. Cela implique qu'il -est possible de faire des manipulations numériques sur les -caractères. À titre d'exemple, une fonction `toupper(3)`_ permettant -de transformer un caractère représentant une minuscule dans le -caractère représentant la majuscule correspondante peut s'écrire : - -.. literalinclude:: /C/S2-src/toupper.c - :language: c - :encoding: utf-8 - :start-after: ///AAA - :end-before: ///BBB - - -En pratique, l'utilisation de la table ASCII pour représenter des -caractères souffre d'une limitation majeure. Avec `7` ou `8` bits il -n'est pas possible de représenter exactement tous les caractères -écrits de toutes les langues. Une table des caractères sur `7` bits -est suffisante pour les langues qui utilisent peu de caractères -accentués comme l'anglais. Pour le français et de nombreuses langues -en Europe occidentale, la table sur `8` bits est suffisante et la norme -ISO-8859_ contient des tables de caractères `8` bits pour de -nombreuses langues. La norme :term:`Unicode` va plus loin en permettant de -représenter les caractères écrits de toutes les langues connues -sur Terre. Une description détaillée du support de ces types de -caractères sort du cadre de ce cours sur les systèmes -informatiques. Il est cependant important que vous soyez conscient de -cette problématique pour pouvoir la prendre en compte lorsque vous -développerez des applications qui doivent traiter du texte dans -différentes langues. - -À titre d'exemple, la fonction `toupper(3)`_ qui est implémentée dans -les versions récentes de Linux est nettement plus complexe que celle -que nous avons vue ci-dessus. Tout d'abord, la fonction `toupper(3)`_ -prend comme argument un ``int`` et non un ``char``. Cela lui permet -d'accepter des caractères dans n'importe quel encodage. Ensuite, le -traitement qu'elle effectue dépend du type d'encodage qui a été -défini via `setlocale(3)`_ (voir `locale(7)`_). - - -.. see http://en.wikipedia.org/wiki/List_of_binary_codes - -Dans la suite de ce document, nous supposerons qu'un caractère -est toujours représentable en utilisant le type ``char`` permettant de -stocker un octet. - -En C, les chaînes de caractères sont représentées sous la forme d'un -tableau de caractères. Une chaîne de caractères peut être initialisée de -différentes façons reprises ci-dessous. - -.. code-block:: c - - char name1[] = { 'U', 'n', 'i', 'x' }; - char name2[] = { "Unix" }; - char name3[] = "Unix"; - - - -Lorsque la taille de la chaîne de caractères n'est pas indiquée à -l'initialisation (c'est-à -dire dans les deux dernières lignes -ci-dessus), le compilateur C la calcule et alloue un tableau -permettant de stocker la chaîne de caractères suivie du caractère ``\0`` -qui par convention termine `toujours` les chaînes de caractères en C. -En mémoire, la chaîne de caractères correspondant à ``name3`` occupe donc cinq -octets. Les quatre premiers contiennent les caractères `U`, `n`, `i` -et `x` et le cinquième le caractère ``\0``. Il est important de bien se -rappeler cette particularité du langage C car comme nous le verrons -plus tard ce choix a de nombreuses conséquences. - -Cette particularité permet d'implémenter facilement des -fonctions de manipulation de chaînes de -caractères. À titre d'exemple, la fonction ci-dessous calcule -la longueur d'une chaîne de caractères. - -.. literalinclude:: /C/S2-src/strlen.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Contrairement à des langages comme Java, C ne fait aucune vérification -sur la façon dont un programme manipule un tableau. En C, il est tout -à fait légal d'écrire le programme suivant : - -.. code-block:: c - - char name[5] = "Unix"; - printf("%c", name[6]); - printf("%c", name[12345]); - printf("%c", name[-1]); - -En Java, tous les accès au tableau ``name`` en dehors de la zone -mémoire réservée provoqueraient une ``ArrayIndexOutOfBoundsException``. En -C, il n'y a pas de mécanisme d'exception et le langage présuppose que -lorsqu'un programmeur écrit ``name[i]``, il a la garantie que la valeur -``i`` sera telle qu'il accédera bien à un élément valide du tableau -``name``. Ce choix de conception du C permet d'obtenir du code plus -efficace qu'avec Java puisque l'interpréteur Java doit vérifier tous -les accès à chaque tableau lorsqu'ils sont exécutés. Malheureusement, -ce choix de conception du C est aussi à l'origine d'un très grand -nombre de problèmes qui affectent la sécurité de nombreux -logiciels. Ces problèmes sont connus sous la dénomination -:term:`buffer overflow`. Nous aurons l'occasion d'y revenir plus tard. - -Les pointeurs -------------- - -Une différence majeure entre le C et la plupart des langages de -programmation actuels est que le C est proche de la machine (langage de bas niveau) et permet -au programmeur d'interagir directement avec la mémoire où les données -qu'un programme manipule sont stockées. En Java, un programme peut -créer autant d'objets qu'il souhaite (ou presque [#fstackjava]_). Ceux-ci sont -stockés en mémoire et le :term:`garbage collector` retire de la -mémoire les objets qui ne sont plus utilisés. En C, un programme peut -aussi réserver des zones pour stocker de l'information en -mémoire. Cependant, comme nous le verrons plus tard, c'est le -programmeur qui doit explicitement allouer et libérer la mémoire. - -Les `pointeurs` sont une des caractéristiques principales du langage C -par rapport à de nombreux autres langages. Un :term:`pointeur` est -défini comme étant une variable contenant l'adresse d'une autre -variable. Pour bien comprendre le fonctionnement des pointeurs, il est -important d'avoir en tête la façon dont la mémoire est organisée sur -un ordinateur. D'un point de vue abstrait, la mémoire d'un ordinateur -peut être vue sous la forme d'une zone de stockage dans laquelle il -est possible de lire ou d'écrire de l'information. Chaque zone -permettant de stocker de l'information est identifiée par une -:term:`adresse`. La mémoire peut être vue comme une implémentation de -deux fonctions C : - - - ``data read(addr)`` est une fonction qui, sur base - d'une adresse, retourne la valeur stockée à cette adresse. - - ``void write(addr, data)`` est une fonction qui écrit la donnée - ``data`` à l'adresse ``addr`` en mémoire. - -Ces adresses sont stockées sur un nombre fixe de -bits qui dépend en général de l'architecture du microprocesseur. Les -valeurs les plus courantes aujourd'hui sont `32` et `64`. Par -convention, les adresses sont représentées sous la forme d'entiers -non signés. Sur la plupart des architectures de processeurs, une -adresse correspond à une zone mémoire permettant de stocker un octet. -Lorsque nous utiliserons une représentation graphique de la mémoire, -nous placerons toujours les adresses numériquement basses en bas de la -figure et elles croîtront vers le haut. - -Considérons l'initialisation ci-dessous et supposons qu'elle est -stockée dans une mémoire où les adresses sont encodées sur `3` -bits. Une telle mémoire dispose de huit zones permettant chacune de -stocker un octet. - -.. code-block:: c - - char name[] = "Unix"; - char c = 'Z'; - -Après exécution de cette initialisation et en supposant que rien -d'autre n'est stocké dans cette mémoire, celle-ci contiendra les -informations reprises dans la table ci-dessous. - -+-------------+-----------+ -| Adresse | Contenu | -+=============+===========+ -| 111 | 0 | -+-------------+-----------+ -| 110 | 0 | -+-------------+-----------+ -| 101 | Z | -+-------------+-----------+ -| 100 | 0 | -+-------------+-----------+ -| 011 | x | -+-------------+-----------+ -| 010 | i | -+-------------+-----------+ -| 001 | n | -+-------------+-----------+ -| 000 | U | -+-------------+-----------+ - -En langage C, l'expression ``&var`` permet de récupérer l'adresse à -laquelle une variable a été stockée. Appliquée à l'exemple ci-dessus, -l'expression ``&(name[0])`` retournerait la valeur ``0b000`` tandis que -``&c`` retournerait la valeur ``0b101``. - -L'expression ``&`` peut s'utiliser avec n'importe quel type de -donnée. Les adresses de données en mémoire sont rarement affichées, -mais quand c'est le cas, on utilise la notation hexadécimale comme -dans l'exemple ci-dessous. - -.. literalinclude:: /C/S2-src/ptr.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -L'exécution de ce fragment de programme produit la sortie suivante. - -.. literalinclude:: /C/S2-src/ptr.out - :encoding: utf-8 - :language: console - -L'intérêt des pointeurs en C réside dans la possibilité de les -utiliser pour accéder et manipuler des données se trouvant en mémoire -de façon efficace. En C, chaque pointeur a un type et le type du -pointeur indique le type de la donnée qui est stockée dans une zone -mémoire particulière. Le type est associé au pointeur lors de la -déclaration de celui-ci. - -.. code-block:: c - - int i = 1; // entier - int *ptr_i; // pointeur vers un entier - char c = 'Z'; // caractère - char *ptr_c; // pointeur vers un char - - -Grâce aux pointeurs, il est possible non seulement d'accéder à -l'adresse où une donnée est stockée, mais aussi d'accéder à la valeur -qui est stockée dans la zone mémoire pointée par le pointeur en utilisant -l'expression ``*ptr``. Il est -également possible d'effectuer des calculs sur les pointeurs comme -représenté dans l'exemple ci-dessous. - - -.. literalinclude:: /C/S2-src/ptrex.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -L'exécution de ce fragment de programme produit la sortie suivante. - -.. literalinclude:: /C/S2-src/ptrex.out - :encoding: utf-8 - :language: console - - -En pratique en C, les notations ``char*`` et ``char[]`` sont -équivalentes et l'une peut s'utiliser à la place de l'autre. En utilisant -les pointeurs, la fonction de calcul de la longueur d'une chaîne de -caractères peut se réécrire comme suit. - -.. literalinclude:: /C/S2-src/strlenptr.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Les pointeurs sont fréquemment utilisés dans les programmes écrits en langage C et il est important de bien comprendre leur fonctionnement. Un point important à bien comprendre est ce que l'on appelle l'`arithmétique des pointeurs`, c'est-à -dire la façon dont les opérations sur les pointeurs sont exécutées en langage C. Pour cela, il est intéressant de considérer la manipulation d'un tableau d'entiers à travers des pointeurs. - -.. literalinclude:: /C/src/ptr_arith.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -En mémoire, ce tableau est stocké en utilisant trois mots consécutifs de 32 bits comme le montre l'exécution du programme ci-dessous : - -.. literalinclude:: /C/src/ptr_arith.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - -.. code-block:: console - - 1020304 est à l'adresse 0x7fff5fbff750 - 5060708 est à l'adresse 0x7fff5fbff754 - 90A0B0C est à l'adresse 0x7fff5fbff758 - -La même sortie est produite avec le fragment de programme suivant qui utilise un pointeur. - -.. literalinclude:: /C/src/ptr_arith.c - :encoding: utf-8 - :language: c - :start-after: ///EEE - :end-before: ///FFF - -Ce fragment de programme est l'occasion de réfléchir sur la façon dont le C évalue les expressions qui contiennent des pointeurs. La première est l'assignation ``ptr=tab``. Lorsque ``tab`` est déclaré par la ligne ``unsigned int tab[3]``, le compilateur considère que ``tab`` est une constante qui contiendra toujours l'adresse du premier élément du tableau. Il faut noter que puisque ``tab`` est considéré comme une constante, il est interdit d'en modifier la valeur en utilisant une assignation comme ``tab=tab+1``. Le pointeur ``ptr``, par contre, correspond à une zone mémoire qui contient une adresse. Il est tout à fait possible d'en modifier la valeur. Ainsi, l'assignation ``ptr=tab`` (ou ``ptr=&(tab[0])``) place dans ``ptr`` l'adresse du premier élément du tableau. Les pointeurs peuvent aussi être modifiés en utilisant des expressions arithmétiques. - -.. code-block:: c - - ptr = ptr + 1; // ligne 1 - ptr++; // ligne 2 - ptr = ptr - 2; // ligne 3 - -Après l'exécution de la première ligne, ``ptr`` va contenir l'adresse de l'élément ``1`` du tableau ``tab`` (c'est-à -dire ``&(tab[1])``). Ce résultat peut surprendre car si l'élément ``tab[0]`` se trouve à l'adresse ``0x7fff5fbff750`` c'est cette adresse qui est stockée dans la zone mémoire correspondant au pointeur ``ptr``. On pourrait donc s'attendre à ce que l'expression ``ptr+1`` retourne plutôt la valeur ``0x7fff5fbff751``. Il n'en est rien. En C, lorsque l'on utilise des calculs qui font intervenir des pointeurs, le compilateur prend en compte le type du pointeur qui est utilisé. Comme ``ptr`` est de type ``unsigned int*``, il pointe toujours vers une zone mémoire permettant de stocker un entier non signé sur 32 bits. L'expression ``ptr+1`` revient en fait à calculer la valeur ``ptr+sizeof(unsigned int)`` et donc ``ptr+1`` correspondra à l'adresse ``0x7fff5fbff754``. Pour la même raison, l'exécution de la deuxième ligne placera l'adresse ``0x7fff5fbff758`` dans ``ptr``. Enfin, la dernière ligne calculera ``0x7fff5fbff758-2*sizeof(unsigned int)``, ce qui correspond à ``0x7fff5fbff750``. - -Il est intéressant pour terminer cette première discussion de l'arithmétique des pointeurs, de considérer l'exécution du fragment de code ci-dessous. - -.. literalinclude:: /C/src/ptr_arith.c - :encoding: utf-8 - :language: c - :start-after: ///GGG - :end-before: ///HHH - -L'exécution de ce fragment de code produit une sortie qu'il est intéressant d'analyser. - -.. code-block:: console - - ptr_char contient 0x7fff5fbff750 - 4 est à l'adresse 0x7fff5fbff750 - 3 est à l'adresse 0x7fff5fbff751 - 2 est à l'adresse 0x7fff5fbff752 - 1 est à l'adresse 0x7fff5fbff753 - -Tout d'abord, l'initialisation du pointeur ``ptr_char`` a bien stocké dans ce pointeur l'adresse en mémoire du premier élément du tableau. Ensuite, comme ``ptr_char`` est un pointeur de type ``unsigned char *``, l'expression ``*ptr_char`` a retourné la valeur de l'octet se trouvant à l'adresse ``0x7fff5fbff750``. Le pointeur ``ptr_char`` a été incrémenté en respectant l'arithmétique des pointeurs. Comme ``sizeof(unsigned char)`` retourne ``1``, la valeur stockée dans ``ptr_char`` a été incrémentée d'une seule unité par l'instruction ``ptr_char++``. En analysant les quatre ``unsigned char`` se trouvant aux adresses ``0x7fff5fbff750`` à ``0x7fff5fbff753``, on retrouve bien l'entier ``0x01020304`` qui avait été placé dans ``tab[0]``. - -.. todo:: exemples - - -Les structures --------------- - -Outre les types de données décrits ci-dessus, les programmes informatiques doivent souvent pouvoir manipuler des données plus complexes. À titre d'exemples, un programme de calcul doit pouvoir traiter des nombres complexes, un programme de gestion des étudiants doit traiter des fiches d'étudiants avec nom, prénom, numéro de matricule,... Dans les langages orientés objet comme Java, cela se fait en encapsulant des données de différents types avec les méthodes permettant leur traitement. C n'étant pas un langage orienté objet, il ne permet pas la création d'objets et de méthodes directement associées. Par contre, C permet de construire des types de données potentiellement complexes. - -C permet la définition de structures qui combinent différents types de données simples ou structurés. Contrairement aux langages orientés objet, il n'y a pas de méthode directement associée aux structures qui sont définies. Une structure est uniquement un type de données. Voici quelques exemples de structures simples en C. - -.. literalinclude:: /C/S2-src/struct.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Le premier bloc définit une structure dénommée ``coord`` qui contient trois entiers baptisés ``x``, ``y`` et ``z``. Dans une structure, chaque élément est identifié par son nom et il est possible d'y accéder directement. La variable ``point`` est de type ``struct coord`` et son élément ``x`` est initialisé à la valeur ``1`` tandis que son élément ``z`` est initialisé à la valeur ``3``. La variable ``p`` est également de type ``struct coord`` mais elle n'est pas explicitement initialisée lors de sa déclaration. - -La structure ``struct fract`` définit une fraction qui est composée de deux entiers qui sont respectivement le numérateur et le dénominateur. La structure ``struct student``, elle, définit un type de données qui comprend un numéro de matricule et deux chaînes de caractères. - -Les structures permettent de facilement regrouper des données qui sont logiquement reliées entre elles et doivent être manipulées en même temps. C permet d'accéder facilement à un élément d'une structure en utilisant l'opérateur '``.``'. Ainsi, la structure ``point`` dont nous avons parlé ci-dessus aurait pu être initialisée par les trois expressions ci-dessous : - -.. literalinclude:: /C/S2-src/struct.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - - -Dans les premières versions du langage C, une structure devait nécessairement contenir uniquement des données qui ont une taille fixe, c'est-à -dire des nombres, des caractères, des pointeurs ou des tableaux de taille fixe. Il n'était pas possible de stocker des tableaux de taille variable comme une chaîne de caractères ``char []``. Les compilateurs récents [C99]_ permettent de supporter des tableaux flexibles à l'intérieur de structures. Nous ne les utiliserons cependant pas dans le cadre de ce cours. - -Les structures sont utilisées dans différentes librairies et appels système sous Unix et Linux. Un exemple classique est la gestion du temps sur un système Unix. Un système informatique contient généralement une horloge dite `temps-réel` qui est en pratique construite autour d'un cristal qui oscille à une fréquence fixée. Ce cristal est piloté par un circuit électronique qui compte ses oscillations, ce qui permet de mesurer le passage du temps. Le système d'exploitation utilise cette horloge `temps réel` pour diverses fonctions et notamment la mesure du temps du niveau des applications. - -Un système de type Unix maintient différentes structures qui sont associées à la mesure du temps [#ftimelibc]_. La première sert à mesurer le nombre de secondes et de microsecondes qui se sont écoulées depuis le premier janvier 1970. Cette structure, baptisée ``struct timeval`` est définie dans `sys/time.h`_ comme suit : - -.. code-block:: c - - struct timeval { - time_t tv_sec; /* seconds since Jan. 1, 1970 */ - suseconds_t tv_usec; /* and microseconds */ - }; - -Cette structure est utilisée par des appels système tels que `gettimeofday(2)`_ pour notamment récupérer l'heure courante ou les appels de manipulation de temporisateurs (`timers` en anglais) tels que `getitimer(2)`_ / `setitimer(2)`_. Elle est aussi utilisée par la fonction `time(3posix)`_ de la librairie standard et est très utile pour mesurer les performances d'un programme. - -Les structures sont également fréquemment utilisées pour représenter des formats de données spéciaux sur disque comme le format des répertoires [#fdirent]_ ou les formats de paquets qui sont échangés sur le réseau [#freseau]_. - -La définition de ``struct timeval`` utilise une fonctionnalité fréquemment utilisée du C : la possibilité de définir des alias pour des noms de type de données existants. Cela se fait en utilisant l'opérateur ``typedef``. En C, il est possible de renommer des types de données existants. Ainsi, l'exemple ci-dessous utilise ``typedef`` pour définir ``Entier`` comme alias pour le type ``int`` et ``Fraction`` pour la structure ``struct fraction``. - -.. literalinclude:: /C/S2-src/typedef.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Les types ``Entier`` et ``int`` peuvent être utilisés de façon interchangeable à l'intérieur du programme une fois qu'ils ont été définis. - -.. note:: ``typedef`` en pratique - - Renommer des types de données a des avantages et des inconvénients dont il faut être conscient pour pouvoir l'utiliser à bon escient. L'utilisation de ``typedef`` peut faciliter la lecture et la portabilité de certains programmes. Lorsqu'un ``typedef`` est associé à une structure, cela facilite la déclaration de variables de ce type et permet le cas échéant de modifier la structure de données ultérieurement sans pour autant devoir modifier l'ensemble du programme. Cependant, contrairement aux langages orientés objet, des méthodes ne sont pas directement associées aux structures et la modification d'une structure oblige souvent à vérifier toutes les fonctions qui utilisent cette structure. L'utilisation de ``typedef`` permet de clarifier le rôle de certains types de données ou valeurs de retour de fonctions. À titre d'exemple, l'appel système `read(2)`_ qui permet notamment de lire des données dans un fichier retourne le nombre d'octets qui ont été lus après chaque appel. Cette valeur de retour est de type ``ssize_t``. L'utilisation de ces types permet au compilateur de vérifier que les bons types de données sont utilisés lors des appels de fonctions. - - ``typedef`` est souvent utilisé pour avoir des identifiants de types de données plus courts. Par exemple, il est très courant de remplacer le types ``unsigned`` par les abréviations ci-dessous. - - .. literalinclude:: /C/S2-src/typedef.c - :encoding: utf-8 - :language: c - :start-after: ///EEE - :end-before: ///FFF - - Soyez prudents si vous utilisez des ``typedef`` pour redéfinir des pointeurs. En C, il est tout à fait valide d'écrire les lignes suivantes. - - .. literalinclude:: /C/S2-src/typedef.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - - Malheureusement, il y a un risque dans un grand programme que le développeur oublie que ces types de données correspondent à des pointeurs qui doivent être manipulés avec soin. Le `Linux kernel coding style <http://www.kernel.org/doc/Documentation/CodingStyle>`_ contient une discussion intéressante sur l'utilisation des ``typedef``. - - -Les pointeurs sont fréquemment utilisés lors de la manipulation de structures. Lorsqu'un pointeur pointe vers une structure, il est utile de pouvoir accéder facilement aux éléments de la structure. Le langage C supporte deux notations pour représenter ces accès aux éléments d'une structure. La première notation est ``(*ptr).elem`` où ``ptr`` est un pointeur et ``elem`` l'identifiant d'un des éléments de la structure pointée par ``ptr``. Cette notation est en pratique assez peu utilisée. La notation la plus fréquente est ``ptr->elem`` dans laquelle ``ptr`` et ``->elem`` sont respectivement un pointeur et un identifiant d'élément. L'exemple ci-dessous illustre l'initialisation de deux fractions en utilisant ces notations. - -.. literalinclude:: /C/S2-src/structptr.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Les pointeurs sont fréquemment utilisés en combinaison avec des structures et on retrouve très souvent la seconde notation dans des programmes écrits en C. - - -Les fonctions -------------- - -Comme la plupart des langages, le C permet de faciliter la compréhension d'un programme -en le découpant en de nombreuses fonctions. Chacune réalise une -tâche simple. Tout comme Java, C permet la définition de fonctions qui ne retournent aucun résultat. Celles-ci sont de type ``void`` comme l'exemple trivial ci-dessous. - -.. literalinclude:: /C/S2-src/fct.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -La plupart des fonctions utiles retournent un résultat qui peut être une donnée d'un des types standard ou une structure. Cette utilisation est similaire à ce que l'on trouve dans des langages comme Java. Il faut cependant être attentif à la façon dont le langage C traite les arguments des fonctions. Le langage C utilise le `passage par valeur` des arguments. Lorsqu'une fonction est exécutée, elle reçoit les valeurs de ces arguments. Ces valeurs sont stockées dans une zone mémoire qui est locale à la fonction. Toute modification faite sur la valeur d'une variable à l'intérieur d'une fonction est donc locale à cette fonction. Les deux fonctions ci-dessous ont le même résultat et aucune des deux n'a d'effet de bord. - -.. literalinclude:: /C/S2-src/fct.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - -Il faut être nettement plus attentif lorsque l'on écrit des fonctions qui utilisent des pointeurs comme arguments. Lorsqu'une fonction a un argument de type pointeur, celui-ci est passé par valeur, mais connaissant la valeur du pointeur, il est possible à la fonction de modifier le contenu de la zone mémoire pointée par le pointeur. Ceci est illustré par l'exemple ci-dessous. - -.. literalinclude:: /C/S2-src/fct.c - :encoding: utf-8 - :language: c - :start-after: ///EEE - :end-before: ///FFF - -Lors de l'exécution de la fonction ``f``, le programme ci-dessus affiche à la console la sortie suivante : - -.. literalinclude:: /C/S2-src/fct.out - :encoding: utf-8 - :language: console - -Cet exemple illustre aussi une contrainte imposée par le langage C sur l'ordre de définition des fonctions. Pour que les fonctions ``times_two`` et ``timestwo`` puissent être utilisées à l'intérieur de la fonction ``f``, il faut qu'elles aient été préalablement définies. Dans l'exemple ci-dessus, cela s'est fait en plaçant la définition des deux fonctions avant leur utilisation. C'est une règle de bonne pratique utilisable pour de petits programmes composés de quelques fonctions. Pour des programmes plus larges, il est préférable de placer au début du code source la signature des fonctions qui y sont définies. La signature d'une fonction comprend le type de valeur de retour de la fonction, son nom et les types de ses arguments. Généralement, ces déclarations sont regroupées à l'intérieur d'un :term:`fichier header` dont le nom se termine par ``.h``. - -.. literalinclude:: /C/S2-src/fct.h - :encoding: utf-8 - :language: c - :start-after: ///HHH - :end-before: ///III - -Les fonctions peuvent évidemment recevoir également des tableaux comme arguments. Cela permet par exemple d'implémenter une fonction qui calcule la longueur d'une chaîne de caractères en itérant dessus jusqu'à trouver le caractère de fin de chaîne. - -.. literalinclude:: /C/S2-src/strlenptr.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -.. spelling:: - - ième - -Tout comme cette fonction peut accéder au `ième` caractère de la chaîne passée en argument, elle peut également et sans aucune restriction modifier chacun des caractères de cette chaîne. Par contre, comme le pointeur vers la chaîne de caractères est passé par valeur, la fonction ne peut pas modifier la zone mémoire qui est pointée par l'argument. - -Un autre exemple de fonctions qui manipulent les tableaux sont des fonctions mathématiques qui traitent des vecteurs par exemple. - -.. literalinclude:: /C/S2-src/fctargs.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - - -Ces deux fonctions peuvent être utilisées par le fragment de code ci-dessous : - -.. literalinclude:: /C/S2-src/fctargs.c - :encoding: utf-8 - :language: c - :start-after: ///EEE - :end-before: ///FFF - - -.. note:: Attention à la permissivité du compilateur C - - Certains langages comme Java sont fortement typés et le compilateur contient de nombreuses vérifications, notamment sur les types de données utilisés, qui permettent d'éviter un grand nombre d'erreurs. Le langage C est lui nettement plus libéral. Les premiers compilateurs C étaient très permissifs notamment sur les types de données passés en arguments. Ainsi, un ancien compilateur C accepterait probablement sans broncher les appels suivants : - - .. literalinclude:: /C/S2-src/fctargs.c - :encoding: utf-8 - :language: c - :start-after: ///GGG - :end-before: ///HHH - - Dans ce fragment de programme, l'appel à ``print_vecteur`` est tout à fait valide. Par contre, l'appel à ``plusun`` est lui erroné puisque le premier argument est un tableau d'entiers (ou plus précisément un pointeur vers le premier élément d'un tableau d'entiers) alors que la fonction ``plusun`` attend un entier. Inversement, le second argument est un entier à la place d'un tableau d'entiers. Cette erreur n'empêche pas le compilateur `gcc(1)`_ de compiler le programme correspondant. Il émet cependant le :term:`warning` suivant : - - .. code-block:: console - - warning: passing argument 1 of ‘plusun’ makes integer from pointer without a cast - warning: passing argument 2 of ‘plusun’ makes pointer from integer without a cast - - De nombreux programmeurs débutants ignorent souvent les warnings émis par le compilateur et se contentent d'avoir un programme compilé. C'est la source de nombreuses erreurs et de nombreux problèmes. Dans l'exemple ci-dessus, l'exécution de l'appel ``plusun(vecteur,N)`` provoquera une tentative d'accès à la mémoire dans une zone qui n'est pas allouée au processus. Dans ce cas, la tentative d'accès est bloquée par le système et provoque l'arrêt immédiat du programme sur une :term:`segmentation fault`. Dans d'autres cas, des erreurs plus subtiles mais du même type ont provoqué des problèmes graves de sécurité dans des programmes écrits en langage C. Nous y reviendrons ultérieurement. - -Pour terminer, mentionnons que les fonctions écrites en C peuvent utiliser des structures et des pointeurs vers des structures comme arguments. Elles peuvent aussi retourner des structures comme résultat. Ceci est illustré par deux variantes de fonctions permettant d'initialiser une fraction et de déterminer si deux fractions sont égales [#fegal]_. - -.. literalinclude:: /C/S2-src/struct.c - :encoding: utf-8 - :language: c - :start-after: ///EEE - :end-before: ///FFF - -Considérons d'abord les fonctions ``init`` et ``equal``. ``init`` est une fonction qui construit une structure sur base d'arguments entiers et retourne la valeur construite. ``equal`` quant à elle reçoit comme arguments les valeurs de deux structures. Elle peut accéder à tous les éléments des structures passées en argument. Comme ces structures sont passées par valeur, toute modification aux éléments de la structure est locale à la fonction ``equal`` et n'est pas répercutée sur le code qui a appelé la fonction. - -Les fonctions ``initptr`` et ``equalptr`` utilisent toutes les deux des pointeurs vers des ``struct fraction`` comme arguments. Ce faisant, elles ne peuvent modifier la valeur de ces pointeurs puisqu'ils sont passés comme valeurs. Par contre, les deux fonctions peuvent bien entendu modifier les éléments de la structure qui se trouvent dans la zone de mémoire pointée par le pointeur. C'est ce que ``initptr`` fait pour initialiser la structure. ``equalptr`` par contre se contente d'accéder aux éléments des structures passées en argument sans les modifier. Le fragment de code ci-dessous illustre comment ces fonctions peuvent être utilisées en pratique. - -.. literalinclude:: /C/S2-src/struct.c - :encoding: utf-8 - :language: c - :start-after: ///GGG - :end-before: ///HHH - - -Les expressions de manipulation de bits ---------------------------------------- - -La plupart des langages de programmation sont spécialisés dans la manipulation des types de données classiques comme les entiers, les réels et les chaînes de caractères. Comme nous l'avons vu, le langage C permet de traiter ces types de données. En outre, il permet au programmeur de pouvoir facilement manipuler les bits qui se trouvent en mémoire. Pour cela, le langage C définit des expressions qui correspondent à la plupart des opérations de manipulation de bits que l'on retrouve dans les langages d'assemblage. Les premières opérations sont les opérations logiques. - -La première opération logique est la négation :term:`négation` (:term:`NOT` en anglais). Elle prend comme argument un bit et retourne le bit inverse. Comme toutes les opérations logiques, elle peut se définir simplement sous la forme d'une table de vérité. Dans des formules mathématiques, la négation est souvent représentée sous la forme :math:`\neg{A}`. - -=== =========== -A NOT(A) -=== =========== -0 1 -1 0 -=== =========== - -La deuxième opération est la :term:`conjonction logique` (:term:`AND` en anglais). Cette opération prend deux arguments binaires et retourne un résultat binaire. Dans des formules mathématiques, la conjonction logique est souvent représentée sous la forme :math:`A \wedge B`. -Elle se définit par la table de vérité suivante : - -=== === ============ -A B A AND B -=== === ============ -0 0 0 -0 1 0 -1 0 0 -1 1 1 -=== === ============ - -La troisième opération est la :term:`disjonction logique` (:term:`OR` en anglais). Cette opération prend deux arguments binaires. Dans des formules mathématiques, la disjonction logique est souvent représentée sous la forme :math:`A \vee B`. -Elle se définit par la table de vérité suivante. - -=== === =========== -A B A OR B -=== === =========== -0 0 0 -0 1 1 -1 0 1 -1 1 1 -=== === =========== - -Enfin, une dernière opération logique intéressante est le :term:`ou exclusif` (:term:`XOR` en anglais). Celle-ci se définit par la table de vérité ci-dessous. Cette opération est parfois représentée mathématiquement comme :math:`A \oplus B`. - -=== === ============ -A B A XOR B -=== === ============ -0 0 0 -0 1 1 -1 0 1 -1 1 0 -=== === ============ - -.. spelling:: - - De Morgan - - -Ces opérations peuvent être combinées entre elles. Pour des raisons technologiques, les circuits logiques implémentent plutôt les opérations NAND (qui équivaut à AND suivi de NOT) ou NOR (qui équivaut à OR suivi de NOT). Il est également important de mentionner les lois formulées par De Morgan qui peuvent se résumer par les équations suivantes : - - - :math:`\neg{(A \wedge B)}=\neg{A} \vee \neg{B}` - - :math:`\neg{(A \vee B)}=\neg{A} \wedge \neg{B}` - -Ces opérations binaires peuvent s'étendre à des séquences de bits. Voici quelques exemples qui permettent d'illustrer ces opérations sur des octets. - -.. literalinclude:: /C/S2-src/exprbin.out - :encoding: utf-8 - :language: console - -En C, ces expressions logiques s'utilisent comme dans le fragment de code suivant. En général, elles s'utilisent sur des représentations non signées, souvent des ``unsigned char`` ou des ``unsigned int``. - -.. literalinclude:: /C/S2-src/exprbin.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -En pratique, les opérations logiques sont utiles pour effectuer des manipulations au niveau des bits de données stockées en mémoire. Une utilisation fréquente dans certaines applications réseaux ou systèmes est de forcer certains bits à prendre la valeur ``0`` ou ``1``. La conjonction logique permet de forcer facilement un bit à zéro tandis que la disjonction logique permet de forcer facilement un bit à un. L'exemple ci-dessous montre comment forcer les valeurs de certains bits dans un ``unsigned char``. Il peut évidemment se généraliser à des séquences de bits plus longues. - -.. literalinclude:: /C/S2-src/exprbin.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - -.. spelling:: - - Vernam - -L'opération XOR joue un rôle important dans certaines applications. La plupart des méthodes de chiffrement et de déchiffrement utilisent de façon extensive cette opération. Une des propriétés intéressantes de l'opération XOR est que :math:`(A \oplus B) \oplus B=A`. Cette propriété est largement utilisée par les méthodes de chiffrement. La méthode développée par Vernam au début du vingtième siècle s'appuie sur l'opération XOR. Pour transmettre un message `M` de façon sûre, elle applique l'opération XOR bit à bit entre tous les bits du message `M` et une clé `K` doit avoir au moins le même nombre de bits que `M`. Si cette clé `K` est totalement aléatoire et n'est utilisée qu'une seule fois, alors on parle de *one-time-pad*. On peut montrer que dans ce cas, la méthode de chiffrement est totalement sûre. En pratique, il est malheureusement difficile d'avoir une clé totalement aléatoire qui soit aussi longue que le message à transmettre. Le programme ci-dessous implémente cette méthode de façon triviale. La fonction `memfrob(3)`_ de la librairie :term:`GNU` utilise également un chiffrement via un XOR. - -.. literalinclude:: /C/S2-src/xor.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -.. note:: Ne pas confondre expressions logiques et opérateurs binaires. - - En C, les symboles utilisés pour les expressions logiques (``||`` et ``&&``) sont très proches de ceux utilisés pour représenter les opérateurs binaires (`|` et `&`). Il arrive parfois qu'un développeur confonde ``&`` avec ``&&``. Malheureusement, le compilateur ne peut pas détecter une telle erreur car dans les deux cas le résultat attendu est généralement du même type. - - .. code-block:: console - - 0b0100 & 0b0101 = 0b0100 - 0b0100 && 0b0101 = 0b0001 - 0b0100 | 0b0101 = 0b0101 - 0b0100 || 0b0101 = 0b0001 - - Un autre point important à mentionner concernant les expressions logiques est qu'en C celles-ci sont évaluées de gauche à droite. Cela implique que dans l'expression ``( expr1 && expr2 )``, le compilateur C va d'abord évaluer l'expression ``expr1``. Si celle-ci est évaluée à la valeur ``0``, la seconde expression ne sera pas évaluée. Cela peut être très utile lorsque l'on doit exécuter du code si un pointeur est non-``NULL`` et qu'il pointe vers une valeur donnée. Dans ce cas, la condition sera du type ``((ptr != NULL) && (ptr->den > 0))``. - -Pour terminer, le langage C supporte des expressions permettant le décalage à gauche ou à droite à l'intérieur d'une suite de bits non signée. - - - ``a = n >> B`` décale les bits représentants ``n`` de ``B`` bits vers la droite et place le résultat dans la variable ``a``. - - ``a = n << B`` décale les bits représentants ``n`` de ``B`` bits vers la gauche et place le résultat dans la variable ``a``. - -Ces opérations de décalage permettent différentes manipulations de bits. À titre d'exemple, la fonction ``int2bin`` utilise à la fois des décalages et des masques pour calculer la représentation binaire d'un entier non signé et la placer dans une chaîne de caractères. - -.. literalinclude:: /C/S2-src/exprbin.c - :encoding: utf-8 - :language: c - :start-after: ///EEE - :end-before: ///FFF - - -.. rubric:: Footnotes - - -.. [#fexposant] En pratique, le format binaire contient :math:`127+exp` en simple précision et non l'exposant `exp`. Ce choix facilite certaines comparaisons entre nombres représentés en virgule flottante. Une discussion détaillée de la représentation binaire des nombres en virgule flottante sort du cadre de ce cours dédié aux systèmes informatiques. Une bonne référence à ce sujet est [Goldberg1991]_. - -.. [#fexemple] Source : http://en.wikipedia.org/wiki/Single-precision_floating-point_format - -.. [#fstackjava] En pratique, l'espace mémoire accessible à un programme Java est limité par différents facteurs. Voir notamment le paramètre ``-Xm`` de la machine virtuelle Java http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/java.html - -.. [#ftimelibc] Une description plus détaillée des différentes possibilités de mesure du temps via les fonctions de la librairie standard est disponible dans le chapitre `21 <http://www.gnu.org/software/libc/manual/html_node/Date-and-Time.html>`_ du `manuel <http://www.gnu.org/software/libc/manual/html_node/Date-and-Time.html>`_ de la :term:`libc`. - -.. [#fdirent] Voir notamment `fs(5)`_ pour des exemples relatifs aux systèmes de fichiers. Une analyse détaillée des systèmes de fichiers sort du cadre de ce cours. - -.. spelling:: - - IP - -.. [#freseau] Parmi les exemples simples, on peut citer la structure ``struct ipv6hdr`` qui correspond à l'entête du protocole IP version 6 et est définie dans `linux/ipv6.h`_. - -.. [#fegal] Cette définition de l'égalité entre fractions suppose que les fractions à comparer sont sous forme irréductible. Le lecteur est invité à écrire la fonction générale permettant de tester l'égalité entre fractions réductibles. diff --git a/Theorie/C/figures/figures-001-c.png b/Theorie/C/figures/figures-001-c.png deleted file mode 100644 index 99354a4e0b5a8d096dda4ede22f501ff937d0e5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23631 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 FCIFWa<$?eJ diff --git a/Theorie/C/figures/figures-007-c.png b/Theorie/C/figures/figures-007-c.png deleted file mode 100644 index 79332d99e8efb28736d8d949a0e7505f33a46306..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70203 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 Q0j4MhPgg&ebxsLQ0Dg{Y(EtDd diff --git a/Theorie/C/intro-C.rst b/Theorie/C/intro-C.rst deleted file mode 100644 index 566d3e5..0000000 --- a/Theorie/C/intro-C.rst +++ /dev/null @@ -1,229 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012, 2019 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Le langage C -============ - - -Différents langages permettent au programmeur de construire des programmes qui seront exécutés par le processeur. En réalité, le processeur ne comprend qu'un langage : le langage machine. Ce langage est un langage binaire dans lequel toutes les commandes et toutes les données sont représentés sous la forme de séquences de bits. - -.. commentaire Sur certains processeurs, ces séquences ont une taille fixe (par exemple 32 ou 64 bits). C'est le cas par exemple sur certains processeurs de type :term:`RISC`. D'autres processeurs supportent des instructions en langage machine qui sont encodées sous la forme d'un nombre variables de bits. C'est le cas de processeurs de type :term:`CISC` et notamment les processeurs de la famille :term:`x86` développés initialement par intel et qui sont largement utilisés de nos jours. - -Le langage machine est peu adapté aux humains et il est extrêmement rare qu'un informaticien doive manipuler des programmes directement en langage machine. Par contre, pour certaines tâches bien spécifiques, comme par exemple le développement de routines spéciales qui doivent être les plus rapides possibles ou qui doivent interagir directement avec le matériel, il est important de pouvoir efficacement générer du langage machine. Cela peut se faire en utilisant un langage d'assemblage. Chaque famille de processeurs a un langage d'assemblage qui lui est propre. Le langage d'assemblage permet d'exprimer de façon symbolique les différentes instructions qu'un processeur doit exécuter. Nous aurons l'occasion de traiter à plusieurs reprises des exemples en langage d'assemblage dans le cadre de ce cours. Cela nous permettra de mieux comprendre la façon dont le processeur fonctionne et exécute les programmes. Le langage d'assemblage est converti en langage machine grâce à un :term:`assembleur`. - -Le langage d'assemblage est le plus proche du processeur. Il permet d'écrire des programmes compacts et efficaces. C'est aussi souvent la seule façon d'utiliser des instructions spéciales du processeur qui permettent d'interagir directement avec le matériel pour par exemple commander les dispositifs d'entrée/sortie. C'est essentiellement dans les systèmes embarqués qui disposent de peu de mémoire et pour quelques fonctions spécifiques des systèmes d'exploitation que le langage d'assemblage est utilisé de nos jours. La plupart des programmes applicatifs et la grande majorité des systèmes d'exploitation sont écrits dans des langages de plus haut niveau. - -Le langage :term:`C` [KernighanRitchie1998]_, développé dans les années 70 pour écrire les premières versions du système d'exploitation :term:`Unix`, est aujourd'hui l'un des langages de programmation les plus utilisés pour développer des programmes qui doivent être rapides ou doivent interagir avec le matériel. La plupart des systèmes d'exploitation sont écrits en langage C. - -Le langage C a été conçu à l'origine comme un langage proche du processeur qui peut être facilement compilé, c'est-à -dire traduit en langage machine, tout en conservant de bonnes performances. - -La plupart des livres qui abordent la programmation en langage C commencent par présenter un programme très simple qui affiche à l'écran le message `Hello, world!`. - -.. literalinclude:: src/hello.c - :language: c - -Pour être exécuté, ce programme doit être compilé. Il existe de nombreux compilateurs permettant de transformer le langage C en langage machine. Dans le cadre de ce cours, nous utiliserons `gcc(1)`_. Dans certains cas, nous pourrons être amenés à utiliser d'autres compilateurs comme :term:`llvm`. - -La compilation du programme :download:`src/hello.c` peut s'effectuer comme suit sur une machine de type Unix : - -.. code-block:: console - - $ gcc -Wall -o hello hello.c - $ ls -l - total 80 - -rwxr-xr-x 1 obo obo 8704 15 jan 22:32 hello - -rw-r--r-- 1 obo obo 288 15 jan 22:32 hello.c - -`gcc(1)`_ supporte de très nombreuses options et nous aurons l'occasion de discuter de plusieurs d'entre elles dans le cadre de ce cours. Pour cette première utilisation, nous avons choisi l'option `-Wall` qui force `gcc(1)`_ à afficher tous les messages de type :term:`warning` (dans cet exemple il n'y en a pas) et l'option `-o` suivie du nom de fichier `hello` qui indique le nom du fichier dans lequel le programme exécutable doit être sauvegardé par le compilateur [#fgccaout]_. - -Lorsqu'il est exécuté, le programme `hello` affiche simplement le message suivant sur la sortie standard : - -.. code-block:: console - - $ ./hello - Hello, world! - $ - -Même si ce programme est très simple, il illustre quelques concepts de base en langage C. Tout d'abord comme en Java, les compilateurs récents supportent deux façons d'indiquer des commentaires en C : - - - un commentaire sur une ligne est précédé des caractères `//` - - un commentaire qui comprend plusieurs lignes débute par `/*` et se termine par `*/` - -Ensuite, un programme écrit en langage C comprend principalement des expressions en langage C mais également des expressions qui doivent être traduites par le :term:`préprocesseur`. Lors de la compilation d'un fichier en langage C, le compilateur commence toujours par exécuter le préprocesseur. Celui-ci implémente différentes formes de macros qui permettent notamment d'inclure des fichiers (directives ``#include``), de compiler de façon conditionnelle certaines lignes ou de définir des constantes. Nous verrons différentes utilisations du préprocesseur C dans le cadre de ce cours. À ce stade, les trois principales fonctions du préprocesseur sont : - - - définir des substitutions via la macro ``#define``. Cette macro est très fréquemment utilisée pour définir des constantes ou des substitutions qui sont valables dans l'ensemble du programme. - - .. code-block:: c - - #define ZERO 0 - #define STRING "SINF1252" - - - importer (directive ``#include``) un fichier. Ce fichier contient généralement des prototypes de fonctions et des constantes. En langage C, ces fichiers qui sont inclus dans un programme sont appelés des `header files` et ont par convention un nom se terminant par ``.h``. Le programme :download:`src/hello.c` ci-dessus importe deux fichiers `headers` standards : - - - ``<stdio.h>`` : contient la définition des principales fonctions de la librairie standard permettant l'interaction avec l'entrée et la sortie standard, et notamment `printf(3)`_ - - ``<stdlib.h>``: contient la définition de différentes fonctions et constantes de la librairie standard et notamment ``EXIT_SUCCESS`` et ``EXIT_FAILURE``. Ces constantes sont définies en utilisant la macro ``#define`` du préprocesseur - - .. code-block:: c - - #define EXIT_FAILURE 1 - #define EXIT_SUCCESS 0 - - - inclure du code sur base de la valeur d'une constante définie par un ``#define``. Ce contrôle de l'inclusion de code sur base de la valeur de constantes est fréquemment utilisé pour ajouter des lignes qui ne doivent être exécutées que lorsque l'on veut déboguer un programme. C'est aussi souvent utilisé pour faciliter la portabilité d'un programme entre différentes variantes de Unix, mais cette utilisation sort du cadre de ce cours. - - .. code-block:: c - - #define DEBUG - /* ... */ - #ifdef DEBUG - printf("debug : ..."); - #endif /* DEBUG */ - -Il est également possible de définir des macros qui prennent un ou plusieurs paramètres [CPP]_. - - -Les `headers` standards sont placés dans des répertoires bien connus du système. Sur la plupart des variantes de Unix ils se trouvent dans le répertoire ``/usr/include/``. Nous aurons l'occasion d'utiliser régulièrement ces fichiers standards dans le cadre du cours. - -Le langage Java a été largement inspiré du langage C et de nombreuses constructions syntaxiques sont similaires en Java et en C. Un grand nombre de mots clés en C ont le même rôle qu'en Java. Les principaux types de données primitifs supportés par le C sont : - - - ``int`` et ``long`` : utilisés lors de la déclaration d'une variable de type entier - - ``char`` : utilisé lors de la déclaration d'une variable permettant de stocker un caractère - - ``double`` et ``float`` : utilisés lors de la déclaration d'une variable permettant de stocker un nombre représenté en virgule flottante. - -Notez que dans les premières versions du langage C, contrairement à Java, il n'y avait pas de type spécifique permettant de représenter un booléen. Dans de nombreux programmes écrits en C, les booléens sont représentés par des entiers et les valeurs booléennes sont définies [#fbool]_ comme suit. - -.. code-block:: c - - #define false 0 - #define true 1 - -Les compilateurs récents qui supportent le type booléen permettent de déclarer des variables de type ``bool`` et contiennent les définitions suivantes [#fbool]_ dans le header standard `stdbool.h`_ de [C99]_. - -.. code-block:: c - - #define false (bool)0 - #define true (bool)1 - -Au-delà des types de données primitifs, Java et C diffèrent et nous aurons l'occasion d'y revenir dans un prochain chapitre. Le langage C n'est pas un langage orienté objet et il n'est donc pas possible de définir d'objet avec des méthodes spécifiques en C. C permet la définition de structures, d'unions et d'énumérations sur lesquelles nous reviendrons. - -En Java, les chaînes de caractères sont représentées grâce à l'objet ``String``. En C, une chaîne de caractères est représentée sous la forme d'un tableau de caractères dont le dernier élément contient la valeur ``\0``. Alors que Java stocke les chaînes de caractères dans un objet avec une indication de leur longueur, en C il n'y a pas de longueur explicite pour les chaînes de caractères mais le caractère ``\0`` sert de marqueur de fin de chaîne de caractères. Lorsque le langage C a été développé, ce choix semblait pertinent, notamment pour des raisons de performance. Avec le recul, ce choix pose question [Kamp2011]_ et nous y reviendrons lorsque nous aborderons certains problèmes de sécurité. - -.. literalinclude:: src/string.c - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -L'exemple ci-dessus illustre l'utilisation d'un tableau de caractères pour stocker une chaîne de caractères. Lors de son exécution, ce fragment de code affiche ``String : java`` sur la sortie standard. Le caractère spécial ``\n`` indique un passage à la ligne. `printf(3)`_ supporte d'autres caractères spéciaux qui sont décrits dans sa page de manuel. - -Au niveau des constructions syntaxiques, on retrouve les mêmes boucles et tests en C et en Java : - - - test ``if (condition) { ... } else { ... }`` - - boucle ``while (condition) { ... }`` - - boucle ``do { ... } while (condition);`` - - boucle ``for (init; condition; incr) { ... }`` - -En Java, les conditions sont des expressions qui doivent retourner un résultat de type ``boolean``. Le langage C est beaucoup plus permissif puisqu'une condition est une expression qui retourne un nombre entier. - -La plupart des expressions et conditions en C s'écrivent de la même façon qu'en Java. - -Après ce rapide survol du langage C, revenons à notre programme :download:`src/hello.c`. Tout programme C doit contenir une fonction nommée ``main`` dont la signature [#fmain]_ est : - -.. code-block:: c - - int main(int argc, char *argv[]) - -Lorsque le système d'exploitation exécute un programme C compilé, il démarre son exécution par la fonction ``main`` et passe à cette fonction les arguments fournis en ligne de commande [#fenvp]_. Comme l'utilisateur peut passer un nombre quelconque d'arguments, il faut que le programme puisse déterminer combien d'arguments sont utilisés. En Java, la méthode ``main`` a comme signature ``public static void main(String args[])`` et l'attribut ``args.length`` permet de connaître le nombres de paramètres passés en arguments d'un programme. En C, le nombre de paramètres est passé dans la variable entière ``argc`` et le tableau de chaînes de caractères ``char *argv[]`` contient tous les arguments. Le programme :download:`src/cmdline.c` illustre comment un programme peut accéder à ses arguments. - - -.. literalinclude:: src/cmdline.c - :language: c - -Par convention, en C le premier argument (se trouvant à l'indice ``0`` du tableau ``argv``) est le nom du programme qui a été exécuté par l'utilisateur. Une exécution de ce programme est illustrée ci-dessous. - -.. literalinclude:: src/cmdline.out - :language: console - -Outre le traitement des arguments, une autre différence importante entre Java et C est la valeur de retour de la fonction ``main``. En C, la fonction ``main`` retourne un entier. Cette valeur de retour est passée par le système d'exploitation au programme (typiquement un :term:`shell` ou interpréteur de commandes) qui a demandé l'exécution du programme. Grâce à cette valeur de retour il est possible à un programme d'indiquer s'il s'est exécuté correctement ou non. Par convention, un programme qui s'exécute sous Unix doit retourner ``EXIT_SUCCESS`` lorsqu'il se termine correctement et ``EXIT_FAILURE`` en cas d'échec. La plupart des programmes fournis avec un Unix standard respectent cette convention. Dans certains cas, d'autres valeurs de retour non nulles sont utilisées pour fournir plus d'informations sur la raison de l'échec. -En pratique, l'échec d'un programme peut être dû aux arguments incorrects fournis par l'utilisateur ou à des fichiers qui sont inaccessibles. - -À titre d'illustration, le programme :download:`src/failure.c` est le programme le plus simple qui échoue lors de son exécution. - -.. literalinclude:: src/failure.c - :language: c - -Enfin, le dernier point à mentionner concernant notre programme :download:`src/hello.c` est la fonction ``printf``. Cette fonction de la librairie standard se retrouve dans la plupart des programmes écrits en C. Elle permet l'affichage de différentes formes de textes sur la sortie standard. Comme toutes les fonctions de la librairie standard, elle est documentée dans sa page de manuel `printf(3)`_. `printf(3)`_ prend un nombre variable d'arguments. Le premier argument est une chaîne de caractères qui spécifie le format de la chaîne de caractères à afficher. Une présentation détaillée de `printf(3)`_ prendrait de nombreuses pages. À titre d'exemple, voici un petit programme utilisant `printf(3)`_ - -.. literalinclude:: src/printf.c - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lors de son exécution, ce programme affiche : - -.. literalinclude:: src/printf.out - :language: console - -.. todo: expliquer les fonctions au minimum void et int -.. todo: prendre comme exemple un filtre qui fait isdigit et extrait d'un stream les chiffres uniquement. faisable avec getchar - - -Le langage C permet bien entendu la définition de fonctions. Outre la fonction ``main`` qui doit être présente dans tout programme, le langage C permet la définition de fonctions qui retournent ou non une valeur. En C, comme en Java, une fonction de type ``void`` ne retourne aucun résultat tandis qu'une fonction de type ``int`` retournera un entier. Le programme ci-dessous présente deux fonctions simples. La première, ``usage`` ne retourne aucun résultat. Elle affiche un message d'erreur sur la sortie d'erreur standard et termine le programme via `exit(2)`_ avec un code de retour indiquant un échec. La seconde, ``digit`` prend comme argument un caractère et retourne ``1`` si c'est un chiffre et ``0`` sinon. Le code de cette fonction peut paraître bizarre à un programmeur habitué à Java. En C, les `char` sont représentés par l'entier qui correspond au caractère dans la table des caractères utilisées (voir :rfc:`20` pour une table ASCII simple). -Toutes les tables de caractères placent les chiffres ``0`` à ``9`` à des positions consécutives. En outre, en C une expression a priori booléenne comme ``a < b`` est définie comme ayant la valeur ``1`` si elle est vraie et ``0`` sinon. Il en va de même pour les expressions qui sont combinées en utilisant ``&&`` ou ``||``. Enfin, les fonctions `getchar(3)`_ et `putchar(3)`_ sont des fonctions de la librairie standard qui permettent respectivement de lire (écrire) un caractère sur l'entrée (la sortie) standard. - - -.. literalinclude:: src/filterdigit.c - :language: c - - - - - -.. topic:: Pages de manuel - - Les systèmes d'exploitation de la famille Unix contiennent un grand nombre de librairies, d'appels systèmes et d'utilitaires. Toutes ces fonctions et tous ces programmes sont documentés dans des pages de manuel qui sont accessibles via la commande ``man``. Les pages de manuel sont organisées en 8 sections. - - - Section 1: Utilitaires disponibles pour tous les utilisateurs - - Section 2: Appels systèmes en C - - Section 3: Fonctions de la librairie - - Section 4: Fichiers spéciaux - - Section 5: Formats de fichiers et conventions pour certains types de fichiers - - Section 6: Jeux - - Section 7: Utilitaires de manipulation de fichiers textes - - Section 8: Commandes et procédure de gestion du système - - Dans le cadre de ce cours, nous aborderons principalement les fonctionnalités décrites dans les trois premières sections des pages de manuel. L'accès à une page de manuel se fait via la commande ``man`` avec comme argument le nom de la commande concernée. Vous pouvez par exemple obtenir la page de manuel de ``gcc`` en tapant ``man gcc``. ``man`` supporte plusieurs paramètres qui sont décrits dans sa page de manuel accessible via ``man man``. Dans certains cas, il est nécessaire de spécifier la section du manuel demandée. C'est le cas par exemple pour ``printf`` qui existe comme utilitaire (section 1) et comme fonction de la librairie (section 3 - accessible via ``man 3 printf``). - - Outre ces pages de manuel locales, il existe également de nombreux sites web où l'on peut accéder aux pages de manuels de différentes versions de Unix dont notamment : - - - les pages de manuel de `Debian GNU/Linux <http://manpages.debian.net/>`_ - - les pages de manuel de `FreeBSD <http://www.freebsd.org/cgi/man.cgi>`_ - - les pages de manuel de `MacOS <http://developer.apple.com/documentation/Darwin/Reference/ManPages/index.html>`_ - - Dans la version en-ligne de ces notes, toutes les références vers un programme Unix, un appel système ou une fonction de la librairie pointent vers la page de manuel Linux correspondante. - -.. spelling:: - - Kernighan - Ritchie - -Il existe de nombreux livres consacrés au langage C. La référence la plus classique est [KernighanRitchie1998]_, mais certains éléments commencent à dater. Un tutoriel intéressant a été publié par Brian Kernighan [Kernighan]_. [King2008]_ propose une présentation plus moderne du langage C. - -.. rubric:: Footnotes - - -.. [#fgccaout] Si cette option n'était pas spécifiée, le compilateur aurait placé le programme compilé dans le fichier baptisé `a.out`. - -.. [#fbool] Formellement, le standard [C99]_ ne définit pas de type ``bool`` mais un type ``_Bool`` qui est en pratique renommé en type ``bool`` dans la plupart des compilateurs. La définition précise et complète se trouve dans `stdbool.h`_ - -.. [#fmain] Il est également possible d'utiliser dans un programme C une fonction ``main`` qui ne prend pas d'argument. Sa signature sera alors ``int main (void)``. - -.. spelling:: - - Darwin - MacOS - Windows - -.. [#fenvp] En pratique, le système d'exploitation passe également les variables d'environnement à la fonction ``main``. Nous verrons plus tard comment ces variables d'environnement sont passées du système au programme et comment celui-ci peut y accéder. Sachez cependant que sous certaines variantes de Unix, et notamment Darwin/MacOS ainsi que sous certaines versions de Windows, le prototype de la fonction ``main`` inclut explicitement ces variables d'environnement (``int main(int argc, char *argv[], char *envp[])``) - - diff --git a/Theorie/C/linker.rst b/Theorie/C/linker.rst deleted file mode 100644 index 41112ec..0000000 --- a/Theorie/C/linker.rst +++ /dev/null @@ -1,247 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012, 2019 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _complementsC: - - -Compléments de C -================ - - -Dans les sections précédentes, nous n'avons pas pu couvrir l'ensemble des concepts avancés qui sont relatifs à une bonne utilisation du langage C. Cette section contient quelques notions plus avancées qui sont importantes en pratique. - - -Pointeurs ---------- - -Les pointeurs sont très largement utilisés dans les programmes écrits en langage C. Nous avons utilisé des pointeurs vers des types de données primitifs tel que les ``int``, ``char`` ou ``float`` et des pointeurs vers des structures. En pratique, il est possible en C de définir des pointeurs vers n'importe quel type d'information qui est manipulée par un programme C. - -Un premier exemple sont les pointeurs vers des fonctions. Comme nous l'avons vu dans le chapitre précédent, une fonction est une séquence d'instructions assembleur qui sont stockées à un endroit bien précis de la mémoire. Cette localisation précise des instructions qui implémentent la fonction permet d'appeler une fonction avec l'instruction ``calll``. En C, il est parfois aussi souhaitable de pouvoir appeler une fonction via un pointeur vers cette fonction plutôt qu'en nommant la fonction directement. Cela peut rendre le code plus flexible et plus facile à adapter. Nous avons déjà utilisé des pointeurs vers des fonctions sans le savoir lorsque nous avons utilisé ``printf("fct : %p\n",f)`` où ``f`` est un nom de fonction. L'exemple ci-dessous montre une autre utilisation intéressante des pointeurs vers des fonctions. Lorsque l'on écrit du code C, il est parfois utile d'ajouter des commandes qui permettent d'afficher à l'écran des informations de débogage. L'exemple ci-dessous est une application qui supporte trois niveaux de débogage. Rien n'est affiché au niveau ``0``, une ligne s'affiche au niveau ``1`` et des informations plus détaillées sont affichées au niveau ``2``. Lors de son exécution , l'application affiche la sortie suivante. - -.. code-block:: console - - $./fctptr 0 - fct debug_print : 0x100000d28 - $ ./fctptr 1 - fct debug_print : 0x100000d32 - debug: Hello - $ ./fctptr 2 - fct debug_print : 0x100000d5f - debug: Hello - g=1 - -Cette application qui supporte plusieurs niveaux de débogage utilise pourtant toujours le même appel pour afficher l'information de débogage : ``(debug_print[debug_level])(...);``. Cet appel profite des pointeurs vers les fonctions. Le tableau ``debug_print`` est un tableau de pointeurs vers des fonctions qui chacune prend comme argument un ``char *``. La variable globale ``debug_level`` est initialisée sur base de l'argument passé au programme. - -.. literalinclude:: /C/S5-src/fctptr.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Ce n'est pas la seule utilisation des pointeurs vers des fonctions. Il y a notamment la fonction de la librairie `qsort(3)`_ qui permet de trier un tableau contenant n'importe quel type d'information. Cette fonction prend plusieurs arguments : - -.. code-block:: c - - void qsort(void *base, size_t nel, size_t width, - int (*compar)(const void *, const void *)); - -Le premier est un pointeur vers le début de la zone mémoire à trier. Le second est le nombre d'éléments à trier. Le troisième contient la taille des éléments stockés dans le tableau. Le quatrième argument est un pointeur vers la fonction qui permet de comparer deux éléments du tableau. Cette fonction retourne un entier négatif si son premier argument est inférieur au second et positif ou nul sinon. Un exemple de fonction de comparaison est la fonction `strcmp(3)`_ de la librairie standard. Un autre exemple est repris ci-dessous avec une fonction de comparaison simple qui permet d'utiliser `qsort(3)`_ pour trier un tableau de ``double``. - -.. literalinclude:: /C/S5-src/qsort.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Il est utile d'analyser en détails les arguments de la fonction de comparaison utilisée par `qsort(3)`_. Celle-ci prend deux arguments de type ``const void *``. L'utilisation de pointeurs ``void *`` est nécessaire car la fonction doit être générique et pouvoir traiter n'importe quel type de pointeurs. ``void *`` est un pointeur vers une zone quelconque de mémoire qui peut être casté vers n'importe quel type de pointeur par la fonction de comparaison. ``const`` indique que la fonction n'a pas le droit de modifier la donnée référencée par ce pointeur, même si elle reçoit un pointeur vers cette donnée. On retrouvera régulièrement cette utilisation de ``const`` dans les signatures des fonctions de la librairie pour spécifier des contraintes sur les arguments passés à une fonction [#frestrict]_. - - -Le second type de pointeurs que nous n'avons pas encore abordé en détails sont les pointeurs vers des pointeurs. En fait, nous les avons utilisés sans vraiment le savoir dans la fonction ``main``. En effet, le second argument de cette fonction est un tableau de pointeurs qui pointent chacun vers des chaînes de caractères différentes. La notation ``char *argv[]`` est équivalente à la notation ``char **argv``. ``**argv`` est donc un pointeur vers une zone qui contient des pointeurs vers des chaînes de caractères. Ce pointeur vers un pointeur doit être utilisé avec précaution. ``argv[0]`` est un pointeur vers une chaîne de caractères. La construction ``&(argv[0])`` permet donc d'obtenir un pointeur vers un pointeur vers une chaîne de caractères, ce qui correspond bien à la déclaration ``char **``. Ensuite, l'utilisation de ``*p`` pourrait surprendre. ``*p`` est un pointeur vers une chaîne de caractères. Il peut donc être comparé à ``NULL`` qui est aussi un pointeur, incrémenté et la chaîne de caractères qu'il référence peut être affichée par `printf(3)`_. - -.. literalinclude:: /C/S5-src/ptrptr.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -En pratique, ces pointeurs vers des pointeurs se retrouveront lorsque l'on doit manipuler des structures multidimensionnelles, mais aussi lorsqu'il faut qu'une fonction puisse modifier une adresse qu'elle a reçue en argument. - - - -Un autre exemple d'utilisation de pointeurs vers des pointeurs est la fonction `strtol(3)`_ de la librairie standard. Cette fonction est une généralisation des fonctions comme `atoi(3)`_. Elle permet de convertir une chaîne de caractères en un nombre. La fonction `strtol(3)`_ prend trois arguments et retourne un ``long``. Le premier argument est un pointeur vers la chaîne de caractères à convertir. Le troisième argument est la base utilisée pour cette conversion. - -.. code-block:: c - - #include <stdlib.h> - long - strtol(const char *restrict str, char **restrict endptr, int base); - -L'utilisation principale de `strtol(3)`_ est de convertir une chaîne de caractères en un nombre. La fonction `atoi(3)`_ fait de même et l'expression ``atoi("1252")`` retourne l'entier ``1252``. Malheureusement, la fonction `atoi(3)`_ ne traite pas correctement les chaînes de caractères qui ne contiennent pas un nombre. Elle ne retourne pas de code d'erreur et ne permet pas de savoir quelle partie de la chaîne de caractères passée en argument était en erreur. - -`strtol(3)`_ est un exemple de fonction qui doit retourner deux types d'informations. Tout d'abord, `strtol(3)`_ retourne un résultat (dans ce cas un nombre). Si la chaîne de caractères à convertir est erronée, `strtol(3)`_ convertit le début de la chaîne et retourne un pointeur indiquant le premier caractère en erreur. Pour bien comprendre le fonctionnement de `strtol(3)`_, considérons l'exemple ci-dessous. - -.. literalinclude:: /C/S5-src/strtol.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Lors de son exécution, ce programme affiche la sortie suivante. - -.. literalinclude:: /C/S5-src/strtol.out - :encoding: utf-8 - :language: console - -L'appel à `strtol(3)`_ prend trois arguments. Tout d'abord un pointeur vers la chaîne de caractères à convertir. Ensuite l'adresse d'un pointeur vers une chaîne de caractères. Enfin la base de conversion. La première chaîne de caractères est correcte. Elle est convertie directement. La seconde par contre contient un caractère erroné. Lors de son exécution, `strtol(3)`_ va détecter la présence du caractère ``m`` et placera un pointeur vers ce caractère dans ``*p``. Pour que la fonction `strtol(3)`_ puisse retourner un pointeur de cette façon, il est nécessaire que son second argument soit de type ``char **``. Si le second argument était de type ``char *``, la fonction `strtol(3)`_ recevrait l'adresse d'une zone mémoire contenant un caractère. Comme le langage C utilise le passage par valeur, `strtol(3)`_ pourrait modifier la caractère pointé par ce pointeur mais pas son adresse. En utilisant un second argument de type ``char **``, `strtol(3)`_ a la possibilité de modifier la valeur pointée par ce pointeur. - -Une implémentation partielle de `strtol(3)`_ pourrait être la suivante. - -.. literalinclude:: /C/S5-src/mystrtol.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Cette partie de code utilise la fonction `isdigit(3)`_ pour vérifier si les caractères présents dans la chaîne de caractères sont des chiffres. Sinon, elle fixe via son second argument la valeur du pointeur vers le caractère en erreur. Cela est réalisé par l'expression ``*endptr=(char *)(str+i);``. Il faut noter que ``*endptr`` est bien une zone mémoire pointée par le pointeur ``endptr`` reçu comme second argument. Cette valeur peut donc être modifiée. - -Il existe d'autres fonctions de la librairie standard qui utilisent des pointeurs vers des pointeurs comme arguments dont notamment `strsep(3)`_ et `strtok_r(3)`_. - - - -De grands programmes en C -------------------------- - -Lorsque l'on développe de grands programmes en C, il est préférable de découper le programme en modules. Chaque module contient des fonctions qui traitent d'un même type de problème et sont fortement couplées. A titre d'exemple, un module ``stack`` pourrait regrouper différentes fonctions de manipulation d'une pile. Un autre module pourrait regrouper les fonctions relatives au dialogue avec l'utilisateur, un autre les fonctions de gestion des fichiers, ... - -Pour comprendre l'utilisation de ces modules, considérons d'abord un programme trivial composé de deux modules. Le premier module est celui qui contient la fonction ``main``. Tout programme C doit contenir une fonction ``main`` pour pouvoir être exécuté. C'est en général l'interface avec l'utilisateur. Le second module contient une fonction générique qui est utilisée par le module principal. - -.. literalinclude:: /C/S5-src/main.c - :encoding: utf-8 - :language: c - -Un module d'un programme C est en général décomposé en deux parties. Tout d'abord, le fichier :term:`fichier header` contient les définitions de certaines constantes et les signatures des fonctions exportées par ce module. Ce fichier est en quelque sorte un résumé du module, ou plus précisément de son interface externe. Il doit être inclus dans tout fichier qui utilise les fonctions du module correspondant. Dans un tel fichier :term:`fichier header`, on retrouve généralement trois types d'informations : - - - les signatures des fonctions qui sont définies dans le module. En général, seules les fonctions qui sont destinées à être utilisées par des modules extérieures sont reprises dans le :term:`fichier header` - - les constantes qui sont utilisées à l'intérieur du module et doivent être visibles en dehors de celui-ci, notamment par les modules qui utilisent les fonctions du module. Ces constantes peuvent être définies en utilisant des directives ``#define`` du préprocesseur - - les variables globales qui sont utilisées par les fonctions du module et doivent être accessibles en dehors de celui-ci - -.. literalinclude:: /C/S5-src/min.h - :encoding: utf-8 - :language: c - -.. note:: Un :term:`fichier header` ne doit être inclus qu'une seule fois - - L'exemple de :term:`fichier header` ci-dessus illustre une convention courante dans l'écriture de ces fichiers. Parfois, il est nécessaire d'inclure un :term:`fichier header` dans un autre fichier header. Suite à cela, il est possible que les mêmes définitions d'un :term:`fichier header` soient incluses deux fois ou plus dans le même module. Cela peut causer des erreurs de compilation qui risquent de perturber certains programmeurs. Une règle de bonne pratique pour éviter ce problème est d'inclure le contenu du :term:`fichier header` de façon conditionnelle comme présenté ci-dessus. Une constante, dans ce cas ``_MIN_H_``, est définie pour le :term:`fichier header` concerné. Cette constante est définie dans la première ligne effective du :term:`fichier header`. Celui-ci n'est inclus dans un module que si cette constante n'a pas été préalablement définie. Si cette constante est connue par le préprocesseur, cela indique qu'un autre :term:`fichier header` a déjà inclus les définitions de ce fichier et qu'elles ne doivent pas être incluses une seconde fois. - -.. literalinclude:: /C/S5-src/min.c - :encoding: utf-8 - :language: c - -.. note:: Localisation des fichiers header - - Un programmeur C peut utiliser deux types de fichiers header. Il y a tout d'abord les fichiers headers standards qui sont fournis avec le système. Ce sont ceux que nous avons utilisés jusque maintenant. Ces headers standards se reconnaissent car ils sont entourés des caractères ``<`` et ``>`` dans la directive ``#include``. Ceux-ci se trouvent dans des répertoires connus par le compilateur, normalement ``/usr/include``. Les fichiers headers qui accompagnent un module se trouvent eux généralement dans le même répertoire que le module. Dans l'exemple ci-dessus, le header ``min.h`` est inclus via la directive ``#include "min.h"``. Lorsque le préprocesseur rencontre une telle directive, il cherche le fichier dans le répertoire courant. Il est possible de spécifier des répertoires qui contiennent des fichiers headers via l'argument ``-I`` de `gcc(1)`_ ou en utilisant les variables d'environnement ``GCC_INCLUDE_DIR`` ou ``CPATH``. - -Lorsque l'on doit compiler un programme qui fait appel à plusieurs modules, quelle que soit sa taille, il est préférable d'utiliser `make(1)`_ pour automatiser sa compilation. Le fichier ci-dessous est un petit exemple de :term:`Makefile` utilisable pour un tel projet. - -.. literalinclude:: /C/S5-src/Makefile2 - :encoding: utf-8 - :language: makefile - :start-after: ###AAA - :end-before: ###BBB - -La compilation d'un tel programme se déroule en plusieurs étapes. La première étape est celle du préprocesseur. Celui-ci est directement appelé par le compilateur `gcc(1)`_ mais il est également possible de l'invoquer directement via `cpp(1)`_. Le préprocesseur remplace toutes les macros telles que les ``#define`` et insère les fichiers headers sur base des directives ``#include``. La sortie du préprocesseur est utilisée directement par le compilateur. Celui-ci transforme le module en langage C en langage assembleur. Ce module en assembleur est ensuite assemblé par `as(1)`_ pour produire un :term:`fichier objet`. Ce :term:`fichier objet` n'est pas directement exécutable. Il contient les instructions en langage machine pour les différentes fonctions définies dans le module, les définitions des constantes et variables globales ainsi qu'une table reprenant tous les symboles (noms de fonction, noms de variables globales, ...) définis dans ce module. Ces phases sont exécutées pour chaque module utilisé. Par convention, les fichiers objets ont en général l'extension ``.o``. Ces fichiers objet sont créés par les deux dernières cibles du fichier ``Makefile`` ci-dessus. L'option ``-c`` passée à `gcc(1)`_ indique à `gcc(1)`_ qu'il doit générer un fichier objet sans le transformer en exécutable. Cette dernière opération est réalisée par la première cible du ``Makefile``. Dans cette cible, `gcc(1)`_ fait office d'éditeur de liens ou de :term:`linker` en anglais. Le :term:`linker` combine différents fichiers objets en faisant les liens nécessaires entre les fichiers. Dans notre exemple, le fichier ``main.o`` contient une référence vers la fonction ``min`` qui n'est pas connue lors de la compilation de ``main.c``. Par contre, cette référence est connue dans le fichier ``min.o``. L'éditeur de liens va combiner ces références de façon à permettre aux fonctions d'un module d'exécuter n'importe quelle fonction définie dans un autre module. - -La figure ci-dessous représente graphiquement les différentes étapes de compilation des modules ``min.c`` et ``main.c``. - -.. figure:: /C/figures/figures-007-c.png - :align: center - :scale: 60 - - Etapes de compilation - - -Lorsque plusieurs modules, potentiellement développés par des programmeurs qui ne se sont pas concertés, doivent être intégrés dans un grand programme, il y a des risques de conflits entre des variables et fonctions qui pourraient être définies dans plusieurs modules différents. Ainsi, deux modules pourraient définir la fonction ``int min(int, int)`` ou la variable globale ``float dist``. Le langage C intègre des facilités qui permettent d'éviter ou de contrôler ces problèmes. - -Tout d'abord, les variables locales sont locales au bloc dans lequel elles sont définies. Ce principe permet d'utiliser le même nom de variable dans plusieurs blocs d'un même fichier. Il s'étend naturellement à l'utilisation de variables locales dans des fichiers différents. - -Pour les variables globales, la situation est différente. Si une variable est définie en dehors d'un bloc dans un fichier, cette variable est considérée comme étant globale. Par défaut, elle est donc accessible depuis tous les modules qui composent le programme. Cela peut en pratique poser des difficultés si le même nom de variable est utilisé dans deux modules différents. Pour contourner ce problème, le langage C utilise ``static``. Lorsque ``static`` est placé devant une déclaration de variable en dehors d'un bloc dans un module, il indique que la variable doit être accessible à toutes les fonctions du module mais pas en dehors du module. Lorsqu'un module utilise des variables qui sont communes à plusieurs fonctions mais ne doivent pas être visibles en dehors du module, il est important de les déclarer comme étant ``static``. Lorsqu'une déclaration de variable globale est préfixée par ``extern``, cela indique au compilateur que la variable est définie dans un autre module qui sera lié ultérieurement. Le compilateur réserve une place pour cette variable dans la table des symboles du fichier objet, mais cette place ne pourra être liée à la zone mémoire qui correspond à cette variable que lorsque l'éditeur de liens combinera les différents fichiers objet entre eux. - -.. note:: Les deux utilisations de ``static`` pour des variables - - ``static`` peut être utilisé à la fois pour des variables qui sont définies en dehors d'un bloc et dans un bloc. Lorsqu'une variable est définie comme étant ``static`` hors d'un bloc dans un module, elle n'est accessible qu'aux fonctions de ce module. Par contre, lorsqu'une variable est définie comme étant ``static`` à l'intérieur d'un bloc, par exemple dans une fonction, cela indique que cette variable doit toujours se trouver à la même localisation en mémoire, quel que soit le moment où elle est appelée. Ces variables ``static`` sont placées par le compilateur dans le bas de la mémoire, avec les variables globales. Contrairement aux variables locales traditionnelles, une variable locale ``static`` garde sa valeur d'une invocation de la fonction à l'autre. En pratique, les variables locales ``static`` doivent être utilisées avec précaution et bien documentées. Un de leurs intérêt est qu'elles ne sont initialisées qu'au lancement du programme et pas à chaque invocation de la fonction où elles sont définies. - - -Il faut noter que ``static`` peut aussi précéder des déclarations de fonctions. Dans ce cas, il indique que la fonction ne doit pas être visible en dehors du module dans lequel elle est définie. Sans ``static``, une fonction déclarée dans un module est accessible depuis n'importe quel autre module. - -Afin d'illustrer l'utilisation de ``static`` et ``extern``, considérons le programme ``prog.c`` ci-dessous qui inclut le module ``module.c`` et également le module ``min.c`` présenté plus haut. - -.. literalinclude:: /C/S5-src/module.h - :encoding: utf-8 - :language: c - -.. literalinclude:: /C/S5-src/module.c - :encoding: utf-8 - :language: c - -Ce module contient deux fonctions, ``vmin`` et ``min``. ``vmin`` est accessible depuis n'importe quel module. Sa signature est reprise dans le :term:`fichier header` ``module.h``. La fonction ``min`` par contre est déclarée comme étant ``static``. Cela implique qu'elle n'est utilisable qu'à l'intérieur de ce module et invisible de tout autre module. La variable globale ``num1`` est accessible depuis n'importe quel module. La variable ``num2`` également, mais elle est initialisée dans un autre module. Enfin, la variable ``num3`` n'est accessible qu'à l'intérieur de ce module. - -.. literalinclude:: /C/S5-src/prog.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Ce module inclus les fichiers ``min.h`` et ``module.h`` qui contiennent les signatures des fonctions se trouvant dans ces deux modules. Trois variables globales sont utilisées par ce module. ``num1`` est définie dans un autre module (dans ce cas ``module.c``). ``num2`` est initialisée dans ce module mais accessible depuis n'importe quel autre module. ``num3`` est une variable globale qui est accessible uniquement depuis le module ``prog.c``. Même si cette variable porte le même nom qu'une autre variable déclarée dans ``module.c``, il n'y aura pas de conflit puisque ces deux variables sont ``static``. - -La fonction ``f`` mérite que l'on s'y attarde un peu. Cette fonction contient la définition de la variable ``static n``. Même si cette variable est locale à la fonction ``f`` et donc invisible en dehors de cette fonction, le compilateur va lui réserver une place dans la même zone que les variables globales. La valeur de cette variable ``static`` sera initialisée une seule fois : au démarrage du programme. Même si cette variable parait être locale, elle ne sera jamais réinitialisée lors d'un appel à la fonction ``f``. Comme cette variable est stockée en dehors de la pile, elle conserve sa valeur d'une invocation à l'autre de la fonction ``f``. Ceci est illustré par l'exécution du programme qui produit la sortie suivante. - -.. literalinclude:: /C/S5-src/prog.out - :encoding: utf-8 - :language: console - -Le dernier point à mentionner concernant cet exemple est relatif à la fonction ``min`` qui est utilisée dans la fonction ``main``. Le module ``prog.c`` étant lié avec ``module.c`` et ``min.c``, le linker associe à ce nom de fonction la déclaration qui se trouve dans le fichier ``min.c``. La déclaration de la fonction ``min`` qui se trouve dans ``module.c`` est ``static``, elle ne peut donc pas être utilisée en dehors de ce module. - - -Traitement des erreurs ----------------------- - -Certaines fonctions de la librairie et certains appels systèmes réussissent toujours. C'est le cas par exemple pour `getpid(2)`_. D'autres fonctions peuvent échouer et il est important de tester la valeur de retour de chaque fonction/appel système utilisé pour pouvoir réagir correctement à toute erreur. Pour certaines fonctions ou appels systèmes, il est parfois nécessaire de fournir à l'utilisateur plus d'information sur l'erreur qui s'est produite. La valeur de retour utilisée pour la plupart des fonctions de la libraire et appels systèmes (souvent un ``int`` ou un pointeur), ne permet pas de fournir de l'information précise sur l'erreur qui s'est produite. - -Les systèmes Unix utilisent la variable globale :term:`errno` pour résoudre ce problème et permettre à une fonction de la librairie ou un appel système qui a échoué de donner plus de détails sur les raisons de l'échec. Cette variable globale est définie dans `errno.h`_ qui doit être inclus par tout programme voulant tester ces codes d'erreur. Cette variable est de type ``int`` et `errno.h` contient les définitions des constantes correspondants aux cas d'erreurs possibles. Il faut noter que la librairie standard fournit également les fonctions `perror(3)`_ et `strerror(3)`_ qui facilitent l'écriture de messages d'erreur compréhensibles pour l'utilisateur. - -A titre d'exemple, le programme ci-dessous utilise `strerror(3)`_ pour afficher un message d'erreur plus parlant lors d'appels erronés à la fonction `setenv(3)`_. - -.. literalinclude:: /C/S5-src/errno.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -.. note:: La valeur de ``errno`` n'indique pas la réussite ou l'échec d'une fonction - - Il faut noter que la variable ``errno`` n'est modifiée par les fonctions de la librairie ou les appels systèmes que si l'appel échoue. Si l'appel réussit, la valeur de ``errno`` n'est pas modifiée. Cela implique qu'il ne faut surtout pas tester la valeur de ``errno`` pour déterminer si une fonction de la librairie a échoué ou réussi. Il ne faut surtout pas utiliser le pattern suivant : - - .. code-block:: c - - setenv("PATH","/usr/bin",1); - if(errno!=0) { - fprintf(stderr,"Erreur : errno=%d %s\n",errno,strerror(errno); - } - - Le code ci-dessus est erroné car il ne teste pas la valeur de retour de `setenv(3)`_. Comme les fonctions de la librairie et les appels systèmes ne modifient ``errno`` que lorsqu'une erreur survient, le code ci-dessus pourrait afficher un message d'erreur relatif à un appel système précédent qui n'a absolument rien à voir avec l'appel à la fonction `setenv(3)`_. Le code correct est évidemment de tester la valeur de retour de `setenv(3)`_ : - - .. code-block:: c - - err=setenv("PATH","/usr/bin",1); - if(err!=0) { - fprintf(stderr,"Erreur : errno=%d %s\n",errno,strerror(errno)); - } - - - -.. rubric:: Footnotes - - -.. [#frestrict] ``restrict`` est également parfois utilisé pour indiquer des contraintes sur les pointeurs passés en argument à une fonction [Walls2006]_. - - - diff --git a/Theorie/C/malloc.rst b/Theorie/C/malloc.rst deleted file mode 100644 index 4a3e263..0000000 --- a/Theorie/C/malloc.rst +++ /dev/null @@ -1,408 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012, 2019 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -Déclarations -============= - -Durant les chapitres précédents, nous avons principalement utilisé des variables locales. Celles-ci sont déclarées à l'intérieur des fonctions où elles sont utilisées. La façon dont les variables sont déclarées est importante dans un programme écrit en langage C. Dans cette section nous nous concentrerons sur des programmes C qui sont écrits sous la forme d'un seul fichier source. Nous verrons plus tard comment découper un programme en plusieurs modules qui sont répartis dans des fichiers différents et comment les variables peuvent y être déclarées. - -La première notion importante concernant la déclaration des variables est leur :term:`portée`. La portée d'une variable peut être définie comme étant la partie du programme où la variable est accessible et où sa valeur peut être modifiée. Le langage C définit deux types de portée à l'intérieur d'un fichier C. La première est la :term:`portée globale`. Une variable qui est définie en dehors de toute définition de fonction a une portée globale. Une telle variable est accessible dans toutes les fonctions présentes dans le fichier. La variable ``g`` dans l'exemple ci-dessous a une portée globale. - -.. code-block:: c - - float g; // variable globale - - int f(int i) { - int n; // variable locale - // ... - for(int j=0;j<n;j++) { // variable locale - // ... - } - //... - for(int j=0;j<n;j++) { // variable locale - // ... - } - } - - -Dans un fichier donné, il ne peut évidemment pas y avoir deux variables globales qui ont le même identifiant. Lorsqu'une variable est définie dans un `bloc`, la portée de cette variable est locale à ce bloc. On parle dans ce cas de :term:`portée locale`. La variable locale n'existe pas avant le début du bloc et n'existe plus à la fin du bloc. Contrairement aux identifiants de variables globales qui doivent être uniques à l'intérieur d'un fichier, il est possible d'avoir plusieurs variables locales qui ont le même identifiant à l'intérieur d'un fichier. C'est fréquent notamment pour les définitions d'arguments de fonction et les variables de boucles. Dans l'exemple ci-dessus, les variables ``n`` et ``j`` ont une portée locale. La variable ``j`` est définie dans deux blocs différents à l'intérieur de la fonction ``f``. - - -Le programme :download:`/C/S3-src/portee.c` illustre la façon dont le compilateur C gère la portée de différentes variables. - -.. literalinclude:: /C/S3-src/portee.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Ce programme contient deux variables qui ont une portée globale : ``g1`` et ``g2``. Ces deux variables sont définies en dehors de tout bloc. En pratique, elles sont généralement déclarées au début du fichier, même si le compilateur C accepte un définition en dehors de tout bloc et donc par exemple en fin de fichier. La variable globale ``g1`` n'est définie qu'une seule fois. Par contre, la variable ``g2`` est définie avec une portée globale et est redéfinie à l'intérieur de la fonction ``f`` ainsi que dans la boucle ``for`` de la fonction ``main``. Redéfinir une variable globale de cette façon n'est pas du tout une bonne pratique, mais cela peut arriver lorsque par mégarde on importe un fichier header qui contient une définition de variable globale. Dans ce cas, le compilateur C utilise la variable qui est définie dans le bloc le plus proche. Pour la variable ``g2``, c'est donc la variable locale ``g2`` qui est utilisée à l'intérieur de la boucle ``for`` ou de la fonction ``f``. - -Lorsqu'un identifiant de variable locale est utilisé à plusieurs endroits dans un fichier, c'est la définition la plus proche qui est utilisée. L'exécution du programme ci-dessus illustre cette utilisation des variables globales et locales. - -.. literalinclude:: /C/S3-src/portee.out - :encoding: utf-8 - :language: console - -.. note:: Utilisation des variables - - En pratique, les variables globales doivent être utilisées de façon parcimonieuse et il faut limiter leur utilisation aux données qui doivent être partagées par plusieurs fonctions à l'intérieur d'un programme. Lorsqu'une variable globale a été définie, il est préférable de ne pas réutiliser son identifiant pour une variable locale. Au niveau des variables locales, les premières versions du langage C imposaient leur définition au début des blocs. Les standards récents [C99]_ autorisent la déclaration de variables juste avant leur première utilisation un peu comme en Java. - -Les versions récentes de C [C99]_ permettent également de définir des variables dont la valeur sera constante durant toute l'exécution du programme. Ces déclarations de ces constants sont préfixées par le mot-clé ``const`` qui joue le même rôle que le mot clé ``final`` en Java. - -.. literalinclude:: /C/S3-src/const.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Il y a deux façons de définir des constantes dans les versions récentes de C [C99]_. La première est via la macro ``#define`` du préprocesseur. Cette macro permet de remplacer une chaîne de caractères (par exemple ``M_PI`` qui provient de `math.h`_) par un nombre ou une autre chaîne de caractères. Ce remplacement s'effectue avant la compilation. Dans le cas de ``M_PI`` ci-dessus, le préprocesseur remplace toute les occurrences de cette chaîne de caractères par la valeur numérique de :math:`\pi`. Lorsqu'une variable ``const`` est utilisée, la situation est un peu différente. Le préprocesseur n'intervient pas. Par contre, le compilateur réserve une zone mémoire pour la variable qui a été définie comme constante. Cela a deux avantages par rapport à l'utilisation de ``#define``. Premièrement, il est possible de définir comme constante n'importe quel type de données en C, y compris des structures ou des pointeurs alors qu'avec un ``#define`` on ne peut définir que des nombres ou des chaînes de caractères. Ensuite, comme une ``const`` est stockée en mémoire, il est possible d'obtenir son adresse et de l'examiner via un :term:`debugger`. - - -Unions et énumérations -====================== - -Les structures que nous avons présentées précédemment permettent de combiner plusieurs données de types primitifs différents entre elles. Outre ces structures (``struct``), le langage C supporte également les ``enum`` et les ``union``. Le mot-clé ``enum`` est utilisé pour définir un type énuméré, c'est-à -dire un type de donnée qui permet de stocker un nombre fixe de valeurs. Quelques exemples classiques sont repris dans le fragment de programme ci-dessous : - -.. literalinclude:: /C/S3-src/enum.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Le premier ``enum`` permet de définir le type de données ``day`` qui contient une valeur énumérée pour chaque jour de la semaine. L'utilisation d'un type énuméré rend le code plus lisible que simplement l'utilisation de constantes définies via le préprocesseur. - -.. literalinclude:: /C/S3-src/enum.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - -En pratique, lors de la définition d'un type énuméré, le compilateur C associe une valeur entière à chacune des valeurs énumérées. Une variable permettant de stocker la valeur d'un type énuméré occupe la même zone mémoire qu'un entier. - -Outre les structures, le langage C supporte également les unions. Alors qu'une structure permet de stocker plusieurs données dans une même zone mémoire, une ``union`` permet de réserver une zone mémoire pour stocker une données parmi plusieurs types possibles. Une ``union`` est parfois utilisée pour minimiser la quantité de mémoire utilisée pour une structure de données qui peut contenir des données de plusieurs types. Pour bien comprendre la différence entre une ``union`` et une ``struct``, considérons l'exemple ci-dessous. - -.. literalinclude:: /C/S3-src/union.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Une union, ``u`` et une structure, ``s`` sont déclarées dans ce fragment de programme. - -.. literalinclude:: /C/S3-src/union.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - -La structure ``s`` peut contenir à la fois un entier et un caractère. Par contre, l'``union`` ``u``, peut elle contenir un entier (``u.i``) *ou* un caractère (``u.c``), mais jamais les deux en même temps. -Le compilateur C alloue la taille pour l'``union`` de façon à ce qu'elle puisse contenir le type de donnée se trouvant dans l'``union`` nécessitant le plus de mémoire. Si les unions sont utiles dans certains cas très particulier, il faut faire très attention à leur utilisation. Lorsqu'une ``union`` est utilisée, le compilateur C fait encore moins de vérifications sur les types de données et le code ci-dessous est considéré comme valide par le compilateur : - -.. literalinclude:: /C/S3-src/union.c - :encoding: utf-8 - :language: c - :start-after: ///EEE - :end-before: ///FFF - -Lors de son exécution, la zone mémoire correspondant à l'union ``u`` sera simplement interprétée comme contenant un ``char``, même si on vient d'y stocker un entier. En pratique, lorsqu'une ``union`` est vraiment nécessaire pour des raisons d'économie de mémoire, on préférera la placer dans une ``struct`` en utilisant un type énuméré qui permet de spécifier le type de données qui est présent dans l'``union``. - -.. literalinclude:: /C/S3-src/union.c - :encoding: utf-8 - :language: c - :start-after: ///BBB - :end-before: ///XXX - -Le programmeur pourra alors utiliser cette structure en indiquant explicitement le type de données qui y est actuellement stocké comme suit. - -.. literalinclude:: /C/S3-src/union.c - :encoding: utf-8 - :language: c - :start-after: ///FFF - :end-before: ///GGG - - -Organisation de la mémoire -========================== - -Lors de l'exécution d'un programme en mémoire, le système d'exploitation charge depuis le système de fichier le programme en langage machine et le place à un endroit convenu en mémoire. Lorsqu'un programme s'exécute sur un système Unix, la mémoire peut être vue comme étant divisée en six zones principales. Ces zones sont représentées schématiquement dans la figure ci-dessous. - -.. figure:: /C/figures/figures-001-c.png - :align: center - - Organisation d'un programme Linux en mémoire - -La figure ci-dessus présente une vision schématique de la façon dont un processus Linux est organisé en mémoire centrale. Il y a d'abord une partie de la mémoire qui est réservée au système d'exploitation (OS dans la figure). Cette zone est représentée en grisé dans la figure. - -Le segment text ---------------- - -La première zone est appelée par convention le :term:`segment text`. Cette zone se situe dans la partie basse de la mémoire [#fetext]_. C'est dans cette zone que sont stockées toutes les instructions qui sont exécutées par le micro-processeur. Elle est généralement considérée par le système d'exploitation comme étant uniquement accessible en lecture. Si un programme tente de modifier son :term:`segment text`, il sera immédiatement interrompu par le système d'exploitation. C'est dans le segment text que l'on retrouvera les instructions de langage machine correspondant aux fonctions de calcul et d'affichage du programme. Nous en reparlerons lorsque nous présenterons le fonctionnement du langage d'assemblage. - -Le segment des données initialisées ------------------------------------ - -La deuxième zone, baptisée :term:`segment des données initialisées`, contient l'ensemble des données et chaînes de caractères qui sont utilisées dans le programme. Ce segment contient deux types de données. Tout d'abord, il comprend l'ensemble des variables globales explicitement initialisées par le programme (dans le cas contraire, elles sont initialisées à zéro par le compilateur et appartiennent alors au :term:`segment des données non-initialisées`). Ensuite, les constantes et les chaînes de caractères utilisées par le programme. - -.. literalinclude:: /C/S3-src/dataseg.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Dans le programme ci-dessus, la variable ``g_init``, la constante ``un`` et les tableaux ``tab`` et ``cours`` sont dans la zone réservée aux variables initialisées. En pratique, leur valeur d'initialisation sera chargée depuis le fichier exécutable lors de son chargement en mémoire. Il en va de même pour toutes les chaînes de caractères qui sont utilisées comme arguments aux appels à ``printf(3)``. - -L'exécution de ce programme produit la sortie standard suivante. - -.. literalinclude:: /C/S3-src/dataseg.out - :encoding: utf-8 - :language: console - - -Cette sortie illustre bien les adresses où les variables globales sont stockées. La variable globale ``msg`` fait notamment partie du :term:`segment des données non-initialisées`. - -Le segment des données non-initialisées ---------------------------------------- - -La troisième zone est le :term:`segment des données non-initialisées`, réservée aux variables non-initialisées. Cette zone mémoire est initialisée à zéro par le système d'exploitation lors du démarrage du programme. Dans l'exemple ci-dessus, c'est dans cette zone que l'on stockera les valeurs de la variable ``g`` et des tableaux ``array`` et ``msg``. - -.. note:: Initialisation des variables - - Un point important auquel tout programmeur C doit faire attention est l'initialisation correcte de l'ensemble des variables utilisées dans un programme. Le compilateur C est nettement plus permissif qu'un compilateur Java et il autorisera l'utilisation de variables avant qu'elles n'aient été explicitement initialisées, ce qui peut donner lieu à des erreurs parfois très difficiles à corriger. - - En C, par défaut les variables globales qui ne sont pas explicitement initialisées dans un programme sont initialisées à la valeur zéro par le compilateur. Plus précisément, la zone mémoire qui correspond à chaque variable globale non-explicitement initialisée contiendra des bits valant 0. Pour les variables locales, le langage C n'impose aucune initialisation par défaut au compilateur. Par souci de performance et sachant qu'un programmeur ne devrait jamais utiliser de variable locale non explicitement initialisée, le compilateur C n'initialise pas par défaut la valeur de ces variables. Cela peut avoir des conséquences ennuyeuses comme le montre l'exemple ci-dessous. - - .. literalinclude:: /C/S3-src/initvar.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - Cet extrait de programme contient deux fonctions erronées. La seconde, baptisée ``read(void)`` déclare un tableau local et retourne la somme des éléments de ce tableau sans l'initialiser. En Java, une telle utilisation d'un tableau non-initialisé serait détectée par le compilateur. En C, elle est malheureusement valide (mais fortement découragée évidemment). La première fonction, ``init(void)`` se contente d'initialiser un tableau local mais ne retourne aucun résultat. Cette fonction ne sert a priori à rien puisqu'elle n'a aucun effet sur les variables globales et ne retourne aucun résultat. L'exécution de ces fonctions via le fragment de code ci-dessous donne cependant un résultat interpellant. - - .. literalinclude:: /C/S3-src/initvar.c - :encoding: utf-8 - :language: c - :start-after: ///CCC - :end-before: ///DDD - - .. literalinclude:: /C/S3-src/initvar.out - :encoding: utf-8 - :language: console - - - - -Le tas (ou `heap`) ------------------- - -La quatrième zone de la mémoire est le :term:`tas` (ou :term:`heap` en anglais). Vu l'importance pratique de la terminologie anglaise, c'est celle-ci que nous utiliserons dans le cadre de ce document. C'est une des deux zones dans laquelle un programme peut obtenir de la mémoire supplémentaire pour stocker de l'information. Un programme peut y réserver une zone permettant de stocker des données et y associer un pointeur. - -Le système d'exploitation mémorise, pour chaque processus en cours d'exécution, la limite supérieure de son :term:`heap`. Le système d'exploitation permet à un processus de modifier la taille de son heap via les appels systèmes `brk(2)`_ et `sbrk(2)`_. Malheureusement, ces deux appels systèmes se contentent de modifier la limite supérieure du :term:`heap` sans fournir une API permettant au processus d'y allouer efficacement des blocs de mémoire. Rares sont les processus qui utilisent directement `brk(2)`_ si ce n'est sous la forme d'un appel à ``sbrk(0)`` de façon à connaître la limite supérieure actuelle du :term:`heap`. - -En C, la plupart des processus allouent et libèrent de la mémoire en utilisant les fonctions `malloc(3)`_ et `free(3)`_ qui font partie de la librairie standard. - -La fonction `malloc(3)`_ prend comme argument la taille (en bytes) de la zone mémoire à allouer. La signature de la fonction `malloc(3)`_ demande que cette taille soit de type ``size_t``, c'est-à -dire le type retourné par l'expression ``sizeof``. Il est important de toujours utiliser ``sizeof`` lors du calcul de la taille d'une zone mémoire à allouer. `malloc(3)`_ retourne normalement un pointeur de type ``(void *)``. Ce type de pointeur est le type par défaut pour représenter dans un programme C une zone mémoire qui ne pointe pas vers un type de données particulier. En pratique, un programme va généralement utiliser `malloc(3)`_ pour allouer de la mémoire pour stocker différents types de données et le pointeur retourné par `malloc(3)`_ sera `casté` dans un pointeur du bon type. - -.. spelling:: - - typecast - -.. note:: ``typecast`` en langage C - - Comme le langage Java, le langage C supporte des conversions implicites et explicites entre les différents types de données. Ces conversions sont possibles entre les types primitifs et les pointeurs. Nous les rencontrerons régulièrement, par exemple lorsqu'il faut récupérer un pointeur alloué par `malloc(3)`_ ou le résultat de ``sizeof``. Contrairement au compilateur Java, le compilateur C n'émet pas toujours de message de :term:`warning` lors de l'utilisation de typecast qui risque d'engendrer une perte de précision. Ce problème est illustré par l'exemple suivant avec les nombres. - - .. literalinclude:: /C/S3-src/typecast.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -La fonction de la librairie `free(3)`_ est le pendant de `malloc(3)`_. Elle permet de libérer la mémoire qui a été allouée par `malloc(3)`_. Elle prend comme argument un pointeur dont la valeur a été initialisée par `malloc(3)`_ et libère la zone mémoire qui avait été allouée par `malloc(3)`_ pour ce pointeur. La valeur du pointeur n'est pas modifiée, mais après libération de la mémoire il n'est évidemment plus possible [#fpossible]_ d'accéder aux données qui étaient stockées dans cette zone. - -Le programme ci-dessous illustre l'utilisation de `malloc(3)`_ et `free(3)`_. - -.. literalinclude:: /C/S3-src/malloc.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Ce programme alloue trois zones mémoires. Le pointeur vers la première est sauvé dans le pointeur ``string``. Elle est destinée à contenir une chaîne de ``size`` caractères (avec un caractère supplémentaire pour stocker le caractère ``\0`` de fin de chaîne). Il y a deux points à remarquer concernant cette allocation. Tout d'abord, le pointeur retourné par `malloc(3)`_ est "casté" en un ``char *``. Cela indique au compilateur que ``string`` va bien contenir un pointeur vers une chaîne de caractères. Cette conversion explicite rend le programme plus clair. Ensuite, la valeur de retour de `malloc(3)`_ est systématiquement testée. `malloc(3)`_ peut en effet retourner ``NULL`` lorsque la mémoire est remplie. Cela a peu de chance d'arriver dans un programme de test tel que celui-ci, mais tester les valeurs de retour des fonctions de la librairie est une bonne habitude à prendre lorsque l'on programme sous Unix. Le second pointeur, ``vector`` pointe vers une zone destiné à contenir un tableau d'entiers. Le dernier pointeur, ``fract_vect`` pointe vers une zone qui pourra stocker un tableau de ``Fraction``. Lors de son exécution, le programme affiche la sortie suivante. - -.. literalinclude:: /C/S3-src/malloc.out - :encoding: utf-8 - :language: console - -Dans cette sortie, on remarque que l'appel à fonction `free(3)`_ libère la zone mémoire, mais ne modifie pas la valeur du pointeur correspondant. Le programmeur doit explicitement remettre le pointeur d'une zone mémoire libérée à ``NULL``. - -Un autre exemple d'utilisation de `malloc(3)`_ est la fonction ``duplicate`` ci-dessous qui permet de retourner une copie d'une chaîne de caractères. Il est important de noter qu'en C la fonction `strlen(3)`_ retourne la longueur de la chaîne de caractères passée en argument sans prendre en compte le caractère ``\0`` qui marque sa fin. C'est la raison pour laquelle `malloc(3)`_ doit réserver un bloc de mémoire en plus. Même si généralement les ``char`` occupent un octet en mémoire, il est préférable d'utiliser explicitement ``sizeof(char)`` lors du calcul de l'espace mémoire nécessaire pour un type de données. - - -.. literalinclude:: /C/S3-src/strcpy.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -`malloc(3)`_ et `free(3)`_ sont fréquemment utilisés dans des programmes qui manipulent des structures de données dont la taille varie dans le temps. C'est le cas pour les différents sortes de listes chaînées, les piles, les queues, les arbres, ... L'exemple ci-dessous (:download:`/C/S3-src/stack.c`) illustre une implémentation d'une pile simple en C. Le pointeur vers le sommet de la pile est défini comme une variable globale. Chaque élément de la pile est représenté comme un pointeur vers une structure qui contient un pointeur vers la donnée stockée (dans cet exemple des fractions) et l'élément suivant sur la pile. Les fonctions ``push`` et ``pop`` permettent respectivement d'ajouter un élément et de retirer un élément au sommet de la pile. La fonction ``push`` alloue la mémoire nécessaire avec `malloc(3)`_ tandis que la fonction ``pop`` utilise `free(3)`_ pour libérer la mémoire dès qu'un élément est retiré. - - -.. literalinclude:: /C/S3-src/stack.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Ces fonctions peuvent être utilisées pour empiler et dépiler des fractions sur une pile comme dans l'exemple ci-dessous. La fonction ``display`` permet d'afficher sur :term:`stdout` le contenu de la pile. - -.. literalinclude:: /C/S3-src/stack.c - :encoding: utf-8 - :language: c - :start-after: ///BBB - :end-before: ///CCC - -Lors de son exécution le programme :download:`/C/S3-src/stack.c` présenté ci-dessus affiche les lignes suivantes sur sa sortie standard. - -.. literalinclude:: /C/S3-src/stack.out - :encoding: utf-8 - :language: console - - -Le tas (ou :term:`heap`) joue un rôle très important dans les programmes C. Les données qui sont stockées dans cette zone de la mémoire sont accessibles depuis toute fonction qui possède un pointeur vers la zone correspondante - - -.. note:: Ne comptez jamais sur les `free(3)`_ implicites - - Un programmeur débutant qui expérimente avec `malloc(3)`_ pourrait écrire le code ci-dessous et conclure que comme celui-ci s'exécute correctement, il n'est pas nécessaire d'utiliser `free(3)`_. Lors de l'exécution d'un programme, le système d'exploitation réserve de la mémoire pour les différents segments du programme et ajuste si nécessaire cette allocation durant l'exécution du programme. Lorsque le programme se termine, via ``return`` dans la fonction ``main`` ou par un appel explicite à `exit(2)`_, le système d'exploitation libère tous les segments utilisés par le programme, le text, les données, le tas et la pile. Cela implique que le système d'exploitation effectue un appel implicite à `free(3)`_ à la terminaison d'un programme. - - .. literalinclude:: /C/S3-src/nofree.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - - Un programmeur ne doit cependant `jamais` compter sur cet appel implicite à `free(3)`_. Ne pas libérer la mémoire lorsqu'elle n'est plus utilisée est un problème courant qui est généralement baptisé :term:`memory leak`. Ce problème est particulièrement gênant pour les processus tels que les serveurs Internet qui ne se terminent pas ou des processus qui s'exécutent longtemps. Une petite erreur de programmation peut causer un :term:`memory leak` qui peut après quelque temps consommer une grande partie de l'espace mémoire inutilement. Il est important d'être bien attentif à l'utilisation correcte de `malloc(3)`_ et de `free(3)`_ pour toutes les opérations d'allocation et de libération de la mémoire. - - -`malloc(3)` est la fonction d'allocation de mémoire la plus fréquemment utilisée [#fothermalloc]_. La librairie standard contient cependant d'autres fonctions permettant d'allouer de la mémoire mais aussi de modifier des allocations antérieures. `calloc(3)`_ est nettement moins utilisée que `malloc(3)`_. Elle a pourtant un avantage majeur par rapport à `malloc(3)`_ puisqu'elle initialise à zéro la zone de mémoire allouée. `malloc(3)`_ se contente d'allouer la zone de mémoire mais n'effectue aucune initialisation. Cela permet à `malloc(3)`_ d'être plus rapide, mais le programmeur ne doit jamais oublier qu'il ne peut pas utiliser `malloc(3)`_ sans initialiser la zone mémoire allouée. Cela peut s'observer en pratique avec le programme ci-dessous. Il alloue une zone mémoire pour ``v1``, l'initialise puis la libère. Ensuite, le programme alloue une nouvelle zone mémoire pour ``v2`` et y retrouve les valeurs qu'il avait stocké pour ``v1`` précédemment. En pratique, n'importe quelle valeur pourrait se trouver dans la zone retournée par `malloc(3)`. - -.. literalinclude:: /C/S3-src/mallocinit.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -L'exécution du programme ci-dessus affiche le résultat suivant sur la sortie standard. Ceci illustre bien que la fonction `malloc(3)`_ n'initialise pas les zones de mémoire qu'elle alloue. - -.. literalinclude:: /C/S3-src/mallocinit.out - :encoding: utf-8 - :language: console - -Lors de l'exécution du programme, on remarque que la première zone mémoire retournée par `malloc(3)`_ a été initialisée à zéro. C'est souvent le cas en pratique pour des raisons de sécurité, mais ce serait une erreur de faire cette hypothèse dans un programme. Si la zone de mémoire doit être initialisée, la mémoire doit être allouée par `calloc(3)`_ ou via une initialisation explicite ou en utilisant des fonctions telles que `bzero(3)`_ ou `memset(3)`_. - -Les arguments et variables d'environnement ------------------------------------------- - -Lorsque le système d'exploitation charge un programme Unix en mémoire, il initialise dans le haut de la mémoire une zone qui contient deux types de variables. Cette zone contient tout d'abord les arguments qui ont été passés via la ligne de commande. Le système d'exploitation met dans ``argc`` le nombre d'arguments et place dans ``char *argv[]`` tous les arguments passés avec dans ``argv[0]`` le nom du programme qui est exécuté. - -Cette zone contient également les variables d'environnement. Ces variables sont généralement relatives à la configuration du système. Leurs valeurs sont définies par l'administrateur système ou l'utilisateur. De nombreuses variables d'environnement sont utilisées dans les systèmes Unix. Elles servent à modifier le comportement de certains programmes. Une liste exhaustive de toutes les variables d'environnement est impossible, mais en voici quelques unes qui sont utiles en pratique [#fenvbash]_: - - - ``HOSTNAME`` : le nom de la machine sur laquelle le programme s'exécute. Ce nom est fixé par l'administrateur système via la commande `hostname(1)`_ - - ``SHELL`` : l'interpréteur de commande utilisé par défaut pour l'utilisateur courant. Cet interpréteur est lancé par le système au démarrage d'une session de l'utilisateur. Il est stocké dans le fichier des mots de passe et peut être modifié par l'utilisateur via la commande `passwd(1)`_ - - ``USER`` : le nom de l'utilisateur courant. Sous Unix, chaque utilisateur est identifié par un numéro d'utilisateur et un nom uniques. Ces identifiants sont fixés par l'administrateur système via la commande `passwd(1)`_ - - ``HOME``: le répertoire d'accueil de l'utilisateur courant. Ce répertoire d'accueil appartient à l'utilisateur. C'est dans ce répertoire qu'il peut stocker tous ses fichiers. - - ``PRINTER`` : le nom de l'imprimante par défaut qui est utilisée par la commande `lp(1posix)`_ - - ``PATH``: cette variable d'environnement contient la liste ordonnée des répertoires que le système parcourt pour trouver un programme à exécuter. Cette liste contient généralement les répertoires dans lesquels le système stocke les exécutables standards, comme ``/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:`` ainsi que des répertoires relatifs à des programmes spécialisés comme ``/usr/lib/mozart/bin:/opt/python3/bin``. L'utilisateur peut ajouter des répertoires à son ``PATH`` avec `bash(1)`_ en incluant par exemple la commande ``PATH=$PATH:$HOME/local/bin:.`` dans son fichier ``.profile``. Cette commande ajoute au ``PATH`` par défaut le répertoire ``$HOME/local/bin`` et le répertoire courant. Par convention, Unix utilise le caractère ``.`` pour représenter ce répertoire courant. - -La librairie standard contient plusieurs fonctions qui permettent de manipuler les variables d'environnement d'un processus. La fonction `getenv(3)`_ permet de récupérer la valeur associée à une variable d'environnement. La fonction `unsetenv(3)`_ permet de supprimer une variable de l'environnement du programme courant. La fonction `setenv(3)`_ permet elle de modifier la valeur d'une variable d'environnement. Cette fonction alloue de la mémoire pour stocker la nouvelle variable d'environnement et peut échouer si il n'y a pas assez de mémoire disponible pour stocker de nouvelles variables d'environnement. Ces fonctions sont utilisées notamment par l'interpréteur de commande mais parfois par des programmes dont le comportement dépend de la valeur de certaines variables d'environnement. Par exemple, la commande `man(1)`_ utilise différentes variables d'environnement pour déterminer par exemple où les pages de manuel sont stockées et la langue (variable ``LANG``) dans laquelle il faut afficher les pages de manuel. - -Le programme ci-dessous illustre brièvement l'utilisation de `getenv(3)`_, `unsetenv(3)`_ et `setenv(3)`_. Outre ces fonctions, il existe également `clearenv(3)`_ qui permet d'effacer complètement toutes les variables d'environnement du programme courant et `putenv(3)`_ qui était utilisé avant `setenv(3)`_. - -.. literalinclude:: /C/S3-src/argv-env.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - - -La pile (ou stack) ------------------- - -La :term:`pile` ou :term:`stack` en anglais est la dernière zone de mémoire utilisée par un processus. C'est une zone très importante car c'est dans cette zone que le processus va stocker l'ensemble des variables locales mais également les valeurs de retour de toutes les fonctions qui sont appelées. Cette zone est gérée comme une pile, d'où son nom. Pour comprendre son fonctionnement, nous utiliserons le programme :download:`/C/S3-src/fact.c` qui permet de calculer une factorielle de façon récursive. - -.. literalinclude:: /C/S3-src/fact.c - :encoding: utf-8 - :language: c - :start-after: ///BBB - :end-before: ///AAA - -Lors de l'exécution de la fonction ``compute()``, le programme ci-dessus produit la sortie suivante. - - -.. literalinclude:: /C/S3-src/fact.out - :encoding: utf-8 - :language: console - :start-after: ///FACT - -Il est intéressant d'analyser en détails ce calcul récursif de la factorielle car il illustre bien le fonctionnement du stack et son utilisation. - -Tout d'abord, il faut noter que les fonctions ``fact`` et ``times`` se trouvent, comme toutes les fonctions définies dans le programme, à l'intérieur du :term:`segment text`. La variable ``nombre`` quant à elle se trouve sur la pile en haut de la mémoire. Il s'agit d'une variable locale qui est allouée lors de l'exécution de la fonction ``compute``. Il en va de même des arguments qui sont passés aux fonctions. Ceux-ci sont également stockés sur la pile. C'est le cas par exemple de l'argument ``n`` de la fonction ``fact``. Lors de l'exécution de l'appel à ``fact(3)``, la valeur ``3`` est stockée sur la pile pour permettre à la fonction ``fact`` d'y accéder. Ces accès sont relatifs au sommet de la pile comme nous aurons l'occasion de le voir dans la présentation du langage d'assemblage. Le premier appel récursif se fait en calculant la valeur de l'argument (``2``) et en appelant la fonction. L'argument est placé sur la pile, mais à une autre adresse que celle utilisée pour ``fact(3)``. Durant son exécution, la fonction ``fact(2)`` accède à ses variables locales sur la pile sans interférer avec les variables locales de l'exécution de ``fact(3)`` qui attend le résultat de ``fact(2)``. Lorsque ``fact(2)`` fait l'appel récursif, la valeur de son argument (``1``) est placée sur la pile et l'exécution de ``fact(1)`` démarre. Celle-ci a comme environnement d'exécution le sommet de la pile qui contient la valeur ``1`` comme argument et la fonction retourne la valeur ``1`` à l'exécution de ``fact(2)`` qui l'avait lancée. Dès la fin de ``fact(1)``, ``fact(2)`` reprend son exécution où elle avait été interrompue et applique la fonction ``times`` avec ``2`` et ``1`` comme arguments. Ces deux arguments sont placés sur le pile et ``times`` peut y accéder au début de son exécution pour calculer la valeur ``2`` et retourner le résultat à la fonction qui l'a appelé, c'est-à -dire ``fact(2)``. Cette dernière retrouve son environnement d'exécution sur la pile. Elle peut maintenant retourner son résultat à la fonction ``fact(3)`` qui l'avait appelée. Celle-ci va appeler la fonction ``times`` avec ``3`` et ``2`` comme arguments et finira par retourner la valeur ``6``. - -La pile joue un rôle essentiel lors de l'exécution de programmes en C puisque toutes les variables locales, y compris celles de la fonction ``main`` y sont stockées. Comme nous le verrons lorsque nous aborderons le langage assembleur, la pile sert aussi à stocker l'adresse de retour des fonctions. C'est ce qui permet à l'exécution de ``fact(2)`` de se poursuivre correctement après avoir récupéré la valeur calculée par l'appel à ``fact(1)``. L'utilisation de la pile pour stocker les variables locales et les arguments de fonctions a une conséquence importante. Lorsqu'une variable est définie comme argument ou localement à une fonction ``f``, elle n'est accessible que durant l'exécution de la fonction ``f``. Avant l'exécution de ``f`` cette variable n'existe pas et si ``f`` appelle la fonction ``g``, la variable définie dans ``f`` n'est plus accessible à partir de la fonction ``g``. - -En outre, comme le langage C utilise le passage par valeur, les valeurs des arguments d'une fonction sont copiés sur la pile avant de démarrer l'exécution de cette fonction. Lorsque la fonction prend comme argument un entier, cette copie prend un temps très faible. Par contre, lorsque la fonction prend comme argument une ou plusieurs structures de grand taille, celles-ci doivent être entièrement copiées sur la pile. A titre d'exemple, le programme ci-dessous définit une très grande structure contenant un entier et une zone permettant de stocker un million de caractères. Lors de l'appel à la fonction ``sum``, les structures ``one`` et ``two`` sont entièrement copiées sur la pile. Comme chaque structure occupe plus d'un million d'octets, cela prend plusieurs centaines de microsecondes. Cette copie est nécessaire pour respecter le passage par valeur des structures à la fonction ``sum``. Celle-ci ne peut pas modifier le contenu des structures qui lui sont passées en argument. Par comparaison, lors de l'appel à ``sumptr``, seules les adresses de ces deux structures sont copiées sur la pile. Un appel à ``sumptr`` prend moins d'une microseconde, mais bien entendu la fonction ``sumptr`` a accès via les pointeurs passés en argument à toute la zone de mémoire qui leur est associée. - -.. literalinclude:: /C/S3-src/structargs.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Certaines variantes de Unix et certains compilateurs permettent l'allocation de mémoire sur la pile via la fonction `alloca(3)`_. Contrairement à la mémoire allouée par `malloc(3)`_ qui doit être explicitement libérée en utilisant `free(3)`_, la mémoire allouée par `alloca(3)`_ est libérée automatiquement à la fin de l'exécution de la fonction dans laquelle la mémoire a été allouée. Cette façon d'allouer de la mémoire sur la pile n'est pas portable et il est préférable de n'allouer de la mémoire que sur le tas en utilisant `malloc(3)`_. - -Les versions récentes du C et notamment [C99]_ permettent d'allouer de façon dynamique un tableau sur la pile. Cette fonctionnalité peut être utile dans certains cas, mais elle peut aussi être la source de nombreuses erreurs et difficultés. Pour bien comprendre ce problème, considérons à nouveau la fonction ``duplicate`` qui a été définie précédemment en utilisant `malloc(3)`_ et des pointeurs. - -.. literalinclude:: /C/S3-src/strcpy.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Un étudiant pourrait vouloir éviter d'utiliser `malloc(3)`_ et écrire plutôt la fonction suivante. - -.. literalinclude:: /C/S3-src/strcpy.c - :encoding: utf-8 - :language: c - :start-after: ///BBB - :end-before: ///CCC - -.. spelling:: - - warning - -Lors de la compilation, `gcc(1)`_ affiche le :term:`warning` ``In function ‘duplicate2’: warning: function returns address of local variable``. Ce warning indique que la ligne ``return str2;`` retourne l'adresse d'une variable locale qui n'est plus accessible à la fin de la fonction ``duplicate2``. En effet, l'utilisation de tableaux alloués dynamiquement sur la pile est équivalent à une utilisation implicite de `alloca(3)`_. La déclaration ``char str2[len];`` est équivalente à ``char *str2 =(char *)alloca(len*sizeof(char));`` et la zone mémoire allouée sur la pile pour ``str2`` est libérée lors de l'exécution de ``return str2;`` puisque toute mémoire allouée sur la pile est implicitement libérée à la fin de l'exécution de la fonction durant laquelle elle a été allouée. Donc, une fonction qui appelle ``duplicate2`` ne peut pas récupérer les données se trouvant dans la zone mémoire qui a été allouée par ``duplicate2``. - - - -.. rubric:: Footnotes - -.. [#fpossible] Pour des raisons de performance, le compilateur C ne génère pas de code permettant de vérifier automatiquement qu'un accès via un pointeur pointe vers une zone de mémoire qui est libre. Il est donc parfois possible d'accéder à une zone mémoire qui a été libérée, mais le programme n'a aucune garantie sur la valeur qu'il y trouvera. Ce genre d'accès à des zones mémoires libérées doit bien entendu être complètement proscrit. - -.. [#ggetrlimit] Sur de nombreuses variantes de Unix, cette limite à la taille du stack dépend du matériel utilisé et peut être configurée par l'administrateur système. Un processus peut connaître la taille maximale de son stack en utilisant l'appel système `getrlimit(2)`_. L'administrateur système peut modifier ces limites via l'appel système `setrlimit(2)`_. La commande ``ulimit`` de `bash(1)`_ permet également de manipuler ces limites. - -.. [#fetext] Dans de nombreuses variantes de Unix, il est possible de connaître le sommet du segment :term:`text` d'un processus grâce à la variable :term:`etext`. Cette variable, de type ``char`` est initialisée par le système au chargement du processus. Elle doit être déclarée comme variable de type ``extern char etext`` et son adresse (``&etext``) correspond au sommet du segment text. - -.. [#fvmem] Nous verrons ultérieurement que grâce à l'utilisation de la mémoire virtuelle, il est possible pour un processus d'utiliser des zones de mémoire qui ne sont pas contiguës. - -.. [#fothermalloc] Il existe différentes alternatives à l'utilisation de `malloc(3)`_ pour l'allocation de mémoire comme `Hoard <http://www.hoard.org/>`_ ou `gperftools <http://code.google.com/p/gperftools/>`_ - -.. [#fenvbash] Il possible de lister les définitions actuelles des variables d'environnement via la commande `printenv(1)`_. Les interpréteurs de commande tels que `bash(1)`_ permettent de facilement modifier les valeurs de ces variables. La plupart d'entre elles sont initialisées par le système ou via les fichiers qui sont chargés automatiquement au démarrage de l'interpréteur comme ``/etc/profile`` qui contient les variables fixées par l'administrateur système ou le fichier ``.profile`` du répertoire d'accueil de l'utilisateur qui contient les variables d'environnement propres à cet utilisateur. - - - diff --git a/Theorie/C/src/cmdline.c b/Theorie/C/src/cmdline.c deleted file mode 100644 index 9d9ec77..0000000 --- a/Theorie/C/src/cmdline.c +++ /dev/null @@ -1,19 +0,0 @@ -/************************************** - * cmdline.c - * - * Programme affichant ses arguments - * sur la sortie standard - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) -{ - int i; - printf("Ce programme a %d argument(s)\n", argc); - for (i = 0; i < argc; i++) - printf("argument[%d] : %s\n", i, argv[i]); - return EXIT_SUCCESS; -} diff --git a/Theorie/C/src/cmdline.out b/Theorie/C/src/cmdline.out deleted file mode 100644 index 90ce182..0000000 --- a/Theorie/C/src/cmdline.out +++ /dev/null @@ -1,6 +0,0 @@ -Ce programme a 5 argument(s) -argument[0] : ./cmdline -argument[1] : 1 -argument[2] : -list -argument[3] : abcdef -argument[4] : sinf1252 diff --git a/Theorie/C/src/failure.c b/Theorie/C/src/failure.c deleted file mode 100644 index 321885b..0000000 --- a/Theorie/C/src/failure.c +++ /dev/null @@ -1,13 +0,0 @@ -/************************************** - * failure.c - * - * Programme minimal qui échoue toujours - * - **************************************/ - -#include <stdlib.h> - -int main(int argc, char *argv[]) -{ - return EXIT_FAILURE; -} diff --git a/Theorie/C/src/filterdigit.c b/Theorie/C/src/filterdigit.c deleted file mode 100644 index f242bef..0000000 --- a/Theorie/C/src/filterdigit.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************** - * filterdigit.c - * - * Programme qui extrait de l'entrée - * standard les caractères représentant - * des chiffres - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -// retourne vrai si c est un chiffre, faux sinon -// exemple simplifié, voir isdigit dans la librarire standard -// pour une solution complète -int digit(char c) -{ - return ((c >= '0') && (c <= '9')); -} - -// affiche un message d'erreur -void usage() -{ - fprintf(stderr, "Ce programme ne prend pas d'argument\n"); - exit(EXIT_FAILURE); -} - -int main(int argc, char *argv[]) -{ - char c; - - if (argc > 1) - usage(); - - while ((c = getchar()) != EOF) { - if (digit(c)) - putchar(c); - } - - return EXIT_SUCCESS; -} - diff --git a/Theorie/C/src/hello.c b/Theorie/C/src/hello.c deleted file mode 100644 index a616435..0000000 --- a/Theorie/C/src/hello.c +++ /dev/null @@ -1,18 +0,0 @@ -/************************************** - * Hello.c - * - * Programme affichant sur la sortie - * standard le message "Hello, world!" - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) -{ - // affiche sur la sortie standard - printf("Hello, world!\n"); - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/src/printf.c b/Theorie/C/src/printf.c deleted file mode 100644 index a10b635..0000000 --- a/Theorie/C/src/printf.c +++ /dev/null @@ -1,37 +0,0 @@ -/************************************** - * printf.c - * - * Exemples d'utilisation de printfProgramme qui a réussi - * - **************************************/ - -#include <stdlib.h> -#include <stdio.h> -#include <math.h> - -int main(int argc, char *argv[]) -{ - ///AAA - - char weekday[] = "Monday"; - char month[] = "April"; - int day = 1; - int hour = 12; - int min = 42; - char str[] = "SINF1252"; - int i; - - // affichage de la date et l'heure - printf("%s, %s %d, %d:%d\n", weekday, month, day, hour, min); - - // affichage de la valeur de PI - printf("PI = %f\n", 4 * atan(1.0)); - - // affichage d'un caractère par ligne - for(i = 0; str[i] != '\0'; i++) - printf("%c\n", str[i]); - - ///BBB - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/src/printf.out b/Theorie/C/src/printf.out deleted file mode 100644 index 52d6f66..0000000 --- a/Theorie/C/src/printf.out +++ /dev/null @@ -1,10 +0,0 @@ -Monday, April 1, 12:42 -PI = 3.141593 -S -I -N -F -1 -2 -5 -2 diff --git a/Theorie/C/src/ptr_arith.c b/Theorie/C/src/ptr_arith.c deleted file mode 100644 index a4fe502..0000000 --- a/Theorie/C/src/ptr_arith.c +++ /dev/null @@ -1,46 +0,0 @@ -// arithmétique des pointeurs - -#include <stdio.h> - -int main(int argc, char *argv[]) -{ -///AAA - -#define SIZE 3 -unsigned int tab[3]; -tab[0] = 0x01020304; -tab[1] = 0x05060708; -tab[2] = 0x090A0B0C; - -///BBB - -///CCC - -int i; -for (i = 0; i < SIZE; i++) { - printf("%X est à l'adresse %p\n", tab[i], &(tab[i])); -} - -///DDD - -///EEE - -unsigned int* ptr = tab; -for (i = 0; i < SIZE; i++) { - printf("%X est à l'adresse %p\n", *ptr, ptr); - ptr++; -} - -///FFF - -///GGG - -unsigned char* ptr_char = (unsigned char *) tab; -printf("ptr_char contient %p\n", ptr_char); -for (i = 0; i < SIZE + 1; i++) { - printf("%X est à l'adresse %p\n", *ptr_char, ptr_char); - ptr_char++; -} - -///HHH -} diff --git a/Theorie/C/src/string.c b/Theorie/C/src/string.c deleted file mode 100644 index 7970ef7..0000000 --- a/Theorie/C/src/string.c +++ /dev/null @@ -1,26 +0,0 @@ -/************************************** - * string.c - * - * Programme d'expemple avec les strings - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) -{ - ///AAA - - char string[10]; - string[0] = 'j'; - string[1] = 'a'; - string[2] = 'v'; - string[3] = 'a'; - string[4] = '\0'; - printf("String : %s\n", string); - - ///BBB - - return EXIT_SUCCESS; -} diff --git a/Theorie/C/svg/Float_example.png b/Theorie/C/svg/Float_example.png deleted file mode 100644 index fde60d9ec96ab8eefb67dc7be3c7c8094df637fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5560 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 diff --git a/Theorie/C/svg/Float_example.svg b/Theorie/C/svg/Float_example.svg deleted file mode 100644 index 4e875ef..0000000 --- a/Theorie/C/svg/Float_example.svg +++ /dev/null @@ -1,715 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="590" - height="75" - id="svg2"> - <defs - id="defs4"> - <marker - refX="0" - refY="0" - orient="auto" - style="overflow:visible" - id="Arrow2Mend"> - <path - d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " - transform="scale(-0.6,-0.6)" - style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round" - id="path3321" /> - </marker> - </defs> - <rect - width="120.00082" - height="26.023895" - x="29.259886" - y="28.699614" - style="fill:none;fill-opacity:0.39473685;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3147" /> - <rect - width="14.999176" - height="26.023895" - x="134.26152" - y="28.699369" - style="fill:#10ff2e;fill-opacity:0.39607843;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3522" /> - <path - d="M 30.239243,25.223251 L 30.239243,15.797501 L 148.37786,15.797501 L 148.37786,25.223251" - style="fill:none;fill-rule:evenodd;stroke:#008000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path2170" /> - <path - d="M 150.26069,25.223251 L 150.26069,15.797501 L 493.40792,15.797501 L 493.40792,25.223251" - style="fill:none;fill-rule:evenodd;stroke:#800000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path2172" /> - <rect - width="345.97119" - height="26.023642" - x="149.25989" - y="28.66995" - style="fill:none;fill-opacity:0.36078431;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect2174" /> - <rect - width="14.999176" - height="26.023895" - x="14.260694" - y="28.699369" - style="fill:#0af5ff;fill-opacity:0.23684214;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3149" /> - <text - x="28.313053" - y="11.141996" - style="font-size:14.64121246px;font-style:normal;text-align:end;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Gill Sans MT" - id="text3151" - xml:space="preserve"><tspan - x="28.313053" - y="11.141996" - style="font-weight:normal;text-align:end;text-anchor:end;font-family:Arial" - id="tspan3153">sign</tspan></text> - <text - x="89.090508" - y="11.141996" - style="font-size:14.64121246px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Gill Sans MT" - id="text3369" - xml:space="preserve"><tspan - x="89.090508" - y="11.141996" - style="font-weight:normal;font-family:Arial" - id="tspan3371">exponent (8 bits)</tspan></text> - <text - x="322.27396" - y="11.141996" - style="font-size:14.64121246px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Gill Sans MT" - id="text3377" - xml:space="preserve"><tspan - x="322.27396" - y="11.141996" - style="font-weight:normal;font-family:Arial" - id="tspan3379">fraction (23 bits)</tspan></text> - <path - d="M 489.73149,59.223243 C 489.73224,59.938278 489.35121,60.599322 488.7321,60.957058 C 488.11299,61.314795 487.34999,61.314795 486.73088,60.957058 C 486.11176,60.599322 485.73074,59.938278 485.73149,59.223243 C 485.73074,58.508207 486.11176,57.847163 486.73088,57.489428 C 487.34999,57.131691 488.11299,57.131691 488.7321,57.489428 C 489.35121,57.847163 489.73224,58.508207 489.73149,59.223243 L 489.73149,59.223243 z " - style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3381" /> - <text - x="487.77948" - y="74.338959" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3383" - xml:space="preserve"><tspan - x="487.77948" - y="74.338959" - style="font-weight:normal" - id="tspan3385">0</tspan></text> - <path - d="M 143.7611,59.223253 C 143.76185,59.938288 143.38082,60.599332 142.76171,60.957068 C 142.1426,61.314805 141.3796,61.314805 140.76049,60.957068 C 140.14137,60.599332 139.76035,59.938288 139.7611,59.223253 C 139.76035,58.508217 140.14137,57.847173 140.76049,57.489438 C 141.3796,57.131701 142.1426,57.131701 142.76171,57.489438 C 143.38082,57.847173 143.76185,58.508217 143.7611,59.223253 L 143.7611,59.223253 z " - style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3397" /> - <text - x="139.87766" - y="74.338959" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3399" - xml:space="preserve"><tspan - x="139.87766" - y="74.338959" - style="font-weight:normal" - id="tspan3401">23</tspan></text> - <path - d="M 23.760282,59.223253 C 23.761036,59.938288 23.380007,60.599332 22.760896,60.957068 C 22.141785,61.314805 21.37878,61.314805 20.759669,60.957068 C 20.140558,60.599332 19.75953,59.938288 19.760284,59.223253 C 19.75953,58.508217 20.140558,57.847173 20.759669,57.489438 C 21.37878,57.131701 22.141785,57.131701 22.760896,57.489438 C 23.380007,57.847173 23.761036,58.508217 23.760282,59.223253 L 23.760282,59.223253 z " - style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3413" /> - <text - x="19.256382" - y="74.338959" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3415" - xml:space="preserve"><tspan - x="19.256382" - y="74.338959" - style="font-weight:normal" - id="tspan3417">31</tspan></text> - <path - d="M 21.760283,25.223251 L 21.760283,15.797501" - style="fill:none;fill-rule:evenodd;stroke:#008080;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" - id="path2232" /> - <rect - width="14.999176" - height="26.023895" - x="119.26128" - y="28.699369" - style="fill:#10ff2e;fill-opacity:0.39607843;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3508" /> - <rect - width="14.999176" - height="26.023895" - x="104.26105" - y="28.699369" - style="fill:#10ff2e;fill-opacity:0.39607843;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3510" /> - <rect - width="14.999176" - height="26.023895" - x="89.260818" - y="28.699369" - style="fill:#10ff2e;fill-opacity:0.39607843;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3512" /> - <rect - width="14.999176" - height="26.023895" - x="74.260582" - y="28.699369" - style="fill:#10ff2e;fill-opacity:0.39607843;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3514" /> - <rect - width="14.999176" - height="26.023895" - x="59.260353" - y="28.699369" - style="fill:#10ff2e;fill-opacity:0.39607843;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3516" /> - <rect - width="14.999176" - height="26.023895" - x="44.260117" - y="28.699369" - style="fill:#10ff2e;fill-opacity:0.39607843;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3518" /> - <rect - width="14.999176" - height="26.023895" - x="29.259886" - y="28.699369" - style="fill:#10ff2e;fill-opacity:0.39607843;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3520" /> - <rect - width="14.999176" - height="26.023895" - x="149.25989" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3525" /> - <rect - width="14.999176" - height="26.023895" - x="164.30408" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3533" /> - <rect - width="14.999176" - height="26.023895" - x="179.34825" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3535" /> - <rect - width="14.999176" - height="26.023895" - x="194.39244" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3537" /> - <rect - width="14.999176" - height="26.023895" - x="209.43661" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3539" /> - <rect - width="14.999176" - height="26.023895" - x="224.4808" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3541" /> - <rect - width="14.999176" - height="26.023895" - x="239.52499" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3543" /> - <rect - width="14.999176" - height="26.023895" - x="254.56917" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3545" /> - <rect - width="14.999176" - height="26.023895" - x="269.61334" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3547" /> - <rect - width="14.999176" - height="26.023895" - x="284.65753" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3549" /> - <rect - width="14.999176" - height="26.023895" - x="299.70172" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3551" /> - <rect - width="14.999176" - height="26.023895" - x="314.74591" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3553" /> - <rect - width="14.999176" - height="26.023895" - x="329.7901" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3555" /> - <rect - width="14.999176" - height="26.023895" - x="344.83429" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3557" /> - <rect - width="14.999176" - height="26.023895" - x="359.87845" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3559" /> - <rect - width="14.999176" - height="26.023895" - x="374.92264" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3561" /> - <rect - width="14.999176" - height="26.023895" - x="389.96683" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3563" /> - <rect - width="14.999176" - height="26.023895" - x="405.01102" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3565" /> - <rect - width="14.999176" - height="26.023895" - x="420.05521" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3567" /> - <rect - width="14.999176" - height="26.023895" - x="435.09937" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3569" /> - <rect - width="14.999176" - height="26.023895" - x="450.14355" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3571" /> - <rect - width="14.999176" - height="26.023895" - x="465.18774" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3573" /> - <rect - width="14.999176" - height="26.023895" - x="480.2319" - y="28.699369" - style="fill:#ff1e1e;fill-opacity:0.36078431;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3575" /> - <text - x="22.288181" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3581" - xml:space="preserve"><tspan - x="22.288181" - y="46.757179" - style="font-weight:normal" - id="tspan3583">0</tspan></text> - <text - x="37.319508" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3585" - xml:space="preserve"><tspan - x="37.319508" - y="46.757179" - style="font-weight:normal" - id="tspan3587">0</tspan></text> - <text - x="52.350842" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3589" - xml:space="preserve"><tspan - x="52.350842" - y="46.757179" - style="font-weight:normal" - id="tspan3591">1</tspan></text> - <text - x="67.382164" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3593" - xml:space="preserve"><tspan - x="67.382164" - y="46.757179" - style="font-weight:normal" - id="tspan3595">1</tspan></text> - <text - x="82.413498" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3597" - xml:space="preserve"><tspan - x="82.413498" - y="46.757179" - style="font-weight:normal" - id="tspan3599">1</tspan></text> - <text - x="97.444824" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3601" - xml:space="preserve"><tspan - x="97.444824" - y="46.757179" - style="font-weight:normal" - id="tspan3603">1</tspan></text> - <text - x="112.47616" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3605" - xml:space="preserve"><tspan - x="112.47616" - y="46.757179" - style="font-weight:normal" - id="tspan3607">1</tspan></text> - <text - x="127.50748" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3609" - xml:space="preserve"><tspan - x="127.50748" - y="46.757179" - style="font-weight:normal" - id="tspan3611">0</tspan></text> - <text - x="142.53882" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3613" - xml:space="preserve"><tspan - x="142.53882" - y="46.757179" - style="font-weight:normal" - id="tspan3615">0</tspan></text> - <text - x="157.57016" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3617" - xml:space="preserve"><tspan - x="157.57016" - y="46.757179" - style="font-weight:normal" - id="tspan3619">0</tspan></text> - <text - x="172.60149" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3621" - xml:space="preserve"><tspan - x="172.60149" - y="46.757179" - style="font-weight:normal" - id="tspan3623">1</tspan></text> - <text - x="187.63281" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3625" - xml:space="preserve"><tspan - x="187.63281" - y="46.757179" - style="font-weight:normal" - id="tspan3627">0</tspan></text> - <text - x="202.66414" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3629" - xml:space="preserve"><tspan - x="202.66414" - y="46.757179" - style="font-weight:normal" - id="tspan3631">0</tspan></text> - <text - x="217.69548" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3633" - xml:space="preserve"><tspan - x="217.69548" - y="46.757179" - style="font-weight:normal" - id="tspan3635">0</tspan></text> - <text - x="232.72681" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3637" - xml:space="preserve"><tspan - x="232.72681" - y="46.757179" - style="font-weight:normal" - id="tspan3639">0</tspan></text> - <text - x="247.75813" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3641" - xml:space="preserve"><tspan - x="247.75813" - y="46.757179" - style="font-weight:normal" - id="tspan3643">0</tspan></text> - <text - x="262.78946" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3645" - xml:space="preserve"><tspan - x="262.78946" - y="46.757179" - style="font-weight:normal" - id="tspan3647">0</tspan></text> - <text - x="277.82077" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3649" - xml:space="preserve"><tspan - x="277.82077" - y="46.757179" - style="font-weight:normal" - id="tspan3651">0</tspan></text> - <text - x="292.85211" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3653" - xml:space="preserve"><tspan - x="292.85211" - y="46.757179" - style="font-weight:normal" - id="tspan3655">0</tspan></text> - <text - x="307.88345" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3657" - xml:space="preserve"><tspan - x="307.88345" - y="46.757179" - style="font-weight:normal" - id="tspan3659">0</tspan></text> - <text - x="322.91476" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3661" - xml:space="preserve"><tspan - x="322.91476" - y="46.757179" - style="font-weight:normal" - id="tspan3663">0</tspan></text> - <text - x="337.94611" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3665" - xml:space="preserve"><tspan - x="337.94611" - y="46.757179" - style="font-weight:normal" - id="tspan3667">0</tspan></text> - <text - x="352.97742" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3669" - xml:space="preserve"><tspan - x="352.97742" - y="46.757179" - style="font-weight:normal" - id="tspan3671">0</tspan></text> - <text - x="368.00876" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3673" - xml:space="preserve"><tspan - x="368.00876" - y="46.757179" - style="font-weight:normal" - id="tspan3675">0</tspan></text> - <text - x="383.0401" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3677" - xml:space="preserve"><tspan - x="383.0401" - y="46.757179" - style="font-weight:normal" - id="tspan3679">0</tspan></text> - <text - x="398.07141" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3681" - xml:space="preserve"><tspan - x="398.07141" - y="46.757179" - style="font-weight:normal" - id="tspan3683">0</tspan></text> - <text - x="413.10275" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3685" - xml:space="preserve"><tspan - x="413.10275" - y="46.757179" - style="font-weight:normal" - id="tspan3687">0</tspan></text> - <text - x="428.13409" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3689" - xml:space="preserve"><tspan - x="428.13409" - y="46.757179" - style="font-weight:normal" - id="tspan3691">0</tspan></text> - <text - x="443.16541" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3693" - xml:space="preserve"><tspan - x="443.16541" - y="46.757179" - style="font-weight:normal" - id="tspan3695">0</tspan></text> - <text - x="458.19675" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3697" - xml:space="preserve"><tspan - x="458.19675" - y="46.757179" - style="font-weight:normal" - id="tspan3699">0</tspan></text> - <text - x="473.22806" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3701" - xml:space="preserve"><tspan - x="473.22806" - y="46.757179" - style="font-weight:normal" - id="tspan3703">0</tspan></text> - <text - x="488.2594" - y="46.757179" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3705" - xml:space="preserve"><tspan - x="488.2594" - y="46.757179" - style="font-weight:normal" - id="tspan3707">0</tspan></text> - <text - x="504.2641" - y="48.399105" - style="font-size:18.6884346px;font-style:normal;text-align:start;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3709" - xml:space="preserve"><tspan - x="504.2641" - y="48.399105" - style="font-weight:normal;text-align:start;text-anchor:start" - id="tspan3711">= 0.15625</tspan></text> - <path - d="M 38.759473,59.223253 C 38.760227,59.938288 38.379198,60.599332 37.760087,60.957068 C 37.140976,61.314805 36.377971,61.314805 35.75886,60.957068 C 35.139749,60.599332 34.758721,59.938288 34.759475,59.223253 C 34.758721,58.508217 35.139749,57.847173 35.75886,57.489438 C 36.377971,57.131701 37.140976,57.131701 37.760087,57.489438 C 38.379198,57.847173 38.760227,58.508217 38.759473,59.223253 L 38.759473,59.223253 z " - style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3959" /> - <text - x="39.756992" - y="74.338959" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3961" - xml:space="preserve"><tspan - x="39.756992" - y="74.338959" - style="font-weight:normal" - id="tspan3963">30</tspan></text> - <path - d="M 158.75948,59.223253 C 158.76023,59.938288 158.3792,60.599332 157.76009,60.957068 C 157.14098,61.314805 156.37798,61.314805 155.75887,60.957068 C 155.13975,60.599332 154.75873,59.938288 154.75948,59.223253 C 154.75873,58.508217 155.13975,57.847173 155.75887,57.489438 C 156.37798,57.131701 157.14098,57.131701 157.76009,57.489438 C 158.3792,57.847173 158.76023,58.508217 158.75948,59.223253 L 158.75948,59.223253 z " - style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="path3965" /> - <text - x="158.87602" - y="74.338959" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3967" - xml:space="preserve"><tspan - x="158.87602" - y="74.338959" - style="font-weight:normal" - id="tspan3969">22</tspan></text> - <text - x="255.87602" - y="74.338959" - style="font-size:14.04066658px;font-style:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial" - id="text3971" - xml:space="preserve"><tspan - x="255.87602" - y="74.338959" - style="font-weight:normal" - id="tspan3973">(bit index)</tspan></text> -</svg> diff --git a/Theorie/Fichiers/fichiers-signaux.rst b/Theorie/Fichiers/fichiers-signaux.rst deleted file mode 100644 index 1dc29d8..0000000 --- a/Theorie/Fichiers/fichiers-signaux.rst +++ /dev/null @@ -1,566 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Sur un système Unix, il est fréquent que des processus différents doivent communiquer entre eux et coordonner leurs activités. Dans ce chapitre, nous détaillons plusieurs mécanismes permettant à des processus ayant un ancêtre commun ou non de coordonner leurs activités. - -Historiquement, le premier mécanisme de coordination entre processus a été l'utilisation des signaux. Nous avons déjà utilisé des signaux sans les avoir détaillés explicitement pour terminer des processus avec la commande `kill(1)`_. Nous décrivons plus en détails les principales utilisations des signaux dans ce chapitre. - -Lorsque deux processus ont un ancêtre commun, il est possible de les relier en utilisant un `pipe(2)`_. Si ils n'ont pas d'ancêtre commun, il est possible d'utiliser une :term:`fifo` pour obtenir un effet similaire. Une :term:`fifo` peut être créée en utilisant la commande `mkfifo(1)`_ ou la fonction `mkfifo(3)`_. `mkfifo(3)`_ s'utilise comme l'appel système `open(2)`_. Pour créer une nouvelle :term:`fifo`, il suffit de lui donner un nom sous la forme d'une chaîne de caractères et tout processus qui connait le nom de la :term:`fifo` pourra l'utiliser. - -.. todo:: expliquer plus en détails les fifo dans une prochaine version - -Les sémaphores que nous avons utilisés pour coordonner plusieurs threads sont également utilisables entre processus moyennant quelques différences que nous détaillerons. - -Enfin, des processus liés ou non doivent parfois accéder aux mêmes fichiers. Ces accès concurrents, si ils ne sont pas correctement coordonnés, peuvent conduire à des corruptions de fichiers. Nous présenterons les mécanismes de locking qui sont utilisés dans Unix et Linux pour coordonner l'accès à des fichiers. - -.. _signaux: - -Signaux -======= - -L'envoi et la réception de signaux est le mécanisme de communication entre processus le plus primitif sous Unix. Un :term:`signal` est une forme d'interruption logicielle [StevensRago2008]. Comme nous l'avons vu précédemment, un microprocesseur utilise les interruptions pour permettre au système d'exploitation de réagir aux événements imprévus qui surviennent. Un :term:`signal` Unix est un mécanisme qui permet à un processus de réagir de façon asynchrone à un événement qui s'est produit. Certains de ces événements sont directement liés au fonctionnement du matériel. D'autres sont provoqués par le processus lui-même ou un autre processus s'exécutant sur le système. - -Pour être capable d'utiliser les signaux à bon escient, il est important de bien comprendre comment ceux-ci sont implémentés dans le système d'exploitation. - -Il existe deux types de signaux. - - - Un :term:`signal synchrone` est un :term:`signal` qui a été directement causé par l'exécution d'une instruction du processus. Un exemple typique de :term:`signal synchrone` est le signal ``SIGFPE`` qui est généré par le système d'exploitation lorsqu'un processus provoque une exception lors du calcul d'expressions mathématiques. C'est le cas notamment lors d'une division par zéro. La sortie ci-dessous illustre ce qu'il se produit lors de l'exécution du programme :download:`/Fichiers/src/sigfpe.c`. - - .. code-block:: console - - $ ./sigfpe - Calcul de : 1252/0 - Floating point exception - - - Un :term:`signal asynchrone` est un :term:`signal` qui n'a pas été directement causé par l'exécution d'une instruction du processus. Il peut être produit par le système d'exploitation ou généré par un autre processus comme lorsque nous avons utilisé `kill(1)`_ dans un shell pour terminer un processus. - -Le système Unix fournit plusieurs appels systèmes qui permettent de manipuler les signaux. Un processus peut recevoir des signaux synchrones ou asynchrones. Pour chaque signal, le système d'exploitation définit un traitement par défaut. Pour certains signaux, leur réception provoque l'arrêt du processus. Pour d'autres, le signal est ignoré et le processus peut continuer son exécution. Un processus peut redéfinir le traitement des signaux qu'il reçoit en utilisant l'appel système `signal(2)`_. Celui-ci permet d'associer un :term:`handler` ou fonction de traitement de signal à chaque signal. Lorsqu'un :term:`handler` a été associé à un signal, le système d'exploitation exécute ce :term:`handler` dès que ce signal survient. Unix permet également à un processus d'envoyer un signal à un autre processus en utilisant l'appel système `kill(2)`_. - -.. .. index:: SIGALARM, SIGBUS, SIGFPE, SIGUSR1 -.. .. index:: SIGUSR2, SIGSEGV, SIGHUP, SIGCHLD - -Avant d'analyser en détails le fonctionnement des appels systèmes `signal(2)`_ et `kill(2)`_, il est utile de parcourir les principaux signaux. Chaque :term:`signal` est identifié par un entier positif et `signal.h`_ définit des constantes pour chaque signal reconnu par le système. Sous Linux, les principaux signaux sont : - - - ``SIGALRM``. Ce signal survient lorsqu'une alarme définie par la fonction `alarm(3posix)`_ ou l'appel système `setitimer(2)`_ a expiré. Par défaut, la réception de ce signal provoque la terminaison du processus. - - ``SIGBUS``. Ce signal correspond à une erreur au niveau matériel. Par défaut, la réception de ce signal provoque la terminaison du processus. - - ``SIGSEGV``. Ce signal correspond à une erreur dans l'accès à la mémoire, typiquement une tentative d'accès en dehors de la zone mémoire allouée au processus. Par défaut, la réception de ce signal provoque la terminaison du processus. - - ``SIGFPE``. Ce signal correspond à une erreur au niveau de l'utilisation des fonctions mathématiques, notamment en virgule flottante mais pas seulement. Par défaut, la réception de ce signal provoque la terminaison du processus. - - ``SIGTERM``. Ce signal est le signal utilisé par défaut par la commande `kill(1)`_ pour demander la fin d'un processus. Par défaut, la réception de ce signal provoque la terminaison du processus. - - ``SIGKILL``. Ce signal permet de forcer la fin d'un processus. Alors qu'un processus peut définir un handler pour le signal ``SIGTERM``, il n'est pas possible d'en définir un pour ``SIGKILL``. Ce signal est le seul qui ne peut être traité et ignoré par un processus. - - ``SIGUSR1`` et ``SIGUSR2`` sont deux signaux qui peuvent être utilisés par des processus sans conditions particulières. Par défaut, la réception d'un tel signal provoque la terminaison du processus. - - ``SIGCHLD``. Ce signal indique qu'un processus fils s'est arrêté ou a fini son exécution. Par défaut ce signal est ignoré. - - ``SIGHUP``. Aux débuts de Unix, ce signal servait à indiquer que la connexion avec le terminal avait été rompue. Aujourd'hui, il est parfois utilisé par des processus serveurs qui rechargent leur fichier de configuration lorsqu'ils reçoivent ce signal. - - ``SIGINT``. Ce signal est envoyé par le shell lorsque l'utilisateur tape `Ctrl-C` pendant l'exécution d'un programme. Il provoque normalement la terminaison du processus. - -Une description détaillée des différents signaux sous Unix et Linux peut se trouver dans `signal(7)`_, [BryantOHallaron2011]_, [StevensRago2008]_ ou encore [Kerrisk2010]_. - -.. note:: Comment arrêter proprement un processus ? - - Trois signaux permettent d'arrêter un processus : ``SIGTERM``, ``SIGINT`` et ``SIGKILL``. Lorsque l'on doit forcer l'arrêt d'un processus, il est préférable d'utiliser le signal ``SIGTERM`` car le processus peut prévoir une routine de traitement de ce signal. Cette routine peut par exemple fermer proprement toutes les ressources (fichiers, ...) utilisées par le processus. Lorsque l'on tape `Ctrl-C` dans le shell, c'est le signal ``SIGINT`` qui est envoyé au processus qui est en train de s'exécuter. Le signal ``SIGKILL`` ne peut pas être traité par le processus. Lorsque l'on envoie ce signal à un processus, on est donc certain que celui-ci s'arrêtera. Malheureusement, cet arrêt sera brutal et le processus n'aura pas eu le temps de libérer proprement toutes les ressources qu'il utilisait. Quand un processus ne répond plus, il est donc préférable de d'abord essayer ``SIGINT`` ou ``SIGTERM`` et de n'utiliser ``SIGKILL`` qu'en dernier recours. - -Envoi de signaux ----------------- - -Un processus peut envoyer un signal à un autre processus en utilisant l'appel système `kill(2)`_. - -.. code-block:: c - - #include <sys/types.h> - #include <signal.h> - - int kill(pid_t pid, int sig); - -Cet appel système prend deux arguments. Le second est toujours le numéro du signal à délivrer ou la constante définissant ce signal dans `signal.h`_. Le premier argument indique à quel(s) processus le signal doit être délivré : - - - ``pid>0``. Dans ce cas, le signal est délivré au processus ayant comme identifiant ``pid``. - - ``pid==0``. Dans ce cas, le signal est délivré à tous les processus qui font partie du même groupe de processus [#fpgrp]_ que le processus qui exécute l'appel système `kill(2)`_. - - ``pid==-1``. Dans ce cas, le signal est délivré à tous les processus pour lesquels le processus qui exécute `kill(2)`_ a les permissions suffisantes pour leur envoyer un signal. - - ``pid<-1``. Dans ce cas, le signal est délivré à tous les processus qui font partie du groupe ``abs(pid)``. - -Par défaut, un processus ne peut envoyer un signal qu'à un processus qui s'exécute avec les mêmes permissions que le processus qui exécute l'appel système `kill(2)`_. - -Traitement de signaux ---------------------- - -Pour des raisons historiques, il existe deux appels systèmes permettant à un processus de spécifier comment un signal particulier doit être traité. Le premier est l'appel système `signal(2)`_. Il prend deux arguments : le numéro du signal dont le traitement doit être modifié et la fonction à exécuter lorsque ce signal est reçu. Le second est `sigaction(2)`_. Cet appel système est nettement plus générique et plus complet que `signal(2)`_ mais il ne sera pas traité en détails dans ces notes. Des informations complémentaires sur l'utilisation de `sigaction(2)`_ peuvent être obtenues dans [Kerrisk2010]_ ou [StevensRago2008]_. - -.. code-block:: c - - #include <signal.h> - typedef void (*sighandler_t)(int); - - sighandler_t signal(int signum, sighandler_t handler); - -.. index:: SIG_DLF, SIG_IGN - -Le premier argument de l'appel système `signal(2)`_ est généralement spécifié en utilisant les constantes définies dans `signal.h`_. Le second argument est un pointeur vers une fonction de type ``void`` qui prend comme argument un entier. Cette fonction est la fonction qui sera exécutée par le système d'exploitation à la réception du signal. Ce second argument peut également être la constante ``SIG_DFL`` si le signal doit être traité avec le traitement par défaut documenté dans `signal(7)`_ et ``SIG_IGN`` si le signal doit être ignoré. La valeur de retour de l'appel système `signal(2)`_ est la façon dont le système d'exploitation gérait le signal passé en argument avant l'exécution de l'appel système (typiquement ``SIG_DFL`` ou ``SIG_IGN``) ou ``SIG_ERR`` en cas d'erreur. - -L'exemple ci-dessous est un programme simple qui compte le nombre de signaux ``SIGUSR1`` et ``SIGUSR2`` qu'il reçoit et se termine dès qu'il a reçu cinq signaux. - -.. literalinclude:: /Fichiers/src/sigusr.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lors de son exécution, ce programme affiche : - -.. code-block:: console - - $ ./sigusr & - [1] 45602 - $ kill -s SIGUSR1 45602 - $ kill -s SIGUSR2 45602 - $ kill -s SIGUSR2 45602 - $ kill -s SIGUSR1 45602 - $ kill -s SIGUSR1 45602 - $ Fin du processus - Reçu 3 SIGUSR1 et 2 SIGUSR2 - [1]+ Done ./sigusr - -Il est intéressant d'analyser le code source du programme ci-dessus. Commençons d'abord par une lecture rapide pour comprendre la logique du programme sans s'attarder sur les détails. La fonction ``main`` utilise l'appel système `signal(2)`_ pour enregistrer un handler pour les signaux ``SIGUSR1`` et ``SIGUSR2``. La fonction ``sig_handler`` sera exécutée dès réception d'un de ces signaux. Cette fonction prend comme argument le numéro du signal reçu. Cela permet, de traiter plusieurs signaux dans la même fonction. Ensuite, la boucle ``while`` est une boucle active qui ne se terminera que lorsque la somme des variables ``n_sigusr1`` et ``n_sigusr2`` sera égale à 5. Ces deux variables sont modifiées uniquement dans la fonction ``sig_handler``. Elles permettent de compter le nombre de signaux de chaque type qui ont été reçus. - -Une lecture plus attentive du code ci-dessus révèle plusieurs points importants auxquels il faut être attentif lorsque l'on utilise les signaux. - -Tout d'abord, lorsqu'un processus comprend une (ou plusieurs) fonction(s) de traitement de signaux, il y a plusieurs séquences d'instructions qui peuvent être exécutées par le processus. La première est la suite d'instructions du processus lui-même qui démarre à la fonction ``main``. Dès qu'un signal est reçu, cette séquence d'instructions est interrompue pour exécuter la séquence d'instructions de la fonction de traitement du signal. Ce n'est que lorsque cette fonction se termine que la séquence principale peut reprendre son exécution à l'endroit où elle a été interrompue. - -L'existence de deux ou plusieurs séquences d'instructions peut avoir des conséquences importantes sur le bon fonctionnement du programme et peut poser de nombreuses difficultés d'implémentation. En effet, une fonction de traitement de signal doit pouvoir être exécutée à n'importe quel moment. Elle peut donc démarrer à n'importe quel endroit de la séquence d'instructions du processus. Si le processus et une fonction de traitement de signal accèdent à la même variable, il y a un risque que celle-ci soit modifiée par la fonction de traitement du signal pendant qu'elle est utilisée dans le processus. Si l'on n'y prend garde, ces accès venant de différentes séquences d'instructions peuvent poser des problèmes similaires à ceux posés par l'utilisation de threads. Une routine de traitement de signal est cependant moins générale qu'un thread et les techniques utilisables dans les threads ne sont pas applicables aux fonctions de traitement des signaux. En effet, quand la fonction de traitement de signal démarre, il est impossible de bloquer son exécution sur un mutex pour revenir au processus principal. Celle-ci doit s'exécuter jusqu'à sa dernière instruction. - -.. index:: sig_atomic_t - -Lorsque l'on écrit une routine de traitement de signal, plusieurs précautions importantes doivent être prises. Tout d'abord, une fonction de traitement de signal doit manipuler les variables avec précautions. Comme elle est potentiellement exécutée depuis n'importe quel endroit du code, elle ne peut pas s'appuyer sur le stack. Elle ne peut utiliser que des variables globales pour influencer le processus principal. Comme ces variables peuvent être utilisées à la fois dans le processus et la routine de traitement de signal, il est important de les déclarer en utilisant le mot-clé ``volatile``. Cela force le compilateur à recharger la valeur de la variable de la mémoire à chaque fois que celle-ci est utilisée. Mais cela ne suffit pas car il est possible que le processus exécute l'instruction de chargement de la valeur de la variable puis qu'un signal lui soit délivré, ce qui provoquera l'exécution de la fonction de traitement du signal. Lorsque celle-ci se terminera le processus poursuivra son exécution sans recharger la valeur de la variable potentiellement modifiée par la fonction de traitement du signal. Face à ce problème, il est préférable d'utiliser uniquement des variables de types ``sig_atomic_t`` dans les fonctions de traitement de signaux. Ce type permet de stocker un entier. Lorsque ce type est utilisé, le compilateur garantit que tous les accès à la variable se feront de façon atomique sans accès concurrent possible entre le processus et la fonction de traitement des signaux. - -L'utilisation de ``sig_atomic_t`` n'est pas la seule précaution à prendre lorsque l'on écrit une fonction de traitement des signaux. Il faut également faire attention aux fonctions de la librairie et aux appels systèmes que l'on utilise. Sachant qu'un signal peut être reçu à n'importe quel moment, il est possible qu'un processus reçoive un signal et exécute une fonction de traitement du signal pendant l'exécution de la fonction ``fct`` de la librairie standard. Si la fonction de traitement du signal utilise également la fonction ``fct``, il y a un risque d'interférence entre l'exécution de ces deux fonctions. Ce sera le cas notamment si la fonction utilise un buffer statique ou modifie la variable ``errno``. Dans ces cas, la fonction de traitement du signal risque de modifier une valeur ou une zone mémoire qui a déjà été modifiée par le processus principal et cela donnera un résultat incohérent. Pour éviter ces problèmes, il ne faut utiliser que des fonctions "réentrantes" à l'intérieur des fonctions de traitement des signaux. Des fonctions comme `printf(3)`_, `scanf(3)`_ ne sont pas réentrantes et ne doivent pas être utilisées dans une section de traitement des signaux. La (courte) liste des fonctions qui peuvent être utilisées sans risque est disponible dans la section `2.4 de l'Open Group Base Specification <http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html>`_ - -Ces restrictions sur les instructions qui peuvent être utilisées dans une fonction de traitement des signaux ne sont pas les seules qui affectent l'utilisation des signaux. Ceux-ci souffrent d'autres limitations. - -Pour bien les comprendre, il est utile d'analyser comment ceux-ci sont supportés par le noyau. Il y a deux stratégies possibles pour implémenter les signaux sous Unix. La première stratégie est de considérer qu'un signal est un message qui est envoyé depuis le noyau ou un processus à un autre processus. Pour traiter ces messages, le noyau contient une queue qui stocke tous les signaux destinés à un processus donné. Avec cette stratégie d'implémentation, l'appel système `kill(2)`_ génère un message et le place dans la queue associée au processus destination. Le noyau stocke pour chaque processus un tableau de pointeurs vers les fonctions de traitement de chacun des signaux. Ce tableau est modifié par l'appel système `signal(2)`_. Chaque fois que le noyau réactive un processus, il vérifie si la queue associée à ce processus contient un ou plusieurs messages concernant des signaux. Si un message est présent, le noyau appelle la fonction de traitement du signal correspondant. Lorsque la fonction se termine, l'exécution du processus reprend à l'instruction qui avait été interrompue. - -La seconde stratégie est de représenter l'ensemble des signaux qu'un processus peut recevoir sous la forme de drapeaux binaires. En pratique, il y a un drapeau par signal. Avec cette stratégie d'implémentation, l'appel système `kill(2)`_ modifie le drapeau correspondant du processus destination du signal (sauf si ce signal est ignoré par le processus, dans ce cas le drapeau n'est pas modifié). L'appel système `signal(2)`_ modifie également le tableau contenant les fonctions de traitement des signaux associé au processus. Chaque fois que le noyau réactive un processus, que ce soit après un changement de contexte ou après l'exécution d'un appel système, il vérifie les drapeaux relatifs aux signaux du processus. Si un des drapeaux est vrai, le noyau appelle la fonction de traitement associée à ce signal. - -La plupart des variantes de Unix, y compris Linux, utilisent la seconde stratégie d'implémentation pour les signaux. L'avantage principal de l'utilisation de drapeaux pour représenter les signaux reçus par un processus est qu'il suffit d'un bit par signal qui peut être reçu par le processus. La première stratégie nécessite de maintenir une queue par processus et la taille de cette queue varie en fonction du nombre de signaux reçus. Par contre, l'utilisation de drapeaux a un inconvénient majeur : il n'y a pas de garantie sur la délivrance des signaux. Lorsqu'un processus reçoit un signal, cela signifie qu'il y a au moins un signal de ce type qui a été envoyé au processus, mais il est très possible que plus d'un signal ont été envoyés au processus. - -Pour illustrer ce problème, considérons le programme ci-dessous qui compte simplement le nombre de signaux ``SIGUSR1`` reçus. - -.. literalinclude:: /Fichiers/src/sigusrcount.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Depuis un shell, il est possible d'envoyer plusieurs fois le signal ``SIGUSR1`` rapidement avec le script :download:`/Fichiers/src/nkill.sh`. Ce script prend deux arguments : le nombre de signaux à envoyer et le processus destination. - -.. literalinclude:: /Fichiers/src/nkill.sh - :encoding: utf-8 - :language: console - - -La sortie ci-dessous présente une exécution de ce script avec le processus :download:`/Fichiers/src/sigusrcount.c` en tâche de fond. - -.. code-block:: console - - $ ./sigusrcount & - [1] 47845 - $ Exécution de sleep(60) - $./nkill.sh 10 47845 - Exécution de sleep(52) - $ ./nkill.sh 10 47845 - Exécution de sleep(46) - $ ./nkill.sh 10 47845 - Exécution de sleep(31) - $ Fin du processus - Reçu 3 SIGUSR1 - - -Il y a plusieurs points intéressants à noter concernant l'exécution de ce programme. Tout d'abord, même si 30 signaux ``SIGUSR1`` ont été générés, seuls 3 de ces signaux ont effectivement étés reçus. Les signaux ne sont manifestement pas fiables sous Unix et cela peut s'expliquer de deux façons. Premièrement, les signaux sont implémentés sous la forme de bitmaps. La réception d'un signal modifie simplement la valeur d'un bit dans le bitmap du processus. En outre, durant l'exécution de la fonction qui traite le signal ``SIGUSR1``, ce signal est bloqué par le système d'exploitation pour éviter qu'un nouveau signal n'arrive pendant que le premier est traité. - -Un deuxième point important à relever est l'utilisation de `sleep(3)`_. Par défaut, cette fonction de la librairie permet d'attendre un nombre de secondes passé en argument. Si `sleep(3)`_ a mis le processus en attente pendant au moins le temps demandé, elle retourne ``0`` comme valeur de retour. Mais `sleep(3)`_ est un des exemples de fonctions ou appels systèmes qui sont dits `lents`. Un :term:`appel système lent` est un appel système dont l'exécution peut être interrompue par la réception d'un signal. C'est notamment le cas pour l'appel système `read(2)`_ [#flent]_. Lorsqu'un signal survient pendant l'exécution d'un tel appel système, celui-ci est interrompu pour permettre l'exécution de la fonction de traitement du signal. Après l'exécution de cette fonction, l'appel système se termine [#frestart]_ en retournant une erreur et met ``errno`` à ``EINTR`` de façon à indiquer que l'appel système a été interrompu. Le processus doit bien entendu traiter ces interruptions d'appels systèmes si il utilise des signaux. - -Nous terminons cette section en analysant deux cas pratiques d'utilisation des signaux. Le premier est relatif aux signaux synchrones et nous développons une fonction de traitement du signal ``SIGFPE`` pour éviter qu'un programme ne s'arrête suite à une division par zéro. Ensuite, nous utilisons `alarm(3posix)`_ pour implémenter un temporisateur simple. - -Traitement de signaux synchrones ---------------------------------- - -Le programme ci-dessous prend en arguments en ligne de commande une séquence d'entiers et divise la valeur ``1252`` par chaque entier passé en argument. Il enregistre la fonction ``sigfpe_handler`` comme fonction de traitement du signal ``SIGFPE``. - - -.. literalinclude:: /Fichiers/src/sigfpe2.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lors de son exécution, ce programme affiche la sortie ci-dessous : - - -.. code-block:: console - - $ ./sigfpe2 1 2 aa 0 9 - Traitement de argv[1]=1 - 1252/1=1252 - Traitement de argv[2]=2 - 1252/2=626 - Traitement de argv[3]=aa - Argument incorrect : aa - Traitement de argv[4]=0 - Signal SIGFPE reçu - Signal SIGFPE reçu - ... - -La fonction ``sigfpe_handler`` traite bien le signal ``SIGPFE`` reçu, mais après son exécution, elle tente de recommencer l'exécution de la ligne ``int resultat=n/(int) val;``, ce qui provoque à nouveau un signal ``SIGPFE``. Pour éviter ce problème, il faut permettre à la fonction de traitement du signal de modifier la séquence d'exécution de la fonction ``main`` après la réception du signal. Une solution pourrait être d'utiliser l'instruction ``goto`` comme suit : - - -.. code-block:: c - - if(*endptr=='\0') { - int resultat=n/(int) val; - printf("%d/%d=%d\n",n,(int) val,resultat); - goto fin: - erreur: - printf("%d/%d=NaN\n",n,(int) val); - fin: - } - else { - printf("Argument incorrect : %s\n",argv[i]); - } - // ... - - static void sigfpe_handler(int signum) { - goto erreur: - } - -En C, ce genre de construction n'est pas possible car l'étiquette d'un ``goto`` doit nécessairement se trouver dans la même fonction que l'invocation de ``goto``. La seule possibilité pour faire ce genre de saut entre fonctions en C, est d'utiliser les fonctions `setjmp(3)`_ et `longjmp(3)`_. Dans un programme normal, ces fonctions sont à éviter encore plus que les ``goto`` car elles rendent le code très difficile à lire. - -.. todo:: ajouter des exemples avec des variables qui changent de valeur pour montrer l'environnement - -.. code-block:: c - - #include <setjmp.h> - - int setjmp(jmp_buf env); - - void longjmp(jmp_buf env, int val); - - -La fonction `setjmp(3)`_ est équivalente à la déclaration d'une étiquette. Elle prend comme argument un ``jmp_buf``. Cette structure de données, définie dans `setjmp.h`_ permet de sauvegarder l'environnement d'exécution, c'est-à -dire les valeurs des registres y compris ``%eip`` et ``%esp`` au moment où elle est exécutée. Lorsque `setjmp(3)`_ est exécutée dans le flot normal des instructions du programme, elle retourne la valeur ``0``. La fonction `longjmp(3)`_ prend deux arguments. Le premier est une structure de type ``jmp_buf`` et le second un entier. Le ``jmp_buf`` est l'environnement d'exécution qu'il faut restaurer lors de l'exécution de `longjmp(3)`_ et le second argument la valeur de retour que doit avoir la fonction `setjmp(3)`_ correspondante après l'exécution de `longjmp(3)`_. - -Le programme ci-dessous illustre l'utilisation de `setjmp(3)`_ et `longjmp(3)`_. - -.. literalinclude:: /Fichiers/src/longjmp.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Le programme débute en exécutant la fonction ``f``. Dans cette exécution, la fonction `setjmp(3)`_ retourne la valeur ``0``. Ensuite, la fonction ``main`` appelle la fonction ``g`` qui elle exécute ``longjmp(label,1)``. Cela provoque un retour à la fonction ``f`` à l'endroit de l'exécution de ``setjmp(label)`` qui cette fois-ci va retourner la valeur ``1``. Lors de son exécution, le programme ci-dessus affiche : - -.. literalinclude:: /Fichiers/src/longjmp.out - :encoding: utf-8 - :language: console - -Avec les fonctions `setjmp(3)`_ et `longjmp(3)`_, il est presque possible d'implémenter le traitement attendu pour le signal ``SIGFPE``. Il reste un problème à résoudre. Lorsque la routine de traitement du signal ``SIGFPE`` s'exécute, ce signal est bloqué par le système d'exploitation jusqu'à ce que cette fonction se termine. Si elle effectue un `longjmp(3)`_, elle ne se terminera jamais et le signal continuera à être bloqué. Pour éviter ce problème, il faut utiliser les fonctions `sigsetjmp(3)`_ et `siglongjmp(3)`_. Ces fonctions sauvegardent dans une structure de données ``sigjmp_buf`` non seulement l'environnement d'exécution mais aussi la liste des signaux qui sont actuellement bloqués. La fonction `sigsetjmp(3)`_ prend un argument supplémentaire : un entier qui doit être non nul si l'on veut effectivement sauvegarder la liste des signaux bloqués. Lorsque `siglongjmp(3)`_ s'exécute, l'environnement et la liste des signaux bloqués sont restaurés. - -Le programme ci-dessous présente l'utilisation de `sigsetjmp(3)`_ et `siglongjmp(3)`_. - -.. literalinclude:: /Fichiers/src/sigfpe3.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lors de son exécution, il affiche la sortie standard suivante. - -.. code-block:: console - - ./sigfpe3 1 2 3 0 a 0 3 - Traitement de argv[1]=1 - 1252/1=1252 - Traitement de argv[2]=2 - 1252/2=626 - Traitement de argv[3]=3 - 1252/3=417 - Traitement de argv[4]=0 - 1252/0=NaN - Traitement de argv[5]=a - Argument incorrect : a - Traitement de argv[6]=0 - 1252/0=NaN - Traitement de argv[7]=3 - 1252/3=417 - - -Temporisateurs --------------- - -.. index:: SIGALRM, siginterrupt - -Parfois il est nécessaire dans un programme de limiter le temps d'attente pour réaliser une opération. Un exemple simple est lorsqu'un programme attend l'entrée d'un paramètre via l'entrée standard mais peut remplacer ce paramètre par une valeur par défaut si celui-ci n'est pas entré endéans quelques secondes. Lorsqu'un programme attend une information via l'entrée standard, il exécute l'appel système `read(2)`_ directement ou via des fonctions de la librairie comme `fgets(3)`_ ou `getchar(3)`_. Par défaut, celui-ci est bloquant, cela signifie qu'il ne se terminera que lorsqu'une donnée aura été lue. Si `read(2)`_ est utilisé seul, il n'est pas possible de borner le temps d'attente du programme et d'interrompre l'appel à `read(2)`_ après quelques secondes. Pour obtenir ce résultat, une possibilité est d'utiliser un signal. En effet, `read(2)`_ est un appel système lent qui peut être interrompu par la réception d'un signal. Il y a plusieurs façons de demander qu'un signal soit généré après un certain temps. Le plus général est `setitimer(2)`_. Cet appel système permet de générer un signal ``SIGALRM`` après un certain temps ou périodiquement. L'appel système `alarm(3posix)`_ est plus ancien mais plus simple à utiliser que `setitimer(2)`_. Nous l'utilisons afin d'illustrer comment un signal peut permettre de limiter la durée d'attente d'un appel système. - -.. literalinclude:: /Fichiers/src/alarm.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Ce programme utilise `alarm(3posix)`_ pour limiter la durée d'un appel système `read(2)`_. Pour ce faire, il enregistre d'abord une fonction pour traiter le signal ``SIGALRM``. Cette fonction est vide dans l'exemple, son exécution permet juste d'interrompre l'appel système `read(2)`_. Par défaut, lorsqu'un signal survient durant l'exécution d'un appel système, celui-ci est automatiquement redémarré par le système d'exploitation pour éviter à l'application de devoir traiter tous les cas possibles d'interruption d'appels système. La fonction `siginterrupt(3)`_ permet de modifier ce comportement par défaut et nous l'utilisons pour forcer l'interruption d'appels systèmes lorsque le signal ``SIGALRM`` est reçu. L'appel à ``alarm(0)`` permet de désactiver l'alarme qui était en cours. - -Lors de son exécution, ce programme affiche la sortie suivante. - - -.. literalinclude:: /Fichiers/src/alarm.out - :encoding: utf-8 - :language: console - -En essayant le programme ci-dessus, on pourrait conclure qu'il fonctionne parfaitement. Il a cependant un petit défaut qui peut s'avérer genant si par exemple on utilise la même logique pour écrire une fonction ``read_time`` qui se comporte comme `read(2)`_ sauf que son dernier argument est un délai maximal. Sur un système fort chargé, il est possible qu'après l'exécution de ``alarm(5)`` le processus soit mis en attente par le système d'exploitation qui exécute d'autres processus. Lorsque l'alarme expire, la fonction de traitement de ``SIGALRM`` est exécutée puis seulement l'appel à `read(2)`_ s'effectue. Celui-ci étant bloquant, le processus restera bloqué jusqu'à ce que les données arrivent ce qui n'est pas le comportement attendu. - -Pour éviter ce problème, il faut empêcher l'exécution de `read(2)`_ si le signal ``SIGALRM`` a déjà été reçu. Cela peut se réaliser en utilisant `sigsetjmp(3)`_ pour définir une étiquette avant l'exécution du bloc contenant l'appel à `alarm(3posix)`_ et l'appel à `read(2)`_. Si le signal n'est pas reçu, l'appel à `read(2)`_ s'effectue normalement. Si par contre le signal ``SIGALRM`` est reçu entre l'appel à `alarm(3posix)`_ et l'appel à `read(2)`_, alors l'exécution de `siglongjmp(3)`_ dans ``sig_handler`` empêchera l'exécution de l'appel système `read(2)`_ ce qui est bien le comportement attendu. - -.. literalinclude:: /Fichiers/src/alarm2.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -L'appel système `alarm(3posix)`_ s'appuie sur `setitimer(2)`_, mais les deux types d'alarmes ne doivent pas être combinés. Il en va de même pour `sleep(3)`_ qui peut être implémenté en utilisant ``SIGALRM``. Linux contient d'autres appels systèmes et fonctions pour gérer différents types de temporisateurs. Ceux-ci sont décrits de façon détaillée dans [Kerrisk2010]_. - -.. note:: Signaux, threads, `fork(2)`_ et `execve(2)`_ - - Le noyau du système d'exploitation maintient pour chaque processus une structure de données contenant la liste des signaux qui sont ignorés, ont été reçus et les pointeurs vers les fonctions de traitement pour chaque signal. Cette structure de données est associée à chaque processus. La création de threads ne modifie pas cette structure de données et lorsqu'un signal est délivré à un processus utilisant des threads, c'est généralement le thread principal qui recevra et devra traiter le signal. Lors de l'exécution de `fork(2)`_, la structure de données relative aux signaux du processus père est copiée dans le processus fils. Après `fork(2)`_, les deux processus peuvent évoluer séparément et le fils peut par exemple modifier la façon dont il traite un signal sans que cela n'affecte le processus père. Lors de l'exécution de `execve(2)`_, la structure de données relative aux signaux est réinitialisée avec les traitements par défaut pour chacun des signaux. - - - .. _semname: - -Sémaphores nommés -================= - -Nous avons présenté les sémaphores lors de l'étude du fonctionnement des threads et les mécanismes qui permettent de les coordonner. Chaque sémaphore utilise une structure de données qui est dans une mémoire accessible aux différents threads/processus qui doivent se coordonner. Lorsque des sémaphores sont utilisés pour coordonner des threads, cette structure de données est soit stockée dans la zone réservée aux variables globales, soit sur le tas. Lorsque des processus doivent se coordonner, il ne partagent pas nécessairement [#fshmem]_ de la mémoire. Dans ce cas, la fonction `sem_init(3)`_ ne peut pas être utilisée pour créer de sémaphore. Par contre, il est possible d'utiliser des sémaphores "nommés" (named semaphores). Ces sémaphores utilisent une zone de mémoire qui est gérée par le noyau et qui peut être utilisée par plusieurs processus. Un :term:`sémaphore nommé` est identifié par un `nom`. Sous Linux, ce nom correspond à un fichier sur un système de fichiers et tout processus qui connait le nom d'un sémaphore et possède les permissions l'autorisant à y accéder peut l'utiliser. Trois appels systèmes sont utilisés pour créer, utiliser et supprimer un sémaphore nommé. Une présentation générale des sémaphores est disponible dans la page de manuel `sem_overview(7)`_. - -.. code-block:: c - - #include <fcntl.h> /* For O_* constants */ - #include <sys/stat.h> /* For mode constants */ - #include <semaphore.h> - - sem_t *sem_open(const char *name, int oflag); - sem_t *sem_open(const char *name, int oflag, - mode_t mode, unsigned int value); - int sem_close(sem_t *sem); - int sem_unlink(const char *name); - -.. index:: sem_open, sem_close, sem_unlink - -`sem_open(3)`_ permet d'ouvrir ou de créer un :term:`sémaphore nommé`. Tout comme l'appel système `open(2)`_, il existe deux variantes de `sem_open(3)`_. La première prend 2 arguments et permet d'utiliser un :term:`sémaphore nommé` déjà existant. La seconde prend quatre arguments et permet de créer un nouveau :term:`sémaphore nommé` et l'initialise à la valeur du quatrième argument. La fonction `sem_open(3)`_ s'utilise de la même façon que l'appel système `open(2)`_ sauf qu'elle retourne un pointeur vers une structure de type ``sem_t`` et qu'en cas d'erreur elle retourne ``SEM_FAILED`` et utilise ``errno`` pour fournir une information sur le type d'erreur. La fonction `sem_close(3)`_ permet à un processus d'arrêter d'utiliser un :term:`sémaphore nommé`. Enfin, la fonction `sem_unlink(3)`_ permet de supprimer un sémaphore qui avait été créé avec `sem_open(3)`_. Tout comme il est possible d'utiliser l'appel système `unlink(2)`_ sur un fichier ouvert par un processus, il est possible d'appeler `sem_unlink(3)`_ avec comme argument un nom de sémaphore utilisé actuellement par un processus. Dans ce cas, le sémaphore sera complètement libéré lorsque le dernier processus qui l'utilise aura effectué `sem_close(3)`_. Les fonctions `sem_post(3)`_ et `sem_wait(3)`_ s'utilisent de la même façon qu'avec les sémaphores non-nommés que nous avons utilisé précédemment. - -A titre d'exemple, considérons un exemple simple d'utilisation de sémaphores nommés dans lequel un processus doit attendre la fin de l'exécution d'une fonction dans un autre processus pour pouvoir s'exécuter. Avec les threads, nous avions résolu ce problème en initialisant un sémaphore à ``0`` dans le premier thread alors que le second démarrait par un `sem_wait(3)`_. Le première exécute `sem_post(3)`_ dès qu'il a fini l'exécution de sa fonction critique. - -Le programme ci-dessous illustre le processus qui s'exécute en premier. - -.. literalinclude:: /Fichiers/src/process-sem-before.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Ce processus commence par utiliser `sem_open(3)`_ pour créer un sémaphore qui porte le nom ``lsinf1252`` et est initialisé à zéro puis se met en veille pendant vingt secondes. Ensuite il exécute la fonction ``before`` qui se termine par l'exécution de ``sem_post(semaphore)``. Cet appel a pour résultat de libérer le second processus dont le code est présenté ci-dessous : - -.. literalinclude:: /Fichiers/src/process-sem-after.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Ce processus utilise le sémaphore qui a été créé par un autre processus pour se coordonner. La fonction ``after`` démarre par l'exécution de `sem_wait(3)`_ qui permet d'attendre que l'autre processus ait terminé l'exécution de la fonction ``before``. Les sémaphores nommés peuvent être créés et supprimés comme des fichiers. Il est donc normal que le sémaphore soit créé par le premier processus et supprimé par le second. Sous Linux, les sémaphores nommés sont créés comme des fichiers dans le système de fichiers virtuel ``/dev/shm`` : - -.. code-block:: console - - $ ls -l /dev/shm/ - -rw------- 1 obo stafinfo 32 Apr 10 15:37 sem.lsinf1252 - -Les permissions du fichier virtuel représentent les permissions associées au sémaphore. La sortie ci-dessous présente une exécution des deux processus présentés plus haut. - -.. code-block:: console - - $ ./process-sem-before & - [1] 5222 - $ ./process-sem-after - before done, pid=5222 - after done, pid=5223 - [1]+ Done ./process-sem-before - -Il est important de noter que les sémaphores nommés sont une ressource généralement limitée. Lorsqu'il a été créé, un sémaphore nommé utilise des ressources du système jusqu'à ce qu'il soit explicitement supprimé avec `sem_unlink(3)`_. Il est très important de toujours bien effacer les sémaphores nommés dès qu'ils ne sont plus nécessaires. Sans cela, l'espace réservé pour ces sémaphores risque d'être rempli et d'empêcher la création de nouveaux sémaphores par d'autres processus. - -.. _fileshare: - -Partage de fichiers -=================== - -Les fichiers sont l'un des principaux moyens de communication entre processus. L'avantage majeur des fichiers est leur persistence. Les données sauvegardées dans un fichier persistent sur le système de fichiers après la fin du processus qui les a écrites. L'inconvénient majeur de l'utilisation de fichiers par rapport à d'autres techniques de communication entre processus est la relative lenteur des dispositifs de stockage en comparaison avec les accès à la mémoire. Face à cette lenteur des dispositifs de stockage, la majorité des systèmes d'exploitation utilisent des buffers qui servent de tampons entre les processus et les dispositifs de stockage. Lorsqu'un processus écrit une donnée sur un dispositif de stockage, celle-ci est d'abord écrite dans un buffer géré par le système d'exploitation et le processus peut poursuivre son exécution sans devoir attendre l'exécution complète de l'écriture sur le dispositif de stockage. La taille de ces buffers varie généralement dynamiquement en fonction de la charge du système. Les données peuvent y rester entre quelques fractions de seconde et quelques dizaines de secondes. Un processus peut contrôler l'utilisation de ce buffer en utilisant l'appel système `fsync(2)`_. Celui-ci permet de forcer l'écriture sur le dispositif de stockage des données du fichier identifié par le descripteur de fichiers passé en argument. L'appel système `sync(2)`_ force quant à lui l'écriture de toutes les données actuellement stockées dans les buffers du noyau sur les dispositifs de stockage. Cet appel système est notamment utilisé par un processus système qui l'exécute toutes les trente secondes afin d'éviter que des données ne restent trop longtemps dans les buffers du noyau. - -.. index:: open file object - -L'utilisation d'un même fichier par plusieurs processus est une des plus anciennes techniques de communication entre processus. Pour comprendre son fonctionnement, il est utile d'analyser les structures de données qui sont maintenues par le noyau du système d'exploitation pour chaque fichier et chaque processus. Comme nous l'avons présenté dans le chapitre précédent, le système de fichiers utilise des inodes pour stocker les méta-données et la liste des blocs de chaque fichier. Lorsqu'un processus ouvre un fichier, le noyau du système d'exploitation lui associe le premier descripteur de fichier libre dans la table des descripteurs de fichiers du processus. Ce descripteur de fichier pointe alors vers une structure maintenue par le noyau qui est souvent appelée un :term:`open file object`. Un :term:`open file object` contient toutes les informations qui sont nécessaires au noyau pour pouvoir effectuer les opérations de manipulation d'un fichier ouvert par un processus. Parmi celles-ci, on trouve notamment : - - - le mode dans lequel le fichier a été ouvert (lecture seule, écriture, lecture/écriture). Ce mode est initialisé à l'ouverture du fichier. Le noyau vérifie le mode lors de l'exécution des appels systèmes `read(2)`_ et `write(2)`_ mais pas les permissions du fichier sur le système de fichiers. - - l'offset pointer qui est la tête de lecture/écriture dans le fichier - - une référence vers le fichier sur le système de fichiers. Dans un système de fichiers Unix, il s'agit généralement du numéro de l':term:`inode` du fichier ou d'un pointeur vers une structure contenant cet :term:`inode` et des informations comme le dispositif de stockage sur lequel il est stocké. - - -A titre d'exemple, considérons l'exécution de la commande suivante depuis le shell : - -.. code-block:: console - - $ cat < /tmp/t > /tmp/out - -Lors de son exécution, deux open file objects sont créés dans le noyau. Le premier est relatif au fichier ``/tmp/t`` qui est associé au descripteur ``stdin``. Le second est lié au fichier ``/tmp/out`` et est associé au descripteur ``stdout``. Ces open-file objects sont représentés graphiquement dans la figure ci-dessous. - -.. figure:: /Fichiers/fig/figures-10-001-c.png - :align: center - :scale: 60 - - -Les open file objects sont également utilisés lorsque plusieurs processus ouvrent le même fichier. Considérons l'exécution simultanée des deux commandes suivantes : - -.. code-block:: console - - $ prog1 file & - $ prog2 file & - -Lors de l'exécution de ces deux processus, le noyau va attribuer un descripteur de fichier à chacun d'eux. Si ``file`` est le premier fichier ouvert par chaque processus, il sera associé au descripteur ``3``. Le noyau créera un open-file object pour le fichier ``file`` utilisé par le processus ``prog1`` et un autre open-file object pour le fichier ``file`` utilisé par le processus ``prog2``. Ces deux open-file objects référencient le même inode et donc le même fichier, mais ils peuvent avoir des modes et des offset pointers qui sont totalement indépendants. Tous les accès faits par le processus ``prog2`` sont complètement indépendants des accès faits par le processus ``prog1``. Cette utilisation d'un même fichier par deux processus distincts est représentée graphiquement dans la figure ci-dessous. - -.. figure:: /Fichiers/fig/figures-10-002-c.png - :align: center - :scale: 60 - - -Sous Unix et Linux, il est important d'analyser également ce qu'il se passe lors de la création d'un processus en utilisant l'appel système `fork(2)`_. Imaginons que le processus ``prog1`` discuté ci-dessous effectue `fork(2)`_ après avoir ouvert le fichier ``file``. Dans ce cas, le noyau du système d'exploitation va dupliquer la table des descripteurs de fichiers du processus père pour créer celle du processus fils. Le processus père et le processus fils ont donc chacun une table des descripteurs de fichiers qui leur est propre. Cela permet, comme nous l'avons vu lorsque nous avons présenté les pipes, que le fils ferme un de ses descripteurs de fichiers sans que cela n'ait d'impact sur l'utilisation de ce descripteur de fichier par le processus père. Par contre, l'exécution de l'appel système `fork(2)`_ ne copie pas les open-file objects. Après exécution de `fork(2)`_ le descripteur de fichiers ``3`` dans le processus père pointe vers l'open-file object associé au fichier ``file`` et le même descripteur dans le processus fils pointe vers le même open-file object. Cette situation est représentée schématiquement dans la figure ci-dessous. - - -.. figure:: /Fichiers/fig/figures-10-003-c.png - :align: center - :scale: 80 - - -Cette utilisation d'un même open-file object par le processus père et le processus fils est une particularité importante de Unix. Elle permet aux deux processus d'écrire des données séquentiellement dans un fichier qui avait été initialement ouvert par le processus père, mais pose régulièrement des problèmes lors de la manipulation de fichiers. - -Lorsqu'un fichier est utilisé par plusieurs processus simultanément, il est nécessaire de coordonner les activités de ces processus pour éviter que le fichier ne devienne corrompu. Outre les appels systèmes classiques `open(2)`_, `read(2)`_, `write(2)`_ et `close(2)`_, Unix offre plusieurs appels systèmes qui sont utiles lorsque plusieurs processus accèdent au même fichier. - -Considérons d'abord un processus père et un processus fils qui doivent lire des données à des endroits particuliers dans un fichier. Pour cela, il est naturel d'utiliser l'appel système `lseek(2)`_ pour déplacer l'offset pointer et d'ensuite réaliser la lecture avec `read(2)`_. Malheureusement lorsqu'un père et un ou plusieurs fils [#fthreads]_ utilisent ces appels systèmes, il est possible qu'un appel à `lseek(2)`_ fait par le fils soit immédiatement suivi d'un appel à `lseek(2)`_ fait par le père avant que le fils ne puisse exécuter l'appel système `read(2)`_. Dans ce cas, le processus fils ne lira pas les données qu'il souhaitait lire dans le fichier. Les appels systèmes `pread(2)`_ et `pwrite(2)`_ permettent d'éviter ce problème. Ils complètent les appels systèmes `read(2)`_ et `write(2)`_ en prenant comme argument l'offset auquel la lecture ou l'écriture demandée doit être effectuée. `pread(2)`_ et `pwrite(2)`_ garantissent que les opérations d'écriture et de lecture qui sont effectuées avec ces appels systèmes seront atomiques. - - .. code-block:: c - - #include <unistd.h> - ssize_t pread(int fd, void *buf, size_t count, off_t offset); - - ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); - -Ce n'est pas le seul problème qui se pose lorsque plusieurs processus manipulent un même fichier. Considérons un logiciel de base de données qui comprend des processus qui lisent dans des fichiers qui constituent la base de données et d'autres qui modifient le contenu de ces fichiers. Ces opérations d'écritures et de lectures dans des fichiers partagés risquent de provoquer des problèmes d'accès concurrent similaires aux problèmes que nous avons dû traiter lorsque plusieurs threads se partagent une même mémoire. Pour réguler ces accès à des fichiers, Unix et Linux supportent des verrous (locks en anglais) que l'on peut associer à des fichiers. A première vue, un :term:`lock` peut être comparé à un :term:`mutex`. Un :term:`lock` permet à un processus d'obtenir l'accès exclusif à un fichier ou une partie de fichier tout comme un :term:`mutex` est utilisé pour réguler les accès à une variable. En théorie, il existe deux techniques d'utilisation de locks qui peuvent être utilisées sur un système Unix : - - - :term:`mandatory locking`. Dans ce cas, les processus placent des locks sur certains fichiers ou zones de fichiers et le système d'exploitation vérifie qu'aucun accès fait aux fichiers avec les appels systèmes standards ne viole ces locks. - - :term:`advisory locking`. Dans ce cas, les processus doivent vérifier eux-mêmes que les accès qu'ils effectuent ne violent pas les locks qui ont été associés aux différents fichiers. - -Certains systèmes Unix supportent les deux stratégies de locking, mais la plupart ne supportent que l':term:`advisory locking`. L':term:`advisory locking` est la stratégie la plus facile à implémenter dans le système d'exploitation. C'est aussi celle qui donne les meilleures performances. Nous limitons notre description à l':term:`advisory locking`. Le :term:`mandatory locking` nécessite un support spécifique du système de fichiers qui sort du cadre de ce cours. - -Deux appels systèmes sont utilisés pour manipuler les locks qui peuvent être associés aux fichiers : `flock(2)`_ et `fcntl(2)`_. `flock(2)`_ est la solution la plus simple. Cet appel système permet d'associer un verrou à un fichier complet. - -.. code-block:: c - - #include <sys/file.h> - int flock(int fd, int operation); - - -Il prend comme argument un descripteur de fichier et une opération. Deux types de locks sont supportés. Un lock est dit partagé (shared lock, ``operation==LOCK_SH``) lorsque plusieurs processus peuvent posséder un même lock vers un fichier. Un lock est dit exclusif (exclusive lock, ``operation==LOCK_EX``) lorsqu'un seul processus peut posséder un lock vers un fichier à un moment donné. Il faut noter que les locks sont associés aux fichiers (et donc indirectement aux inodes) et non aux descripteurs de fichiers. Pour retirer un lock associé à un fichier, il faut utiliser ``LOCK_UN`` comme second argument à l'appel `flock(2)`_. - - - -L'appel système `fcntl(2)`_ et la fonction `lockf(3)`_ sont nettement plus flexibles. Ils permettent de placer des locks sur une partie d'un fichier. `lockf(3)`_ prend trois arguments : un descripteur de fichiers, une commande et un entier qui indique la longueur de la section du fichier à associer au lock. - -.. code-block:: c - - #include <unistd.h> - int lockf(int fd, int cmd, off_t len); - - -`lockf(3)`_ supporte plusieurs commandes qui sont chacune spécifiées par une constante définie dans `unistd.h`_. La commande ``F_LOCK`` permet de placer un lock exclusif sur une section du fichier dont le descripteur est le premier argument. Le troisième argument est la longueur de la section sur laquelle le lock doit être appliqué. Par convention, la section s'étend de la position actuelle de l'offset pointer (``pos``) jusqu'à ``pos+len-1`` si ``len`` est positif et va de ``pos-len`` à ``pos-1`` si ``len`` est négatif. Si ``len`` est nul, alors la section concernée par le lock va de ``pos`` à l'infini (c'est-à -dire jusqu'à la fin du fichier, même si celle-ci change après l'application du lock). - -L'appel à `lockf(3)`_ bloque si un autre processus a déjà un lock sur une partie du fichier qui comprend celle pour laquelle le lock est demandé. La commande ``F_TLOCK`` est équivalente à ``F_LOCK`` avec comme différence qu'elle ne bloque pas si un lock existe déjà sur le fichier mais retourne une erreur. ``F_TEST`` permet de tester la présence d'un lock sans tenter d'acquérir ce lock contrairement à ``F_TLOCK``. Enfin, la commande ``F_ULOCK`` permet de retirer un lock placé précédemment. - -En pratique, `lockf(3)`_ doit s'utiliser de la même façon qu'un mutex. C'est-à -dire qu'un processus qui souhaite écrire de façon exclusive dans un fichier doit d'abord obtenir via `lockf(3)`_ un lock sur la partie du fichier dans laquelle il souhaite écrire. Lorsque l'appel à `lockf(3)`_ réussit, il peut effectuer l'écriture via `write(2)`_ et ensuite libérer le lock en utilisant `lockf(3)`_. Tout comme avec les mutex, si un processus n'utilise pas `lockf(3)`_ avant d'écrire ou de lire, cela causera des problèmes. - -L'appel système `fcntl(2)`_ est un appel "fourre-tout" qui regroupe de nombreuses opérations qu'un processus peut vouloir faire sur un fichier. L'application de locks est une de ces opérations, mais la page de manuel en détaille de nombreuses autres. Lorsqu'il est utilisé pour manipuler des locks, l'appel système `fcntl(2)`_ utilise trois arguments : - -.. code-block:: c - - #include <unistd.h> - #include <fcntl.h> - - int fcntl(int fd, int cmd, struct flock* ); - -Le premier argument est le descripteur de fichiers sur lequel le lock doit être appliqué. Le second est la commande. Tout comme `lockf(3)`_, `fcntl(2)`_ supporte différentes commandes qui sont spécifiées dans la page de manuel. Le troisième argument est un pointeur vers une structure ``flock`` qui doit contenir au minimum les champs suivants : - -.. code-block:: c - - struct flock { - ... - short l_type; /* Type of lock: F_RDLCK, - F_WRLCK, F_UNLCK */ - short l_whence; /* How to interpret l_start: - SEEK_SET, SEEK_CUR, SEEK_END */ - off_t l_start; /* Starting offset for lock */ - off_t l_len; /* Number of bytes to lock */ - pid_t l_pid; /* PID of process blocking our lock - (F_GETLK only) */ - ... - }; - -Cette structure permet de spécifier plus finement qu'avec la fonction `lockf(3)`_ la section du fichier sur laquelle le lock doit être placé. L'utilisation de locks force le noyau à maintenir des structures de données supplémentaires pour stocker ces locks et les processus qui peuvent être en attente sur chacun de ces locks. Conceptuellement, cette structure de données est associée à chaque fichier comme représenté dans la figure ci-dessous. - -.. figure:: /Fichiers/fig/figures-10-004-c.png - :align: center - :scale: 80 - - Gestion des locks par le kernel - -Comme les locks sont associés à des fichiers, le noyau doit maintenir pour chaque fichier ouvert une liste de locks. Celle-ci peut être implémentée sous la forme d'une liste chaînée comme représenté ci-dessus ou sous la forme d'une autre structure de données. Le point important est que le noyau doit mémoriser pour chaque fichier utilisant des locks quelles sont les sections du fichier qui sont concernées par chaque lock, quel est le type de lock, quel est le processus qui possède le lock (pour autoriser uniquement ce processus à le retirer) et enfin une liste ou une queue des processus qui sont en attente sur ce lock. - -Sous Linux, le système de fichiers virtuel ``/proc`` fournit une interface permettant de visualiser l'état des locks. Il suffit pour cela de lire le contenu du fichier ``/proc/locks``. - -.. code-block:: console - - cat /proc/locks - 1: POSIX ADVISORY WRITE 12367 00:17:20628657 0 0 - 2: POSIX ADVISORY WRITE 12367 00:17:7996086 0 0 - 3: POSIX ADVISORY WRITE 12367 00:17:24084665 0 0 - 4: POSIX ADVISORY WRITE 12367 00:17:12634137 0 0 - 5: POSIX ADVISORY WRITE 30677 00:17:14534587 1073741824 1073742335 - 6: POSIX ADVISORY READ 30677 00:17:25756362 128 128 - 7: POSIX ADVISORY READ 30677 00:17:25756359 1073741826 1073742335 - 8: POSIX ADVISORY READ 30677 00:17:25756319 128 128 - 9: POSIX ADVISORY READ 30677 00:17:25756372 1073741826 1073742335 - 10: POSIX ADVISORY WRITE 30677 00:17:25757269 1073741824 1073742335 - 11: POSIX ADVISORY WRITE 30677 00:17:25756354 0 EOF - 12: FLOCK ADVISORY WRITE 22677 00:18:49578023 0 EOF - 13: POSIX ADVISORY WRITE 3023 08:01:652873 0 EOF - 14: POSIX ADVISORY WRITE 3014 08:01:652855 0 EOF - 15: POSIX ADVISORY WRITE 2994 08:01:652854 0 EOF - 16: FLOCK ADVISORY WRITE 2967 08:01:798437 0 EOF - 17: FLOCK ADVISORY WRITE 2967 08:01:797391 0 EOF - 18: FLOCK ADVISORY WRITE 1278 08:01:652815 0 EOF - -Dans ce fichier, la première colonne indique le type de lock (``POSIX`` pour un lock placé avec `fcntl(2)`_ ou `lockf(3)`_ et ``FLOCK`` pour un lock placé avec `flock(2)`_). La deuxième indique si le lock est un :term:`advisory lock` ou un :term:`mandatory lock`. La troisième spécifie si le lock protège l'écriture et/ou la lecture. La quatrième colonne est l'identifiant du processus qui possède le lock. La cinquième précise le dispositif de stockage et le fichier concerné par ce lock (le dernier nombre est l'inode du fichier). Enfin, les deux dernières colonnes spécifient la section qui est couverte par le lock avec ``EOF`` qui indique la fin du fichier. - -.. rubric:: Footnotes - -.. [#fpgrp] Chaque processus appartient à groupe de processus. Ce groupe de processus peut être récupéré via l'appel système `getpgrp(2)`_. Par défaut, lorsqu'un processus est créé, il appartient au même groupe de processus que son processus père, mais il est possible de changer de groupe de - processus en utilisant l'appel système `setpgid(2)`_. En pratique, les groupes de processus sont surtout utilisés par le shell. Lorsqu'un utilisateur exécute une commande combinée telle que ``cat /tmp/t | ./a.out``, il souhaite pouvoir l'arrêter en tapant sur `Ctrl-C` si nécessaire. Pour cela, il faut pouvoir délivrer le signal ``SIGINT`` aux processus ``cat`` et ``a.out``. - -.. [#flent] Les autres appels systèmes lents sont `open(2)`_, `write(2)`_, `sendto(2)`_, `recvfrom(2)`_, `sendmsg(2)`_, `recvmsg(2)`_, `wait(2)`_ `ioctl(2)`_. - -.. [#frestart] L'appel système `sigaction(2)`_ permet notamment de spécifier pour chaque signal si un appel système interrompu par ce signal doit être automatiquement redémarré lorsque le signal survient ou non. - -.. [#fshmem] Nous verrons dans le prochain chapitre comment plusieurs processus peuvent partager une même zone mémoire. - -.. [#fthreads] Même si il n'a pas été mentionné lors de l'utilisation de threads, ce problème se pose également lorsque plusieurs threads accèdent directement aux données dans un même fichier. - - diff --git a/Theorie/Fichiers/fichiers.rst b/Theorie/Fichiers/fichiers.rst deleted file mode 100644 index 1544bec..0000000 --- a/Theorie/Fichiers/fichiers.rst +++ /dev/null @@ -1,445 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012, 2019 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _utilisateurs: - - -Gestion des utilisateurs -======================== - -.. spelling:: - - multi - -Unix est un système d'exploitation multi-utilisateurs. Un tel système impose des contraintes de sécurité qui n'existent pas sur un système mono-utilisateur. Il est intéressant de passer en revue quelques unes de ces contraintes : - - - il doit être possible d'identifier et/ou d'authentifier les utilisateurs du système - - il doit être possible d'exécuter des processus appartenant à plusieurs utilisateurs simultanément et de déterminer quel utilisateur est responsable de chaque opération - - le système d'exploitation doit fournir des mécanismes simples qui permettent de contrôler l'accès aux différentes ressources (mémoire, stockage, ...). - - il doit être possible d'allouer certaines ressources à un utilisateur particulier à un moment donné - - -Aujourd'hui, la plupart des systèmes informatiques demandent une authentification de l'utilisateur sous la forme d'un mot de passe, d'une manipulation particulière voire d'une identification biométrique comme une empreinte digitale. Cette authentification permet de vérifier que l'utilisateur est autorisé à manipuler le système informatique. Cela n'a pas toujours été le cas et de nombreux systèmes informatiques plus anciens étaient conçus pour être utilisés par un seul utilisateur qui était simplement celui qui interagissait physiquement avec l'ordinateur. - -Les systèmes Unix supportent différents mécanismes d'authentification. Le plus simple et le plus utilisé est l'authentification par mot de passe. Chaque utilisateur est identifié par un nom d'utilisateur et il doit prouver son identité en tapant son mot de passe au démarrage de toute session sur le système. En pratique, une session peut s'établir localement sur l'ordinateur via son interface graphique par exemple ou à distance en faisant tourner un serveur tel que `sshd(8)`_ sur le système Unix et en permettant aux utilisateurs de s'y connecter via Internet en utilisant un client `ssh(1)`_. Dans les deux cas, le système d'exploitation lance un processus `login(1)`_ qui permet de vérifier le nom d'utilisateur et le mot de passe fourni par l'utilisateur. Si le mot de passe correspond à celui qui est stocké sur le système, l'utilisateur est authentifié et son shell peut démarrer. Sinon, l'accès au système est refusé. - - -.. spelling:: - - username - inode - inodes - -Lorsqu'un utilisateur se connecte sur un système Unix, il fournit son nom d'utilisateur ou `username`. Ce nom d'utilisateur est une chaîne de caractères qui est facile à mémoriser par l'utilisateur. D'un point de vue implémentation, un système d'exploitation préfère manipuler des nombres plutôt que des chaînes de caractères. Unix associe à chaque utilisateur un identifiant qui est stocké sous la forme d'un nombre entier positif. La table de correspondance entre l'identifiant d'utilisateur et le nom d'utilisateur est le fichier `/etc/passwd`. Ce fichier texte, comme la grande majorité des fichiers de configuration d'un système Unix, comprend pour chaque utilisateur l'information suivante : - - - nom d'utilisateur (`username`) - - mot de passe (sur les anciennes versions de Unix) - - identifiant de l'utilisateur (:term:`userid`) - - identifiant du groupe principal auquel l'utilisateur appartient - - nom et prénom de l'utilisateur - - répertoire de démarrage de l'utilisateur - - shell de l'utilisateur - -L'extrait ci-dessous présente un exemple de fichier ``/etc/passwd``. Des détails complémentaires sont disponibles dans la page de manuel `passwd(5)`_. Un utilisateur peut modifier les informations le concernant dans ce fichier avec la commande `passwd(1)`_. - -.. code-block:: console - - # Exemple de /etc/passwd - nobody:*:-2:-2:Unprivileged User:/var/empty:/usr/bin/false - root:*:0:0:System Administrator:/var/root:/bin/sh - daemon:*:1:1:System Services:/var/root:/usr/bin/false - slampion:*:1252:1252:Séraphin Lampion:/home/slampion:/bin/bash - -Il y a en pratique trois types d'utilisateurs sur un système Unix. L'utilisateur :term:`root` est l'administrateur du système. C'est l'utilisateur qui a le droit de réaliser toutes les opérations sur le système. Il peut créer de nouveaux utilisateurs, mais aussi formatter les disques, arrêter le système, interrompre des processus utilisateurs ou accéder à l'ensemble des fichiers sans restriction. Par convention, cet utilisateur a l'identifiant ``0``. Ensuite, il y a tous les utilisateurs `normaux` du système Unix. Ceux-ci ont le droit d'accéder à leurs fichiers, d'interagir avec leurs processus mais en général ne peuvent pas manipuler les fichiers d'autres utilisateurs ou interrompre leurs processus. L'utilisateur `slampion` dans l'exemple ci-dessus est un utilisateur `normal`. Enfin, pour faciliter l'administration du système, certains systèmes Unix utilisent des utilisateurs qui correspondent à un service particulier comme l'utilisateur `daemon` dans l'exemple ci-dessus. Une discussion de ce type d'utilisateur sort du cadre de ces notes. Le lecteur intéressé pourra consulter une référence sur l'administration des système Unix telle que [AdelsteinLubanovic2007]_ ou [Nemeth+2010]_. - -Unix associe à chaque processus un identifiant d'utilisateur. Cet identifiant est stocké dans l'entrée du processus dans la table des processus. Un processus peut récupérer son identifiant d'utilisateur via l'appel système `getuid(2)`_. Outre cet appel système, il existe également l'appel système `setuid(2)`_ qui permet de modifier le :term:`userid` du processus en cours d'exécution. Pour des raisons évidentes de sécurité, seul un processus appartenant à l'administrateur système (:term:`root`) peut exécuter cet appel système. C'est le cas par exemple du processus `login(1)`_ qui appartient initialement à :term:`root` puis exécute `setuid(2)`_ afin d'appartenir à l'utilisateur authentifié puis exécute `execve(2)`_ pour lancer le premier shell appartenant à l'utilisateur. - -En pratique, il est parfois utile d'associer des droits d'accès à des groupes d'utilisateurs plutôt qu'à un utilisateur particulier. Par exemple, un département universitaire peut avoir un groupe correspondant à tous les étudiants et un autre aux membres du staff pour leur donner des permissions différentes. Un utilisateur peut appartenir à un groupe principal et plusieurs groupes secondaires. Le groupe principal est spécifié dans le fichier `passwd(5)`_ tandis que le fichier ``/etc/group`` décrit dans `group(5)`_ contient les groupes secondaires. - - -.. _fichiers: - -Systèmes de fichiers -==================== - -Outre un processeur et une mémoire, la plupart des ordinateurs actuels sont en général équipés d'un ou plusieurs dispositifs de stockage. Les dispositifs les plus courants sont le disque dur, le lecteur de CD/DVD, la clé USB, la carte mémoire, ... Ces dispositifs de stockage ont des caractéristiques techniques très différentes. Certains stockent l'information sous forme magnétique, d'autres sous forme électrique ou en creusant via un laser des trous dans un support physique. D'un point de vue logique, ils offrent tous une interface très similaire au système d'exploitation qui veut les utiliser. - -Dans un système de fichiers Unix, l'ensemble des répertoires et fichiers est organisé sous la forme d'un arbre. La racine de cet arbre est le répertoire ``/``. Il est localisé sur un des dispositifs de stockage du système. Le système de fichiers Unix permet d'intégrer facilement des systèmes de fichiers qui se trouvent sur différents dispositifs de stockage. Cette opération est en général réalisée par l'administrateur système en utilisant la commande `mount(8)`_. A titre d'exemple, voici quelques répertoires qui sont montés sur un système Linux. - -.. code-block:: console - - $ df -k - Filesystem 1K-blocks Used Available Use% Mounted on - /dev/sda1 15116836 9425020 4923912 66% / - tmpfs 1559516 4724 1554792 1% /dev/shm - /dev/sda2 19840924 4374616 14442168 24% /xendomains - xenstore 1972388 40 1972348 1% /var/lib/xenstored - david:/mnt/student 258547072 188106176 59935296 76% /etinfo/users - david:/mnt/staff 254696800 177422400 64136160 74% /etinfo/users2 - -Dans l'exemple ci-dessus, la première colonne correspond au dispositif de stockage qui contient les fichiers et répertoires. Le premier dispositif de stockage ``/dev/sda1/`` est un disque local et contient le répertoire racine du système de fichiers. Le système de fichiers ``david://mnt/student`` est stocké sur le serveur ``david`` et est monté via `mount(8)`_ dans le répertoire ``/etinfo/users``. Ainsi, tout accès à un fichier dans le répertoire ``/etinfo/users`` se fera via le serveur ``david``. - -Chaque répertoire du système de fichiers contient un ou plusieurs répertoires et un ou plusieurs fichiers. A titre d'exemple, il est intéressant de regarder le contenu de deux répertoires. Le premier est un extrait au contenu du répertoire racine obtenu avec la commande `ls(1)`_ - -.. code-block:: console - - $ ls -la / - dr-xr-xr-x. 26 root root 233472 Feb 23 03:18 . - dr-xr-xr-x. 26 root root 233472 Feb 23 03:18 .. - -rw-r--r-- 1 root root 0 Feb 13 16:45 .autofsck - -rw-r--r-- 1 root root 0 Jul 27 2011 .autorelabel - dr-xr-xr-x. 4 root root 4096 Dec 15 05:50 boot - drwxr-xr-x 19 root root 4160 Mar 22 12:04 dev - drwxr-xr-x. 125 root root 12288 Mar 22 12:04 etc - drwxr-xr-x 4 root root 0 Mar 22 10:22 etinfo - drwxr-xr-x. 2 root root 4096 Jan 6 2011 home - dr-xr-xr-x. 14 root root 4096 Mar 22 03:26 lib - dr-xr-xr-x. 10 root root 12288 Mar 22 03:26 lib64 - drwx------. 2 root root 16384 Jul 27 2011 lost+found - ... - drwxrwxrwt. 104 root root 4096 Mar 22 12:05 tmp - drwxr-xr-x. 13 root root 4096 Jul 19 2011 usr - drwxr-xr-x. 23 root root 4096 Jul 27 2011 var - -Le répertoire racine contient quelques fichiers et des répertoires. Tout répertoire contient deux répertoires spéciaux. Le premier répertoire, identifié par le caractère ``.`` (un seul point) est un alias vers le répertoire lui-même. Cette entrée de répertoire est présente dans chaque répertoire dès qu'il est créé avec une commande telle que `mkdir(1)`_. Le deuxième répertoire spécial est ``..`` (deux points consécutifs). Ce répertoire est un alias vers le répertoire parent du répertoire courant. - -Les méta-données qui sont associées à chaque fichier ou répertoire contiennent, outre les informations de type, les bits de permission. Ceux-ci permettent d'encoder trois types de permissions et d'autorisation : - - - ``r`` : autorisation de lecture - - ``w`` : autorisation d'écriture ou de modification - - ``x`` : autorisation d'exécution - -Ces bits de permissions sont regroupés en trois blocs. Le premier bloc correspond aux bits de permission qui sont applicables pour les accès qui sont effectués par un processus qui appartient à l'utilisateur qui est propriétaire du fichier/répertoire. Le deuxième bloc correspond aux bits de permission qui sont applicables pour les opérations effectuées par un processus dont l'identifiant de groupe est identique à l'identifiant de groupe du fichier/répertoire mais n'appartient pas à l'utilisateur qui est propriétaire du fichier/répertoire. Le dernier bloc est applicable pour les opérations effectuées par des processus qui appartiennent à d'autres utilisateurs. - -Les valeurs de ces bits sont représentés pas les symboles ``rwx`` dans l'output de la commande `ls(1)`_. Les bits de permission peuvent être modifiés en utilisant la commande `chmod(1)`_ qui utilise l'appel système `chmod(2)`_. Pour qu'un exécutable puisse être exécuté via l'appel système `execve(2)`_, il est nécessaire que le fichier correspondant possède les bits de permission ``r`` et ``x``. - - -.. note:: Manipulation des bits de permission avec `chmod(2)`_ - - L'appel système `chmod(2)`_ permet de modifier les bits de permission qui sont associés à un fichier. Ceux-ci sont encodés sous la forme d'un entier sur 16 bits. - - - ``S_IRUSR (00400)`` : permission de lecture par le propriétaire - - ``S_IWUSR (00200)`` : permission d'écriture par le propriétaire - - ``S_IXUSR (00100)`` : permission d'exécution par le propriétaire - - ``S_IRGRP (00040)`` : permission de lecture par le groupe hormis le propriétaire - - ``S_IWGRP (00020)`` : permission d'écriture par le groupe hormis le propriétaire - - ``S_IXGRP (00010)`` : permission d'exécution par le groupe hormis le propriétaire - - ``S_IROTH (00004)`` : permission de lecture par tout utilisateur hormis le propriétaire et son groupe - - ``S_IWOTH (00002)`` : permission d'écriture par tout utilisateur hormis le propriétaire et son groupe - - ``S_IXOTH (00001)`` : permission d'exécution par tout utilisateur hormis le propriétaire et son groupe - - .. code-block:: c - - #include <sys/stat.h> - int chmod(const char *path, mode_t mode); - - Ces bits de permissions sont généralement spécifiés soit sous la forme d'une disjonction logique ou sous forme numérique. A titre d'exemple, un fichier qui peut être lu et écrit uniquement par son propriétaire aura comme permissions ``00600`` ou ``S_IRUSR|S_IWUSR``. - - Le :term:`nibble` de poids fort des bits de permission sert à encoder des permissions particulières relatives aux fichiers et répertoires. Par exemple, lorsque la permission ``S_ISUID (04000)`` est associée à un exécutable, elle indique que celui-ci doit s'exécuter avec les permissions du propriétaire de l'exécutable et pas les permissions de l'utilisateur. Cette permission spéciale est utilisée par des programmes comme `passwd(1)`_ qui doivent disposer des permissions de l'administrateur système pour s'exécuter correctement (`passwd(1)`_ doit modifier le fichier `passwd(5)`_ qui appartient à l'administrateur système). - - -Les exemples ci-dessous présentent le contenu partiel d'un répertoire. - -.. code-block:: console - - $ ls -lai /etinfo/users/obo - total 1584396 - drwx------ 78 obo stafinfo 4096 Mar 17 00:34 . - drwxr-xr-x 93 root root 4096 Feb 22 11:37 .. - -rwxr-xr-x 1 obo stafinfo 11490 Feb 28 00:43 a.out - -rw------- 1 obo stafinfo 4055 Mar 22 15:13 .bash_history - -rw-r--r-- 1 obo stafinfo 55 Sep 18 1995 .bash_profile - -rw-r--r-- 1 obo stafinfo 101 Aug 28 2003 .bashrc - drwxr-xr-x 2 obo stafinfo 4096 Nov 22 2004 bin - -rw-r--r-- 1 obo stafinfo 346 Feb 13 15:37 hello.c - drwxr-xr-x 3 obo stafinfo 4096 Mar 2 09:30 sinf1252 - drwxr-xr-x 2 obo stafinfo 4096 May 17 2011 src - -Dans un système Unix, que ce soit au niveau du shell ou dans n'importe quel processus écrit par exemple en langage C, les fichiers peuvent être spécifiés de deux façons. La première est d'indiquer le chemin complet depuis la racine qui permet d'accéder au fichier. Le chemin ``/etinfo/users/obo`` passé comme argument à la commande `ls(1)`_ ci-dessus en est un exemple. Le premier caractère ``/`` correspond à la racine du système de fichiers et ensuite ce caractère est utilisé comme séparateur entre les répertoires successifs. Ainsi, le fichier ``/etinfo/users/obo/hello.c`` est un fichier qui a comme nom ``hello.c`` qui se trouve dans un répertoire nommé ``obo`` qui lui-même se trouve dans le répertoire ``users`` qui est dans le répertoire baptisé ``etinfo`` dans le répertoire racine. La seconde façon de spécifier un nom de fichier est de préciser son nom relatif. Pour éviter de forcer l'utilisateur à spécifier chaque fois le nom complet des fichiers et répertoires auxquels il veut accéder, le noyau maintient dans sa table des processus le :term:`répertoire courant` de chaque processus. Par défaut, lorsqu'un processus est lancé, son répertoire courant est le répertoire à partir duquel le programme a été lancé. Ainsi, lorsque l'utilisateur tape une commande comme ``gcc hello.c`` depuis son shell, le processus `gcc(1)`_ peut directement accéder au fichier ``hello.c`` qui se situe dans le répertoire courant. Un processus peut modifier son répertoire courant en utilisant l'appel système `chdir(2)`_. - - -.. code-block:: c - - #include <unistd.h> - - int chdir(const char *path); - -Cet appel système prend comme argument une chaîne de caractères contenant le nom du nouveau répertoire courant. Ce nom peut être soit un nom complet (commençant par ``/``), ou un nom relatif au répertoire courant actuel. Dans ce cas, il est parfois utile de pouvoir référer au répertoire parent du répertoire courant. Cela se fait en utilisant ``..``. Dans chaque répertoire, cet alias correspond au répertoire parent. Ainsi, si le répertoire courant est ``/etinfo/users``, alors le répertoire ``../../bin`` est le répertoire ``bin`` se trouvant dans le répertoire racine. Depuis le shell, il est possible de modifier le répertoire courant avec la commande `cd(1posix)`_. La commande `pwd(1)`_ affiche le répertoire courant actuel. - - -Il existe plusieurs appels systèmes et fonctions de la librairie standard qui permettent de parcourir le système de fichiers. Les principaux sont : - - - l'appel système `stat(2)`_ permet de récupérer les méta-données qui sont associées à un fichier ou un répertoire. La commande `stat(1)`_ fournit des fonctionnalités similaires depuis le shell. - - les appels systèmes `chmod(2)`_ et `chown(2)`_ permettent de modifier respectivement le mode (i.e. les permissions), le propriétaire et le groupe associés à un fichier. Les commandes `chmod(1)`_, `chown(1)`_ et `chgrp(1)`_ permettent de faire de même depuis le shell. - - l'appel système `utime(2)`_ permet de modifier les dates de création/modification associées à un fichier/répertoire. Cet appel système est utilisé par la commande `touch(1)`_ - - l'appel système `rename(2)`_ permet de changer le nom d'un fichier ou d'un répertoire. Il est utilisé notamment par la commande `rename(1)`_ - - l'appel système `mkdir(2)`_ permet de créer un répertoire alors que l'appel système `rmdir(2)`_ permet d'en supprimer un - - les fonctions de la librairie `opendir(3)`_, `closedir(3)`_, et `readdir(3)`_ permettent de consulter le contenu de répertoires. - -Les fonctions de manipulation des répertoires méritent que l'on s'y attarde un peu. Un répertoire est un fichier qui a une structure spéciale. Ces trois fonctions permettent d'en extraire de l'information en respectant le format d'un répertoire. Pour accéder à un répertoire, il faut d'abord l'ouvrir en utilisant `opendir(3)`_. La fonction `readdir(3)`_ permet d'accéder aux différentes entrées de ce répertoire et `closedir(3)`_ doit être utilisée lorsque l'accès n'est plus nécessaire. La fonction `readdir(3)`_ permet de manipuler la structure ``dirent`` qui est définie dans `bits/dirent.h`_. - -.. code-block:: c - - struct dirent { - ino_t d_ino; /* inode number */ - off_t d_off; /* offset to the next dirent */ - unsigned short d_reclen; /* length of this record */ - unsigned char d_type; /* type of file; not supported - by all file system types */ - char d_name[256]; /* filename */ - }; - - -.. spelling:: - - l'inode - métadonnée - -Cette structure comprend le numéro de l'inode, c'est-à -dire la métadonnée qui contient les informations relatives au fichier/répertoire, la position de l'entrée ``dirent`` qui suite, la longueur de l'entrée, son type et le nom de l'entrée dans le répertoire. Chaque appel à `readdir(3)`_ retourne un pointeur vers une structure de ce type. - - -L'extrait de code ci-dessous permet de lister tous les fichiers présents dans le répertoire ``name``. - -.. literalinclude:: /Fichiers/src/readdir.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -La lecture d'un répertoire avec `readdir(3)`_ commence au début de ce répertoire. A chaque appel à `readdir(3)`_, le programme appelant récupère un pointeur vers une zone mémoire contenant une structure ``dirent`` avec l'entrée suivante du répertoire ou ``NULL`` lorsque la fin du répertoire est atteinte. Si une fonction doit relire à nouveau un répertoire, cela peut se faire en utilisant `seekdir(3)`_ ou `rewinddir(3)`_. - - -.. note:: `readdir(3)`_ et les threads - - La fonction `readdir(3)`_ est un exemple de fonction non-réentrante qu'il faut éviter d'utiliser dans une application dont plusieurs threads doivent pouvoir parcourir le même répertoire. Ce problème est causé par l'utilisation d'une zone de mémoire ``static`` afin de stocker la structure dont le pointeur est retourné par `readdir(3)`_. Dans une application utilisant plusieurs threads, il faut utiliser la fonction `readdir_r(3)`_ : - - .. code-block:: c - - int readdir_r(DIR *restrict dirp, struct dirent *restrict entry, - struct dirent **restrict result); - - - Cette fonction prend comme arguments le pointeur ``entry`` vers un buffer propre à l'appelant qui permet de stocker le résultat de `readdir_r(3)`_. - - -Les appels systèmes `link(2)`_ et `unlink(2)`_ sont un peu particuliers et méritent une description plus détaillée. Sous Unix, un :term:`inode` est associé à chaque fichier mais l':term:`inode` ne contient pas le nom de fichier parmi les méta-données qu'il stocke. Par contre, chaque :term:`inode` contient un compteur (``nlinks``) du nombre de liens vers un fichier. Cela permet d'avoir une seule copie d'un fichier qui est accessible depuis plusieurs répertoires. Pour comprendre cette utilisation des liens sur un système de fichiers Unix, considérons le scénario suivant. - -.. code-block:: console - - $ mkdir a - $ mkdir b - $ cd a - $ echo "test" > test.txt - $ cd .. - $ ln a/test.txt a/test2.txt - $ ls -li a - total 16 - 9624126 -rw-r--r-- 2 obo stafinfo 5 24 mar 21:14 test.txt - 9624126 -rw-r--r-- 2 obo stafinfo 5 24 mar 21:14 test2.txt - $ ln a/test.txt b/test3.txt - $ stat --format "inode=%i nlinks=%h" b/test3.txt - inode=9624126 nlinks=3 - $ ls -li b - total 8 - 9624126 -rw-r--r-- 3 obo stafinfo 5 24 mar 21:14 test3.txt - $ echo "complement" >> b/test3.txt - $ ls -li a - total 16 - 9624126 -rw-r--r-- 3 obo stafinfo 16 24 mar 21:15 test.txt - 9624126 -rw-r--r-- 3 obo stafinfo 16 24 mar 21:15 test2.txt - $ ls -li b - total 8 - 9624126 -rw-r--r-- 3 obo stafinfo 16 24 mar 21:15 test3.txt - $ cat b/test3.txt - test - complement - $ cat a/test.txt - test - complement - $ rm a/test2.txt - $ ls -li a - total 8 - 9624126 -rw-r--r-- 2 obo stafinfo 16 24 mar 21:15 test.txt - $ rm a/test.txt - $ ls -li a - $ ls -li b - total 8 - 9624126 -rw-r--r-- 1 obo stafinfo 16 24 mar 21:15 test3.txt - -Dans ce scénario, deux répertoires sont créés avec la commande `mkdir(1)`_. Ensuite, la commande `echo(1)`_ est utilisée pour créer le fichier ``test.txt`` contenant la chaîne de caractères ``test`` dans le répertoire ``a``. Ce fichier est associé à l':term:`inode` ``9624126``. La commande `ln(1)`_ permet de rendre ce fichier accessible sous un autre nom depuis le même répertoire. La sortie produite par la commande `ls(1)`_ indique que ces deux fichiers qui sont présents dans le répertoire ``a`` ont tous les deux le même ``inode``. Ils correspondent donc aux mêmes données sur le disque. A ce moment, le compteur ``nlinks`` de l':term:`inode` ``9624126`` a la valeur ``2``. La commande `ln(1)`_ peut être utilisée pour créer un lien vers un fichier qui se trouve dans un autre répertoire [#flns]_ comme le montre la création du fichier ``test3.txt`` dans le répertoire ``b``. Ces trois fichiers correspondant au même :term:`inode`, toute modification à l'un des fichiers affecte et est visible dans n'importe lequel des liens vers ce fichier. C'est ce que l'on voit lorsque la commande ``echo "complement" >> b/test3.txt`` est exécutée. Cette commande affecte immédiatement les trois fichiers. La commande ``rm a/test2.txt`` efface la référence du fichier sous le nom ``a/test2.txt``, mais les deux autres liens restent accessibles. Le fichier ne sera réellement effacé qu'après que le dernier lien vers l':term:`inode` correspondant aie été supprimé. La commande `rm(1)`_ utilise en pratique l'appel système `unlink(2)`_ qui en toute généralité décrémente le compteur de liens de l'inode correspondant au fichier et l'efface lorsque ce compteur atteint la valeur ``0``. - -Une description détaillée du fonctionnement de ces appels systèmes et fonctions de la librairie standard peut se trouver dans les livres de référence sur la programmation en C sous Unix [Kerrisk2010]_, [Mitchell+2001]_, [StevensRago2008]_. - - -Utilisation des fichiers ------------------------- - -Si quelques processus manipulent le système de fichiers et parcourent les répertoires, les processus qui utilisent des données sauvegardées dans des fichiers sont encore plus nombreux. Un système Unix offre deux possibilités d'écrire et de lire dans un fichier. La première utilise directement les appels systèmes `open(2)`_, `read(2)`_/ `write(2)`_ et `close(2)`_. La seconde s'appuie sur les fonctions `fopen(3)`_, `fread(3)`_/ `fwrite(3)`_ et `fclose(3)`_ de la librairie `stdio(3)`_. Seuls les appels systèmes sont traités dans ce cours. Des détails complémentaires sur les fonctions de la libraire peuvent être obtenus dans [Kerrisk2010]_, [Mitchell+2001]_ ou [StevensRago2008]_. - -Du point de vue des appels systèmes de manipulation des fichiers, un fichier est une séquence d'octets. Avant qu'un processus ne puisse écrire ou lire dans un fichier, il doit d'abord demander au système d'exploitation l'autorisation d'accéder au fichier. Cela se fait en utilisant l'appel système `open(2)`_. - -.. code-block:: c - - #include <sys/types.h> - #include <sys/stat.h> - #include <fcntl.h> - - int open(const char *pathname, int flags); - int open(const char* pathname, int flags, mode_t mode); - -Il existe deux variantes de l'appel système `open(2)`_. La première permet d'ouvrir des fichiers existants. Elle prend deux arguments. La deuxième permet de créer un nouveau fichier et l'ouvre ensuite. Elle prend trois arguments. Le premier argument est le nom absolu ou relatif du fichier dont l'ouverture est demandée. Le deuxième argument est un entier qui contient un ensemble de drapeaux binaires qui précisent la façon dont le fichier doit être ouvert. Ces drapeaux sont divisés en deux groupes. Le premier groupe est relatif à l'accès en lecture et/ou en écriture du fichier. Lors de l'ouverture d'un fichier avec `open(2)`_, il est nécessaire de spécifier l'un des trois drapeaux d'accès suivants : - - - ``O_RDONLY`` : indique que le fichier est ouvert uniquement en lecture. Aucune opération d'écriture ne sera effectuée sur le fichier. - - ``O_WRONLY`` : indique que le fichier est ouvert uniquement en écriture. Aucune opération de lecture ne sera effectuée sur le fichier. - - ``O_RDWR`` : indique que le fichier est ouvert pour des opérations de lecture et d'écriture. - -En plus de l'un des trois drapeaux ci-dessus, il est également possible de spécifier un ou plusieurs drapeaux optionnels. Ces drapeaux sont décrits en détails dans la page de manuel `open(2)`_. Les plus utiles sont probablement : - - - ``O_CREAT`` : indique que si le fichier n'existe pas, il doit être créé lors de l'exécution de l'appel système `open(2)`_. L'appel système `creat(2)`_ peut également être utilisé pour créer un nouveau fichier. Lorsque le drapeau ``O_CREAT`` est spécifié, l'appel système `open(2)`_ prend comme troisième argument les permissions du fichier qui doit être créé. Celles-ci sont spécifiées de la même façon que pour l'appel système `chmod(2)`_. Si elles ne sont pas spécifiées, le fichier est ouvert avec comme permissions les permissions par défaut du processus définies par l'appel système `umask(2)`_ - - ``O_APPEND`` : indique que le fichier est ouvert de façon à ce que les données écrites dans le fichier par l'appel système `write(2)`_ s'ajoutent à la fin du fichier. - - ``O_TRUNC`` : indique que si le fichier existe déjà et qu'il est ouvert en écriture, alors le contenu du fichier doit être supprimé avant que le processus ne commence à y accéder. - - ``O_CLOEXEC`` : ce drapeau qui est spécifique à Linux indique que le fichier doit être automatiquement fermé lors de l'exécution de l'appel système `execve(2)`_. Normalement, les fichiers qui ont été ouverts par `open(2)`_ restent ouverts lors de l'exécution de `execve(2)`_. - - ``O_SYNC`` : ce drapeau indique que toutes les opérations d'écriture sur le fichier doivent être effectuées immédiatement sur le dispositif de stockage sans être mises en attente dans les buffers du noyau du système d'exploitation - -Ces différents drapeaux binaires doivent être combinés en utilisant une disjonction logique entre les différents drapeaux. Ainsi, ``O_CREAT|O_RDWR`` correspond à l'ouverture d'un fichier qui doit à la fois être créé si il n'existe pas et ouvert en lecture et écriture. - -Lors de l'exécution de `open(2)`_, le noyau du système d'exploitation vérifie si le processus qui exécute l'appel système dispose des permissions suffisantes pour accéder au fichier. Si oui, le système d'exploitation ouvre le fichier et retourne au processus appelant le :term:`descripteur de fichier` correspondant. Si non, le processus récupère une valeur de retour négative et ``errno`` indique le type d'erreur. - -Sous Unix, un :term:`descripteur de fichier` est représenté sous la forme d'un entier positif. L'appel système `open(2)`_ retourne toujours le plus petit :term:`descripteur de fichier` disponible. Par convention, - - - ``0`` est le :term:`descripteur de fichier` correspondant à l'entrée standard. - - ``1`` est le :term:`descripteur de fichier` correspondant à la sortie standard. - - ``2`` est le :term:`descripteur de fichier` correspondant à la sortie d'erreur standard. - -Si l'appel système `open(2)`_ échoue, il retourne ``-1`` comme :term:`descripteur de fichier` et ``errno`` donne plus de précisions sur le type d'erreur. Il peut s'agir d'une erreur liée aux droits d'accès au fichier (``EACESS``), une erreur de drapeau (``EINVAL``) ou d'une erreur d'entrée sortie lors de l'accès au dispositif de stockage (``EIO``). Le noyau du système d'exploitation maintient une table de l'ensemble des fichiers qui sont ouverts par tous les processus actifs. Si cette table est remplie, il n'est plus possible d'ouvrir de nouveau fichier et `open(2)`_ retourne une erreur. Il en va de même si le processus tente d'ouvrir plus de fichiers que le nombre maximum de fichiers ouverts qui est autorisé. - -.. note:: Seul `open(2)`_ vérifie les permissions d'accès aux fichiers - - Sous Unix, seul l'appel système `open(2)`_ vérifie qu'un processus dispose des permissions suffisantes pour accéder à un fichier qui est ouvert. Si les permissions ou le propriétaire d'un fichier change alors que ce fichier est ouvert par un processus, ce processus continue à pouvoir y accéder sans être affecté par la modification de droits. Il en va de même lorsqu'un fichier est effacé avec l'appel système `unlink(2)`_. Si un processus utilisait le fichier qui est effacé, il continue à pouvoir l'utiliser même si le fichier n'apparaît plus dans le répertoire. - -Toutes les opérations qui sont faites sur un fichier se font en utilisant le :term:`descripteur de fichier` comme référence au fichier. Un :term:`descripteur de fichier` est une ressource limitée dans un système d'exploitation tel que Unix et il est important qu'un processus n'ouvre pas inutilement un grand nombre de fichiers [#flimit]_ et ferme correctement les fichiers ouverts lorsqu'il ne doit plus y accéder. Cela se fait en utilisant l'appel système `close(2)`_. Celui-ci prend comme argument le :term:`descripteur de fichier` qui doit être fermé. - -.. code-block:: c - - #include <unistd.h> - - int close(int fd); - -Tout processus doit correctement fermer tous les fichiers qu'il a utilisé. Par défaut, le système d'exploitation ferme automatiquement les descripteurs de fichiers correspondant ``0``, ``1`` et ``2`` lorsqu'un processus se termine. Les autres descripteurs de fichiers doivent être explicitement fermés par le processus. Si nécessaire, cela peut se faire en enregistrant une fonction permettant de fermer correctement les fichiers ouverts via `atexit(3)`_. Il faut noter que par défaut un appel à `execve(2)`_ ne ferme pas les descripteurs de fichiers ouverts par le processus. C'est nécessaire pour permettre au programme exécuté d'avoir les entrées et sorties standard voulues. - -Lorsqu'un fichier a été ouvert, le noyau du système d'exploitation maintient, outre les références vers l':term:`inode` du fichier, un :term:`offset pointer`. Cet :term:`offset pointer` est la position actuelle de la tête de lecture/écriture du fichier. Lorsqu'un fichier est ouvert, son :term:`offset pointer` est positionné au premier octet du fichier, sauf si le drapeau ``O_APPEND`` a été spécifié lors de l'ouverture du fichier, dans ce cas l':term:`offset pointer` est positionné juste après le dernier octet du fichier de façon à ce qu'une écriture s'ajoute à la suite du fichier. - -Les deux appels systèmes permettant de lire et d'écrire dans un fichier sont respectivement `read(2)`_ et `write(2)`_. - -.. code-block:: c - - #include <unistd.h> - - ssize_t read(int fd, void *buf, size_t count); - ssize_t write(int fd, const void *buf, size_t count); - -Ces deux appels systèmes prennent trois arguments. Le premier est le `descripteur du fichier` sur lequel l'opération doit être effectuée. Le second est un pointeur ``void *`` vers la zone mémoire à lire ou écrire et le dernier est la quantité de données à lire/écrire. Si l'appel système réussit, il retourne le nombre d'octets qui ont été écrits/lus et sinon une valeur négative et la variable ``errno`` donne plus de précisions sur le type d'erreur. `read(2)`_ retourne ``0`` lorsque la fin du fichier a été atteinte. - -Il est important de noter que `read(2)`_ et `write(2)`_ permettent de lire et d'écrire des séquences contiguës d'octets. Lorsque l'on écrit ou lit des chaînes de caractères dans lesquels chaque caractère est représenté sous la forme d'un byte, il est possible d'utiliser `read(2)`_ et `write(2)`_ pour lire et écrire d'autres types de données que des octets comme le montre l'exemple ci-dessous. - -.. literalinclude:: /Fichiers/src/read.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lors de son exécution, ce programme affiche la sortie ci-dessous. - -.. literalinclude:: /Fichiers/src/read.out - :encoding: utf-8 - :language: console - - - -Si il est bien possible de sauvegarder dans un fichier des entiers, des nombres en virgule flottante voire même des structures, il faut être bien conscient que l'appel système `write(2)`_ se contente de sauvegarder sur le disque le contenu de la zone mémoire pointée par le pointeur qu'il a reçu comme second argument. Si comme dans l'exemple précédent c'est le même processus qui lit les données qu'il a écrit, il pourra toujours récupérer les données correctement. - -Par contre, lorsqu'un fichier est écrit sur un ordinateur, envoyé via Internet et lu sur un autre ordinateur, il peut se produire plusieurs problèmes dont il faut être conscient. Le premier problème est que deux ordinateurs différents n'utilisent pas nécessairement le même nombre d'octets pour représenter chaque type de données. Ainsi, sur un ordinateur équipé d'un ancien processeur [IA32]_, les entiers sont représentés sur 32 bits (i.e. 4 bytes) alors que sur les processeurs plus récents ils sont souvent représentés sur 64 bits (i.e. 8 bytes). Cela implique qu'un tableau de 100 entiers en 32 bits sera interprété comme un tableau de 50 entiers en 64 bits. - -Le second problème est que les fabricants de processeurs ne se sont pas mis d'accord sur la façon dont il fallait représenter les entiers sur 16 et 32 bits en mémoire. Il y a deux techniques qui sont utilisées : :term:`big endian` et :term:`little endian`. - -Pour comprendre ces deux techniques, regardons comment l'entier 16 bits ``0b1111111100000000`` est stocké en mémoire. En :term:`big endian`, le byte ``11111111`` sera stocké à l'adresse `x` et le byte ``00000000`` à l'adresse `x+1`. En :term:`little endian`, c'est le byte ``00000000`` qui est stocké à l'adresse `x` et le byte ``11111111`` qui est stocké à l'adresse `x+1`. Il en va de même pour les entiers encodés sur 32 bits comme illustré dans les deux figures ci-dessous [#fendianfig]_. - -.. figure:: /Fichiers/fig/500px-Big-Endian.png - :align: center - :scale: 40 - - Ecriture d'un entier 32 bits en mémoire en `big endian` - -.. figure:: /Fichiers/fig/500px-Little-Endian.png - :align: center - :scale: 40 - - Ecriture d'un entier 32 bits en mémoire en `little endian` - - -Pour les nombres en virgule flottante, ce problème ne se pose heureusement pas car tous les processeurs actuels utilisent la même norme pour représenter les nombres en virgule flottant en mémoire. - -Les processeurs [IA32]_ utilisent la représentation :term:`little endian` tandis que les PowerPC utilisent :term:`big endian`. Certains processeurs sont capables d'utiliser les deux représentations. - -Il est également possible en utilisant l'appel système `lseek(2)`_ de déplacer l':term:`offset pointer` associé à un :term:`descripteur de fichier`. - -.. code-block:: c - - #include <sys/types.h> - #include <unistd.h> - - off_t lseek(int fd, off_t offset, int whence); - -Cet appel système prend trois arguments. Le premier est le :term:`descripteur de fichier` dont l':term:`offset pointer` doit être modifié. Le second est un entier qui est utilisé pour le calcul de la nouvelle position :term:`offset pointer` et le troisième indique comment l':term:`offset pointer` doit être calculé. Il y a trois modes de calcul possibles pour l':term:`offset pointer` : - - - ``whence==SEEK_SET`` : dans ce cas, le deuxième argument de l'appel système indique la valeur exacte du nouvel :term:`offset pointer` - - ``whence==SEEK_CUR`` : dans ce cas, le nouvel :term:`offset pointer` sera sa position actuelle à laquelle le deuxième argument aura été ajouté - - ``whence==SEEK_END`` : dans ce cas, le nouvel :term:`offset pointer` sera la fin du fichier à laquelle le deuxième argument aura été ajouté - -.. note:: Fichiers temporaires - - Il est parfois nécessaire dans un programme de créer des fichiers temporaires qui sont utilisés pour effectuer des opérations dans le processus sans pour autant être visible dans d'autres processus et sur le système de fichiers. Il est possible d'utiliser `open(2)`_ pour créer un tel fichier temporaire, mais il faut dans ce cas prévoir tous les cas d'erreur qui peuvent se produire lorsque par exemple plusieurs instances du même programme s'exécutent au même moment. Une meilleure solution est d'utiliser la fonction de la librairie `mkstemp(3)`_. Cette fonction prend comme argument un modèle de nom de fichier qui se termine par ``XXXXXX`` et génère un nom de fichier unique et retourne un descripteur de fichier associé à ce fichier. Elle s'utilise généralement comme suit : - - .. code-block:: c - - char template[]="/tmp/sinf1252PROCXXXXXX"; - - int fd=mkstemp(template); - if(fd==-1) - exit_on_error("mkstemp"); - // template contient le nom exact du fichier généré - unlink(template); - // le fichier est effacé, mais reste accessible - // via son descripteur jusqu'à close(fd) - - // Accès au fichier avec read et write - - if(close(fd)==-1) - exit_on_error("close"); - // le fichier n'est plus accessible - - L'utilisation de `unlink(2)`_ permet de supprimer le fichier du système de fichiers dès qu'il a été créé. Ce fichier reste cependant accessible au processus tant que celui-ci dispose d'un descripteur de fichier qui y est associé. - -.. note:: Duplication de descripteurs de fichiers - - Dans certains cas il est utile de pouvoir dupliquer un descripteur de fichier. C'est possible avec les appels systèmes `dup(2)`_ et `dup2(2)`_. L'appel système `dup(2)`_ prend comme argument un descripteur de fichier et retourne le plus petit descripteur de fichier libre. Lorsqu'un descripteur de fichier a été dupliqué avec `dup(2)`_ les deux descripteurs de fichiers partagent le même :term:`offset pointer` et les mêmes modes d'accès au fichier. - - - -.. rubric:: Footnotes - -.. [#fminixfs] Cette structure est partiellement inspirée du format des inodes du système de fichiers Minix, voir `linux/minix_fs.h`_. - -.. [#finode] Le champ ``zone[10]`` permet de stocker dans l':term:`inode` les références vers les premiers secteurs du fichier et des références vers d'autres blocs qui contiennent eux-aussi des références vers des blocs. Cela permet de stocker une liste de secteurs qui est de taille variable à partir d'un :term:`inode` qui a lui une taille fixe. Une description détaillée des inodes peut se trouver dans une référence sur les systèmes d'exploitation telle que [Tanenbaum+2009]_. - -.. [#fext2fs] Source : `linux/ext2_fs.h`_ - -.. [#flns] Dans un système de fichiers Unix, un lien ne peut être créé avec `ln(1)`_ ou `link(2)`_ que lorsque les deux répertoires concernés sont situés sur le même système de fichiers. Si ce n'est pas le cas, il faut utiliser un :term:`lien symbolique`. Ceux-ci peuvent être créés en utilisant l'appel système `symlink(2)`_ ou via la commande `ln(1)`_ avec l'argument ``-s``. - -.. [#flimit] Il y a une limite maximale au nombre de fichiers qui peuvent être ouverts par un processus. Cette limite peut être récupérée avec l'appel système `getdtablesize(2)`_. - -.. [#fendianfig] Source : http://en.wikipedia.org/wiki/Endianness - - - diff --git a/Theorie/Fichiers/fig/500px-Big-Endian.png b/Theorie/Fichiers/fig/500px-Big-Endian.png deleted file mode 100644 index 2c2bb0166d3e0cb903ab8bfd0858b0a0e5436444..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19971 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 RuX!oR2v1i(mvv4FO#q^Z`hNfb diff --git a/Theorie/Fichiers/fig/500px-Little-Endian.png b/Theorie/Fichiers/fig/500px-Little-Endian.png deleted file mode 100644 index 38341bb472f73db3732bd9e05da01c6685dc6b77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18610 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	ub#`YdDq5ut^eOlC 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 UzB+<mIYgv>Uq_`x$@0~I1G?nltN;K2 diff --git a/Theorie/Fichiers/fig/Big-Endian.svg b/Theorie/Fichiers/fig/Big-Endian.svg deleted file mode 100644 index 9fb208d..0000000 --- a/Theorie/Fichiers/fig/Big-Endian.svg +++ /dev/null @@ -1,363 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="280" - height="250" - id="svg2328"> - <defs - id="defs2330"> - <marker - refX="0" - refY="0" - orient="auto" - style="overflow:visible" - id="Arrow1Lend"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - id="path3194" /> - </marker> - </defs> - <g - id="layer1"> - <g - transform="translate(-33,-16)" - id="g3480"> - <g - transform="translate(10.684927,10)" - id="g2641"> - <g - transform="translate(-4.9999999,5.0000001)" - id="g2707"> - <g - transform="translate(-182,-39)" - id="g3414"> - <g - transform="translate(74.324543,139.79415)" - style="stroke:none" - id="g2177"> - <path - d="M 194.97975,115.0099 L 194.97975,85.205848 L 224.99053,85.205848 L 224.99053,115.0099 L 194.97975,115.0099 z " - style="fill:#ffffff;stroke:none;stroke-width:0.42571709;overflow:visible" - id="path2179" /> - <text - x="210.48268" - y="106.59099" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text2181" - xml:space="preserve"><tspan - x="210.48268" - y="106.59099" - style="font-size:18px;stroke:none" - id="tspan2183">0D</tspan></text> - </g> - <g - transform="translate(74.324543,49.794155)" - style="stroke:none" - id="g3180"> - <path - d="M 194.97975,115.0099 L 194.97975,85.205848 L 224.99053,85.205848 L 224.99053,115.0099 L 194.97975,115.0099 z " - style="fill:#ffffff;stroke:none;stroke-width:0.42571709;overflow:visible" - id="path3182" /> - <text - x="210.48268" - y="106.59099" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3184" - xml:space="preserve"><tspan - x="210.48268" - y="106.59099" - style="font-size:18px;stroke:none" - id="tspan3186">0A</tspan></text> - </g> - <g - transform="translate(74.324543,79.794155)" - style="stroke:none" - id="g3188"> - <path - d="M 194.97975,115.0099 L 194.97975,85.205848 L 224.99053,85.205848 L 224.99053,115.0099 L 194.97975,115.0099 z " - style="fill:#ffffff;stroke:none;stroke-width:0.42571709;overflow:visible" - id="path3190" /> - <text - x="210.48268" - y="106.59099" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3192" - xml:space="preserve"><tspan - x="210.48268" - y="106.59099" - style="font-size:18px;stroke:none" - id="tspan3194">0B</tspan></text> - </g> - <g - transform="translate(74.324543,109.79415)" - style="stroke:none" - id="g3196"> - <path - d="M 194.97975,115.0099 L 194.97975,85.205848 L 224.99053,85.205848 L 224.99053,115.0099 L 194.97975,115.0099 z " - style="fill:#ffffff;stroke:none;stroke-width:0.42571709;overflow:visible" - id="path3198" /> - <text - x="210.48268" - y="106.59099" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3200" - xml:space="preserve"><tspan - x="210.48268" - y="106.59099" - style="font-size:18px;stroke:none" - id="tspan3202">0C</tspan></text> - </g> - <path - d="M 269.57222,255.25715 L 299.05792,255.42779" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path2185" /> - <path - d="M 269.68311,120.31689 L 269.63196,269.68311" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.6337797;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3158" /> - <path - d="M 299.68311,120.31689 L 299.63195,269.68311" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.63377368;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3168" /> - <path - d="M 269.57222,225.25715 L 299.05792,225.42779" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3170" /> - <path - d="M 269.57222,194.57221 L 299.05792,194.74285" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3172" /> - <path - d="M 269.57222,165.25715 L 299.05792,165.42779" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3174" /> - <path - d="M 269.57222,135.25715 L 299.05792,135.42779" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3178" /> - <g - transform="translate(63.764862,76.892123)" - style="stroke:none" - id="g3204"> - <text - x="49.333466" - y="-219.84514" - transform="matrix(0,1,-1,0,0,0)" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3208" - xml:space="preserve"><tspan - x="49.333466" - y="-219.84514" - style="font-size:18px;stroke:none;font-family:Times New Roman" - id="tspan3210">...</tspan></text> - <text - x="187.58347" - y="-219.84514" - transform="matrix(0,1,-1,0,0,0)" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3212" - xml:space="preserve"><tspan - x="187.58347" - y="-219.84514" - style="font-size:18px;stroke:none;font-family:Times New Roman" - id="tspan3214">...</tspan></text> - <g - transform="translate(69.065073,85.25)" - style="stroke:none;stroke-opacity:1" - id="g3279"> - <rect - width="40" - height="25" - x="96.485138" - y="67.85788" - style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3281" /> - <text - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3283" - xml:space="preserve"><tspan - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;stroke:none;stroke-opacity:1;font-family:Times New Roman" - id="tspan3285"><tspan - style="font-size:18px;font-style:italic;text-align:end;text-anchor:end;stroke:none;stroke-opacity:1" - id="tspan3287">a</tspan>+3:</tspan></text> - </g> - <g - transform="translate(69.065073,55.25)" - style="stroke:none;stroke-opacity:1" - id="g3309"> - <rect - width="40" - height="25" - x="96.485138" - y="67.85788" - style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3311" /> - <text - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3313" - xml:space="preserve"><tspan - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;stroke:none;stroke-opacity:1;font-family:Times New Roman" - id="tspan3315"><tspan - style="font-size:18px;font-style:italic;text-align:end;text-anchor:end;stroke:none;stroke-opacity:1" - id="tspan3317">a</tspan>+2:</tspan></text> - </g> - <g - transform="translate(69.065073,25.25)" - style="stroke:none;stroke-opacity:1" - id="g3319"> - <rect - width="40" - height="25" - x="96.485138" - y="67.85788" - style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3321" /> - <text - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3323" - xml:space="preserve"><tspan - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;stroke:none;stroke-opacity:1;font-family:Times New Roman" - id="tspan3325"><tspan - style="font-size:18px;font-style:italic;text-align:end;text-anchor:end;stroke:none;stroke-opacity:1" - id="tspan3327">a</tspan>+1:</tspan></text> - </g> - <g - transform="translate(69.065073,-4.7500002)" - style="stroke:none;stroke-opacity:1" - id="g3329"> - <rect - width="40" - height="25" - x="96.485138" - y="67.85788" - style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3331" /> - <text - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3333" - xml:space="preserve"><tspan - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;stroke:none;stroke-opacity:1;font-family:Times New Roman" - id="tspan3335"><tspan - style="font-size:18px;font-style:italic;text-align:end;text-anchor:end;stroke:none;stroke-opacity:1" - id="tspan3337">a</tspan>:</tspan></text> - </g> - </g> - <text - x="282.54688" - y="105.59375" - style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3347" - xml:space="preserve"><tspan - x="282.54688" - y="105.59375" - id="tspan3349">Memory</tspan></text> - </g> - <text - x="218.93581" - y="33.109375" - style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3343" - xml:space="preserve"><tspan - x="218.93581" - y="33.109375" - id="tspan3345">Register</tspan></text> - <text - x="208.28125" - y="222.54688" - style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3351" - xml:space="preserve"><tspan - x="208.28125" - y="222.54688" - id="tspan3353">Big-endian</tspan></text> - <g - id="g2631"> - <g - transform="translate(124.339,5.779998)" - id="g2363"> - <path - d="M 34.109876,69.331124 L 34.109876,36.668878 L 155.89012,36.668878 L 155.89012,69.331124 L 34.109876,69.331124 z " - style="fill:#ffffff;stroke:#000000;stroke-width:0.89775217;overflow:visible" - id="path2340" /> - <text - x="95" - y="60" - style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text2359" - xml:space="preserve"><tspan - x="95" - y="60" - style="font-size:20px" - id="tspan2361">0A0B0C0D</tspan></text> - </g> - <g - id="g2250"> - <path - d="M 260.6875,75.09375 L 261.5,199.59375 L 124,200.5 L 124,201.5 L 262,200.625 L 262.53125,200.59375 L 262.53125,200.09375 L 261.71875,75.09375 L 260.6875,75.09375 z " - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02955723px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" - id="path2215" /> - <path - d="M 134.29535,200.9325 L 138.38649,196.78736 L 124,201 L 138.44049,205.02364 L 134.29535,200.9325 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:0.82364578pt;marker-start:none" - id="path2256" /> - </g> - <g - id="g2242"> - <path - d="M 232.6875,75 L 231.96875,170.875 L 123.5,171 L 123.5,172 L 232.46875,171.875 L 232.96875,171.875 L 232.96875,171.375 L 233.6875,75 L 232.6875,75 z " - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" - id="path3388" /> - <path - d="M 133.49999,171.48944 L 137.49577,167.48521 L 123.5,171.5 L 137.50422,175.48521 L 133.49999,171.48944 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:0.8pt;marker-start:none" - id="path2248" /> - </g> - <g - id="g2234"> - <path - d="M 201.625,75.375 L 202.125,140.0625 L 124,141 L 124,142 L 202.65625,141.0625 L 203.125,141.0625 L 203.125,140.5625 L 202.625,75.375 L 201.625,75.375 z " - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" - id="path3390" /> - <path - d="M 133.9993,141.3816 L 137.95166,137.33451 L 124,141.5 L 138.04638,145.33395 L 133.9993,141.3816 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:0.8pt;marker-start:none" - id="path2240" /> - </g> - <g - id="g2226"> - <path - d="M 174.1875,75 L 174.0625,110.46875 L 124,111 L 124,112 L 174.5625,111.46875 L 175.0625,111.4375 L 175.0625,110.96875 L 175.1875,75 L 174.1875,75 z " - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" - id="path3392" /> - <path - d="M 133.99943,111.3928 L 137.95631,107.35014 L 124,111.5 L 138.04208,115.34968 L 133.99943,111.3928 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:0.8pt;marker-start:none" - id="path2232" /> - </g> - </g> - </g> - </g> - </g> - </g> -</svg> diff --git a/Theorie/Fichiers/fig/Little-Endian.svg b/Theorie/Fichiers/fig/Little-Endian.svg deleted file mode 100644 index c1545e4..0000000 --- a/Theorie/Fichiers/fig/Little-Endian.svg +++ /dev/null @@ -1,358 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> -<svg - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - version="1.0" - width="280" - height="250" - id="svg2328"> - <defs - id="defs2330"> - <marker - refX="0" - refY="0" - orient="auto" - style="overflow:visible" - id="Arrow1Lend"> - <path - d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z " - transform="matrix(-0.8,0,0,-0.8,-10,0)" - style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" - id="path3194" /> - </marker> - </defs> - <g - id="layer1"> - <g - transform="translate(-33,-16)" - id="g3480"> - <g - transform="translate(-14.322004,-29)" - id="g3546"> - <g - id="g3414"> - <g - transform="translate(74.324543,139.79415)" - style="stroke:none" - id="g2177"> - <path - d="M 194.97975,115.0099 L 194.97975,85.205848 L 224.99053,85.205848 L 224.99053,115.0099 L 194.97975,115.0099 z " - style="fill:#ffffff;stroke:none;stroke-width:0.42571709;overflow:visible" - id="path2179" /> - <text - x="210.48268" - y="106.59099" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text2181" - xml:space="preserve"><tspan - x="210.48268" - y="106.59099" - style="font-size:18px;stroke:none" - id="tspan2183">0A</tspan></text> - </g> - <g - transform="translate(74.324543,49.794155)" - style="stroke:none" - id="g3180"> - <path - d="M 194.97975,115.0099 L 194.97975,85.205848 L 224.99053,85.205848 L 224.99053,115.0099 L 194.97975,115.0099 z " - style="fill:#ffffff;stroke:none;stroke-width:0.42571709;overflow:visible" - id="path3182" /> - <text - x="210.48268" - y="106.59099" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3184" - xml:space="preserve"><tspan - x="210.48268" - y="106.59099" - style="font-size:18px;stroke:none" - id="tspan3186">0D</tspan></text> - </g> - <g - transform="translate(74.324543,79.794155)" - style="stroke:none" - id="g3188"> - <path - d="M 194.97975,115.0099 L 194.97975,85.205848 L 224.99053,85.205848 L 224.99053,115.0099 L 194.97975,115.0099 z " - style="fill:#ffffff;stroke:none;stroke-width:0.42571709;overflow:visible" - id="path3190" /> - <text - x="210.48268" - y="106.59099" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3192" - xml:space="preserve"><tspan - x="210.48268" - y="106.59099" - style="font-size:18px;stroke:none" - id="tspan3194">0C</tspan></text> - </g> - <g - transform="translate(74.324543,109.79415)" - style="stroke:none" - id="g3196"> - <path - d="M 194.97975,115.0099 L 194.97975,85.205848 L 224.99053,85.205848 L 224.99053,115.0099 L 194.97975,115.0099 z " - style="fill:#ffffff;stroke:none;stroke-width:0.42571709;overflow:visible" - id="path3198" /> - <text - x="210.48268" - y="106.59099" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3200" - xml:space="preserve"><tspan - x="210.48268" - y="106.59099" - style="font-size:18px;stroke:none" - id="tspan3202">0B</tspan></text> - </g> - <path - d="M 269.57222,255.25715 L 299.05792,255.42779" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path2185" /> - <path - d="M 269.68311,120.31689 L 269.63196,269.68311" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.6337797;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3158" /> - <path - d="M 299.68311,120.31689 L 299.63195,269.68311" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.63377368;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3168" /> - <path - d="M 269.57222,225.25715 L 299.05792,225.42779" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3170" /> - <path - d="M 269.57222,194.57221 L 299.05792,194.74285" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3172" /> - <path - d="M 269.57222,165.25715 L 299.05792,165.42779" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3174" /> - <path - d="M 269.57222,135.25715 L 299.05792,135.42779" - style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.51429158;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" - id="path3178" /> - <g - transform="translate(63.764862,76.892123)" - style="stroke:none" - id="g3204"> - <text - x="49.333466" - y="-219.84514" - transform="matrix(0,1,-1,0,0,0)" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3208" - xml:space="preserve"><tspan - x="49.333466" - y="-219.84514" - style="font-size:18px;stroke:none;font-family:Times New Roman" - id="tspan3210">...</tspan></text> - <text - x="187.58347" - y="-219.84514" - transform="matrix(0,1,-1,0,0,0)" - style="font-size:20px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text3212" - xml:space="preserve"><tspan - x="187.58347" - y="-219.84514" - style="font-size:18px;stroke:none;font-family:Times New Roman" - id="tspan3214">...</tspan></text> - <g - transform="translate(69.065073,85.25)" - style="stroke:none;stroke-opacity:1" - id="g3279"> - <rect - width="40" - height="25" - x="96.485138" - y="67.85788" - style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3281" /> - <text - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3283" - xml:space="preserve"><tspan - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;stroke:none;stroke-opacity:1;font-family:Times New Roman" - id="tspan3285"><tspan - style="font-size:18px;font-style:italic;text-align:end;text-anchor:end;stroke:none;stroke-opacity:1" - id="tspan3287">a</tspan>+3:</tspan></text> - </g> - <g - transform="translate(69.065073,55.25)" - style="stroke:none;stroke-opacity:1" - id="g3309"> - <rect - width="40" - height="25" - x="96.485138" - y="67.85788" - style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3311" /> - <text - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3313" - xml:space="preserve"><tspan - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;stroke:none;stroke-opacity:1;font-family:Times New Roman" - id="tspan3315"><tspan - style="font-size:18px;font-style:italic;text-align:end;text-anchor:end;stroke:none;stroke-opacity:1" - id="tspan3317">a</tspan>+2:</tspan></text> - </g> - <g - transform="translate(69.065073,25.25)" - style="stroke:none;stroke-opacity:1" - id="g3319"> - <rect - width="40" - height="25" - x="96.485138" - y="67.85788" - style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3321" /> - <text - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3323" - xml:space="preserve"><tspan - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;stroke:none;stroke-opacity:1;font-family:Times New Roman" - id="tspan3325"><tspan - style="font-size:18px;font-style:italic;text-align:end;text-anchor:end;stroke:none;stroke-opacity:1" - id="tspan3327">a</tspan>+1:</tspan></text> - </g> - <g - transform="translate(69.065073,-4.7500002)" - style="stroke:none;stroke-opacity:1" - id="g3329"> - <rect - width="40" - height="25" - x="96.485138" - y="67.85788" - style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" - id="rect3331" /> - <text - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3333" - xml:space="preserve"><tspan - x="133.96561" - y="82.861786" - style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;writing-mode:lr-tb;text-anchor:end;stroke:none;stroke-opacity:1;font-family:Times New Roman" - id="tspan3335"><tspan - style="font-size:18px;font-style:italic;text-align:end;text-anchor:end;stroke:none;stroke-opacity:1" - id="tspan3337">a</tspan>:</tspan></text> - </g> - </g> - <text - x="282.54688" - y="105.59375" - style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3347" - xml:space="preserve"><tspan - x="282.54688" - y="105.59375" - id="tspan3349">Memory</tspan></text> - </g> - <g - id="g3466"> - <g - transform="translate(33.661004,43.779998)" - id="g2363"> - <path - d="M 34.109876,69.331124 L 34.109876,36.668878 L 155.89012,36.668878 L 155.89012,69.331124 L 34.109876,69.331124 z " - style="fill:#ffffff;stroke:#000000;stroke-width:0.89775217;overflow:visible" - id="path2340" /> - <text - x="95" - y="60" - style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Arial Black" - id="text2359" - xml:space="preserve"><tspan - x="95" - y="60" - style="font-size:20px" - id="tspan2361">0A0B0C0D</tspan></text> - </g> - <text - x="128.25781" - y="71.109375" - style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3343" - xml:space="preserve"><tspan - x="128.25781" - y="71.109375" - id="tspan3345">Register</tspan></text> - <text - x="143.77344" - y="266.10938" - style="font-size:16px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman" - id="text3351" - xml:space="preserve"><tspan - x="143.77344" - y="266.10938" - id="tspan3353">Little-endian</tspan></text> - <g - id="g2225"> - <path - d="M 170.03125,113.09375 L 170.0625,148.5 L 170.0625,149 L 170.5625,149 L 224.46875,149.875 L 224.5,148.84375 L 171.09375,147.96875 L 171.0625,113.09375 L 170.03125,113.09375 z " - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.02955723px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" - id="path2215" /> - <path - d="M 214.19102,149.19681 L 210.00613,153.24728 L 224.48522,149.36483 L 210.14055,145.01192 L 214.19102,149.19681 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:0.82364578pt;marker-start:none" - id="path2231" /> - </g> - <g - id="g2233"> - <path - d="M 142,113 L 142.15625,177.9375 L 142.15625,178.4375 L 142.65625,178.4375 L 224.5,178.5 L 224.5,177.5 L 143.15625,177.4375 L 143,113 L 142,113 z " - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" - id="path3388" /> - <path - d="M 214.5,177.99336 L 210.49735,181.9907 L 224.5,178 L 210.50266,173.9907 L 214.5,177.99336 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:0.8pt;marker-start:none" - id="path2239" /> - </g> - <g - id="g2241"> - <path - d="M 110.9375,113.375 L 110.375,209.6875 L 110.375,210.1875 L 110.875,210.1875 L 225,210.5 L 225,209.5 L 111.375,209.1875 L 111.9375,113.375 L 110.9375,113.375 z " - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" - id="path3390" /> - <path - d="M 215.00004,209.97211 L 210.9889,213.96094 L 225,210 L 211.01121,205.96097 L 215.00004,209.97211 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:0.8pt;marker-start:none" - id="path2247" /> - </g> - <g - id="g2249"> - <path - d="M 83.5,113 L 83.4375,238.5 L 83.4375,239 L 83.9375,239 L 224,239 L 224,238 L 84.4375,238 L 84.5,113 L 83.5,113 z " - style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;display:inline" - id="path3392" /> - <path - d="M 214,238.50057 L 210.00023,242.50079 L 224,238.5 L 209.99977,234.50079 L 214,238.50057 z " - style="fill-rule:evenodd;stroke:#000000;stroke-width:0.8pt;marker-start:none" - id="path2255" /> - </g> - </g> - </g> - </g> - </g> -</svg> diff --git a/Theorie/Fichiers/fig/figures-10-001-c.png b/Theorie/Fichiers/fig/figures-10-001-c.png deleted file mode 100644 index 9e5c34af533251ddaa62607703df2a6a205250ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62694 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�*!|;az8BoKa-Y6jw79&AZp1m#LWl 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 diff --git a/Theorie/Fichiers/fig/figures-10-002-c.png b/Theorie/Fichiers/fig/figures-10-002-c.png deleted file mode 100644 index e4250eb104667bc17bc606c468e17b88273b7748..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58663 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	I3FFNB@(ga}{!Sn1~nao_O z#(JLQ7|5an0H)noyz+UI``Y@O9#<K9FHhs}#A>*~J*Re1YAOtV*8YoUH^8>xoF4lQ zqTg(UWi8H%c6BCv?(Qso0UQi9;qqetd=G(%U)sI+UT0_NS3!2Qbtw^$<yB2U2!p|@ z&hL{9SbxR0=x*?-`K($2$2E>O?dyF&W4+Ix>!$l^oST@Nob0B+uRVyYzG-%{T-b&K z^B-L=*;r4A7HZzh_y4ShX@Lv}LZk(6Po9#i1Gq^N3!PzI!nNNpxHm&t_oYTc^Xg9& zUC2{$x8)1>v9{Y}fZ9G%NN}wBQ><5ywxwtHwY=}d{A>>_M{HBOG@itx5U*2LvjkN4 z_z2H=bfguE)AhlsP5yn&{Q1hJ2hSGXo#GcXqS9P8m#xJ@=%qZG|Hv!JLeju|Yr7-E z7|Myb-^?QTX&p^a02YK7KLZF!uXagLr;T{3AOwi36=;*ib|KJq?58#wjdM$1yd+Tw zaHN{1RRnD-TMT4h5CZXf19krW=WsKE&Tmez(Krzf7jS5-D7LmPT?Z)Qg)q-Nn1x~t zB#8+Eks+}=9BmX6WERrIFFHhcEylj3z=xQ_7hW^`ZASo3sv%H*a+R|tFfS4Omq;DR z!Of@ei%J;#(ckz;Dh|P_&fxGJ^q(%?*$#!lroMc~W{1d-%A%vS07&KsaI3{LZuSS; zEMr_spH5M`KEBfU2}x6lx86?yivUv}DXH{Nx~4qr>^o=9?FmasN&Ez~ssr(Whqo>P zXAh3N_byOFuW(DbV3RTE?NI>EjvXBcVJ=mcvGv=F8IOryA*1RaYWJT7GDBCZL-yYg zrp~<ii5t+y@<;ii?~`ongr*SM5PPERgg!ee&MLHYQP+49G&9W5nQ&f!dWw#B*edIO z`9p2rZ}EuR<`llj_@j{C!5@2mqx18U^FN>;JE8tU;?vt7d?9JH*g61e!<Q{YUN0{? z=<EqH!Qk8Ua2S=$?jJ-?UZNh2-qzkFHupx4-{raAIdDRkkpjD=)bjJq6MZsD`ZS<H ziUy{m@ywk?%2n$tW?_@*H&2pL!m0Z<-fPh6hY7T&XHW+JT#-ygEp`}(SCwqlwSn6K z!lMZYKS=L;PDckKTkXYuB(5a}f^Gr=GD~|ju%?$XLv+cbqv~K+k9TTkg)%({A{N#2 zVuy%X292qNF;f*ezxF|P>aRU|yJpDh8?!0>LG?dqRiB;qJhw+mSlo=C*~|w3Pe7ji zr@avh>RK4ZMz$t8=!NmzWF8E@S-e9kEuH1NQn*Up4*JW0boO~OUO@doQtc($-mHf} z>_j-8VJAFh2Xt5-GIF9Ws-Lp*8HWc{9aP&XiVX&9gLz>^@76sxn=t5wBP)A&`J#kE z(&g#Yp7){gy6fbeiJ6UAK!=aLPeH2x*tbcz;ehG9-EwKNt*fJRnzy~P^v(wyem$H* zIB;M1g~MxDQeZ}}$;jJjs!P6}d{TCJmqCXA+L8**+6;j&#O-A%{?aO6Pfe8;IDKqP z%T~oRB_d5QNzsT`%s47m3u5@ov{c}jxW?NjrlkncH>0DXX<^b78@Fzul4R*;J5^f` z6t*7JPWCk{cnQS^6GENUk_C2KE@$jNIiq^LL@tOFANq>MMQThW{T{fX*+jXs2RRPP z3f*oa&AKs0O_{Zu))^QGYEFhV@L(s;psNzMNH>S($0g#KGF9I4T@_NDh7QN|J~O(` zd$*7AlJT$nIV1<0pMUG8cl%eME0SxGPyz1OOA4(&Tbovm=RSSMi@XWLsofSG^1ZGn z)7I8{P|V45t|$=RWVW;{q;VpO>=X7zKa~e6H8JhlJjqb6s8)2W=!XZxoI;Wj2k;{o zIr9F~S~_^?lNMP&E?kp2TYKh25S{bq>m~l1C89+?J}<<?8R|GIjHbVR`i(>L*<3L| zm?74)*)}?cgTKr)wiRkcICvhbI=$5Ot!kXd`Sx3JLEe}re-u@07Z@%KD`vpDk)%A$ z4lXFoOrJP}XZq@M07ynJ^a)0GNPmC-Ez+ASN=7L5qV9l%U_PhKZQD#v4b2$N;-Val z`rPLx8xHlCyW3I|?b*>H=YB;;A<w>-uz#Eu^>W$K?IbDhyG-(@deY`C2RGS~t=feE zea-#}c9qHfI|A1ozw@%*NjqKqbaUy=uM01AHqJ7y2=^zUuL-Na!e;k=kh|?o{&0e| z`8}VVGhB%z+I_5RJ9oy+!?%978b4@r_4S7j7lfs&j*ZFPBMk&4MJOQIvt)W=%>q_J zR>XF~p7$cfyageCQX7@#ek;Mp^YE_1m5p0!@b6WxAFd*?WVsmT>5r$do?1_rZkRvh z-%50SkiE?-9DYvWS^tE9pSEb@f<@RmQ%RiH;J$5V!i?v;<@aLW6<BYK3)aVr*WE0o z7|WqU3{1h7-)$c8KB4;)UprFLfpZo&8(Ti<xMu8CK))s{tmF5vxi6)>rihzQ)#ouZ zvS8n}>sE6V=vaS>o|>A@*p$`<?#sEV+Gal#nZ95%5x*x(Yrl3he?7^Rf8zO0fbN_9 zCRn3mz;fDEAngDw`cEE}nG=55+&s<Q)rnc|YerOmN2^`l#er0iT8os~n_4cR8SL(n zW)^a8kww7SqMF(g8t=D-gDhDju*Thp2YQ(rLV3?DcQp6EW%RP+NoFw<xY#g{R>RHU zKn%<v{O2bAVh;vg5dMALQ&>eW41Qh57BgB#?@mds2b9jD#TQSB!%q^iV|F6=l;=1| z&X4|Eu~J`ugh=wiU^?miLa3x)+Xwl8N@yU@Amv^GVDgY;Hae;*qM7SNFQi7~(!{?i z<Tti+yhwpf<iX)-Dbp7peONvGEnF6`u3SrCs<co@s`OXyqgQBUB!xm^W$5UJuO>v$ zN2SFG%M_H-Ui8!iF$;ArpK+%}0m&&0&}YLGJi5-_2|Z5jW~JI{gPH4;i)OBQwHovE zssE)@9{C<w@7L4J&)?O|FGlLjzSs7D@%HB7P`>~BFov;>eVfTT6e-Ir$dYv=TUpv9 z%h;7ATTzIy49cFeW=SCw2`R}kin2$R$PywHMIp=lu3P!M-=E|Ad!Fy}*VA$MBWCXF zzOVaQUf20L&-11AZYApf0#hdT@EnoVC&Z*JyZ=97ln)1ap7O*WG`ON)_W9=%DgZe# zn8Po(a<ugr-j#6OlpHnLmNrHd$U(WHZLs}GOm)jD!r*JONw=iD)g|EYxri=kQwzmu zwW}zA<$j#*KTnV`!Lr2mP#ktz>Fv3NR;^<>N!rJ9f}RYj6b)Dk+_HD%ymhx-Mw$T- z5`<C>lVSVWa-hJ7c0F{^#~Xk_y8$r7vx@!?)yYq*9m_)C+N5@2c%7B>8pWVoBh+KU zc_=ZAYNaX^&x$bwZGm*Fv#g`h(j6lN1k@wmsv;2S4-<d7QD`{>$7hL*37#O46ELN@ zsmzo^uLqYbnBY44pQIWzR*`=j<z$6Y4W{Gk2@`Lb;c%5pt?Q-&37am;by1{=h3yc8 zuv<EE!8=P#Ev11PLPe#`nqs!swsS~#K=ww-)u%Bpj*9B<+U#0dR-4-1m*A=gSGt^G zp~#Z>_tv>j&3Osg2m>sK0rVgzYyWX-mlw#u5xn>%D071Chz_H4B#4yki_$=vY*8Mz zlj;TTk=IlV%A^a6%R_X9`3>cwrS0r30yER|9KO1uO-%k?yfSYG{HbWDM`++eQ0^+w zwzut+cKT<+Y;7o94JmixIMfw`hedswrVFl6m$DD5>~tcBmFlk?C_{-Z5jJzh;BdG# zNh}V8iSfvQ00$aj{e4=Xb(2LTQlqZ0PCY;L<=-Yj=&W{o+rc$9O6XI*+na`lrne1V zJ_0aG9mukDE^Ksx$f-AROwR~>y=MozB5Txm-zI6B@%T(>;D~m1j;4x4qVh8y>iq}; z!?;?G8yF8df3NOm09;$Bh_7F$AkIc1Ki_e*PkV7AJul=So^rd;81eQw01Hh(B0dYh za+G$L=GGkM(UpceZT0H#i7yaRm71W<9&+-vcf^({-Mv_=kf4nm2yHVH*j(Srndl9i ztC{W%Y!58fqxIfxS3=>bJPxzD#-dVfW5AkJ5!sAH(V3%ASC>H~`C%&uy+4>n*nnYo z5a!a49H!>vDb0yeo^~M+L&C8LtHXrAz6=t{>si46S3u70aSb>NOgki!n<#<^gssM= zOU>mu`O|?@eJGTVDw9Ar2=g2)6v5fz;W7e2-PYlE7gWRG0st62dzMR7RLUQu8~Z_u ztrO6G4s{`s7K36EK2Rd^d>n}Mo7Ork)wV<_Z>*#B5*;uS;Vy{gEn5vhzQY5C-S@8` zx*c&Mda>9!GQF_}1cDZYo0gvuyt{qEmf=>ojmJE}VO-Pg-=5FF;V_s@Q6)l2er?tc zNPRC%bPNF3-!{9-bGJZ(Ruh3>ejkg#-VZM{&tn=#<)zzfCD;L^8xH0L`4{*Tw@)Ix z`$iN30U==!mt<*`0~TJaArW3AT5t`Eg2N4F(OGAX>p0Wy^%i<7jXpZ~fX8SX3y#@2 z=)(yB(!8Cdt(Q)k*uDfOp8%krqZ-u#Ec?+uslrN2UjYz0`htoWP6dZtqcFb@)9=xD zx&zMu{2^l#I(TUkre!1nC@|t2qmRYuAJ7_%Qqp;J2a0Nyp8!6RgV2<@@c>AE71`^N z!7&HBH)G4iA}E`g65NM#$^EBepkvOs@q$m_8Ewn>40<^SA(qe-=|X_v;>#=Wi0dMQ ze|TGYov$2oMyW0Uk|z@Fgabk#{F1lfyD$~?p_ht%5!Bp}>-4(8ROwcXcCX{wl&Dp$ zCU`-hKfh`c#!gFuy!1(G@tpRz=o7AhcvHge{fkxAE5Xs;D<Pu1Ec<sG@oPtGqN#yR zna@95lJKifp8iiF$y&#k_K2)APZqd&Kw_}C9)evqPk_|t+@FKA-2_S!eoB48+hehd zX{?&M#_rg6{$qOxLj4&P6^28id}@&(4<YvB@-<^b<_uwvU**5MWRLrJ*CG}1L~t8l znzojst$Uq>ejYIEG7c7jKkI-#E&c*PU@mTTiHS8ebk{^AHL71va=x*}$TEIFAm?M0 z4fp)@a~G{tBq#--$%tmx84Yk)1KFKF^pWyenF|hZ6mkfUgV;#>e{4tfW`W!;R%mo3 z$F9>G;*ntR03te##k~mmnUJSAElL@gZ1#vAs-D#Z83F|2Co2jyB4Gwg0j__I@-a1j z1X<tNznjd$ojRi?ZGZs!J85_Kf8wlC&{f$-Qq--~J+6Y%UZJb&=F}b>=iX=FTcEAY zc8fILeUc!rOy){{$N79+RCk5WpG^~?6LOa*KEaqh9UrL7E)uY&VOx_Sdi5T_2-shJ zuP&%-TYLYEzg|{8)!uVE@yvv`^oLTq5M7^NdsPhdUqmI7_0r}}2)VmvPeyjl+&kq~ z*zm4Bq0(}{;jPnKta~=fiBbocrS{#>i0Lmse7A-rQ@|ts>6woHQv3H0$}cnZUyeH* zIKVxSJU(%J@|#(+-1W=}gh5|)D!rrm>#Lim@jY(HTn~1V)c!XGiukST?vk1=_kZ*~ zIKd`o!go~T*i+%o6UjXW>x&tv2EQps!O+{MnM&O>Mp*~)?i+9(Gjflw4^GwBny}$2 z=rE3N#5Q)<tY7o9oy^+)%BSdX?L?wMlS65x+O=SvCB4sz=xOr@hu?n!JXx@TS4t?@ zYEoTh+o)aTPPC50-i9y<f|ZJWjaw1Ss$~5r;4AM?mbDm53bhLE%nRW1Mm#k~XdX#R z@$>6}fG-VMOrc`kGgfo7Tf)F*auX~AktDDbBx$#$kVv*^NuOJ;Y_0<;MiW3qX1PBt zU;(>Vxkltk?lzUGN$CLOYv)G@fPZlhn3?y5m6l+=_qsm~VL2}`Q>heX^LJ|RP&Bvk zya8Jd0asH=jVdWg==y{tZ7b(l`U6;^pDQ0<EW}zj3l-j6`;{~C`z#!;Z3ZU~u~AV- zWcis;lx!@*r<kC2=hLuE-e25`GPDKJ+^8-AJ|L+0)I&wAmTkGLeUBqGq7zAZ?t6H` z%ay-2jd$Q%Q)-iyyyy6;#01ZFHx>e}x2+}?BjXD4Ag%hFt&2}KbPozA{j&_^Xo}UX z6#Ao(7iRFdwY`YAJh^0AE<#DV2g2g$JtCo`@>^V@YUNcg^~+bxqfXcD{gdS*e$pR| zD@U6d26BOA4dO+IACy9YR0;WHL3te4pq3-81T6f3u&^FX%k>F8qm)E=l>qGR>`w@> zlM{6zT3~5$9_r^Azw#R{Gi%R2?Lr~%@iLW!EDHq&eP;!61fVhW$rA0$e+bF?7VSoH zery@bjDQ6LsMkxe!mr~{<et1!L7-DFfm@)*csn{OuZu35)=e;Z#eq$GHHT!&6u9jO z{&hdGCxRbG*W+RCHbu5tnJ?O3!G`*S0O{mz|J;ab!nxxgnJN^oR%#Q}|MpH0TLvZ3 za1oFe5T_;v3$Z7EqLADr<jW3>V{%Yn@@Gxb6K|-h##k+j5_-)g;dp^fr|er&5(Hb? ziDN9r#))5KeL_vdB`EJksff|<5Cz}6cIJIA6_NRQLT-68IUQ+v6NFrRTP}$w1U>pp zcY#sxq^#ZWjt3tRh?>vW>w}0y{nERcH(g;&Lf_T@#<9rrGy~td%5soMr7mh0aW0l> z^IW}T8(W0ptUh`?E@`6EscG&HjrYa{+y7=j5F1o2w<kA3c8)nCFQ8#!e`r`GB59%< z%9b~TAfCjJkJW8J=t*4(v?l>V6@C2e{F>ddLlMGr;P6?S38E$+R92#Fy^pB`2SwE$ z;XqkBIl7)>P*L=G&-=kcLQlkUA4oF(3B8dFYcwyD=B)vFZR+`!LrpOA@}vBX0kp(# zDSs?x%8&a||H!|P9!l>9(-ScJx|XKCg^<@hs7ReYDlX->1N-FC5*BCt;Z3vGbaM#V zI4T6O`bd0bM=0^`F(7<`yq(1$5;-TJJ>s*jJmqJ<B0F>c1QHdo4+*XT!hxKh2@@^; zC)c0KZ{yvq*AmcH^P&U-U^9dH($)iXRe<vGBWI%j2-EiO7}CUhp4K7_+)IcqG@M$~ zW_KYSzZ;(ehMfe%xMhdt?rV8KGmvr<5Tpr)>O7Q}id2+68~W%{+XIk|_tiS^(Z39w zCGVh+1>Y!j5<I9hRj?biJ36MB1AO0dIs|@J5e|2DhLa0dk;rTRVHY?%M$0sN^4DVk z2SME!amkE|6u-2MU1EXsHdqXx7<kv85t1NG(Cd)}UC?t+gwURkY+GB$x#BQ4qjHk$ z=4_nFY#<;pKCso*odl?2hJasal17^N?$J8So`Zpf6KEs|16TFnM~)e<E}R1lAdSzO z6wQ<;C#d)Zi?FkjwMTF`1$oLhsee5@bP@vKG+?pbMrZspDGoF!PFDirz{$~nhy#E{ z^lj5+Z8?*qZ55xSeLRlV%_)InO$v{#iO{}$Qll13*E>8F{HEGBYf7vmUZLZXAP~?> zjSbb)UFGO#iq}fHrTQ76D?7`s?_|GZ0FF$v{4mNLBPwdN9`H50!DssIh@45yi~LWS zB;ik)?!GV<@P+@C)`0EV5T?zm*TqK5W?#!6{z`JcE~}B?4YBLdcbHDwJJ@kna#vNb z+<VN!RodUlSZ>;QoZDmTA-66sU$a28udI^&X(dMnvk3LC4Ne)PbiD7(jYA3{x=#*D zExn(ce^ODI)X)Kc5??%U4bl7sy^y7QqU44Hf0-*Poj-Pd!2Hy=gI<+|3xU@ii1W%d zOB#K1L7mB6(j~*p@3zcy>V3?}O<AuTgQ}im+*RbY&l!F}F;!>DUt~FW^X<v9eYTvh zT_S$<&8)TMn`<n=Rz-@-zcmhQcUT^KR!4gJoB6I;jFLE=B%$|cujVN!$<K!#SV`9& znf_sX<$3rcPoxl^^FWh?>9)i}aXT6z31#wael-^1J5Am6y6pX|jUD97n~TZDEMGLl zgD-ONbV6AJu;)TA7dqzdoODAiyjI_akYx%(Kz<zy0(u<K4d5_YqpT|0YvZq}2%}Cs z*9%6E{WMn7pTMEN8Cod*FINHFZ_%Al3NX9J&s>HMRC&!*QE-?*AlwSJT=X9a|CXf< z@*e?#t`^hZYgDpj>{AD6ri)Ql4XvHb&pxUgPKas5GEqMy=g~ojxShRUjNj@ooeB?2 zKg3QqKGJd<&|Js1Ij%jMGiA(|Q20k=1vcr<(h$Ua0o8@`wj&Ya?F`s3DWr)eG@Q&D zwT+$f!{VB6vv2WgW_a(&pqfMFMXC6~H5_i%(*Et%HglfhvDtY^OK_hm|GrPKY}cLv z@oVNbAaKT$?3$D$*Dg=oI0|VtHXYK=ZsedV#x>vS4COKX=jcfza!rpsH&itJ5#s51 zW;qdO--KuRe-cuyY$G5Wo}RV;_wkl3<Hk`jR=mWIbkk0ao~O=^n98V;pDR;xu<)?g zTF(+yL(_oN46>Nnuf=$uHU!0fk(@36s<i>6(ExAg8X%PF9es3^cHiHg^*ePy3LKzp zStP<qvIQfMwhqEWaBo-q1*#fdU+-wh5@AAgAnwf<le&W6bRiZc08*c8@A%<ow@zYI zrxjTCL$nO&U4ykS8*7Zn#unKFor%jJPSod{f!3bM#2in1BJwYUk;wRBG9CG161@O$ zbo^8e=$Mlr4cB>b&4wAsLus+Q7h~Jw=mjaycmX#y<eK&xygCu~feb?eFoywxLSP~v z0qQg>IdxoN1-63lK;MY$5_Kd71kGrMm%i<mJE_<9>L1lzpNAdV8&2*P(u2d);BX~& z=v||b#Z7?ovw>TQI`d}`fsq^P%LpPkkS(>qvjskD>157}A`po8Qg1LSfm|c&ZzGF| z{S82Pyz|I?21l*PNqM=cF?OG|oyozX0PWdCA=w`RRpnvC=NtdIDh->1zR~nxHArx5 z=iUy6(ib&eNT0XWmG87_;-8NLe!XG*+dV(Vy8wknMn*!JW<NxR-09X+b4d>YI3m*E zUJmWVy1ZIhfqsH@)<=SO@dPorD-w$v{0%tZs$C6<i`xly!=FNc6k^-O)o`<g^WqP% z-<^Sz?=r_qd~WEOKtQ@nqO-8;8HDw2D{ihIdLc$G;7l*VcwmeI7vO*9K44$zn${=A z<Q<&Xq(Iyu2&QRhp!u@G48>`kE{;pFD3QoF`eQQRX8@kr<{D1k1?T{i^B51DOvyxo zEHRPjh0wV*TtSl@Q)SH9V0RJ@i60?ympyG6%~Wz<mR#$x?>U+nOlvXtamyXOpxM`` zFZxWxquX?sBLyZI#Mz@{0%8rI>w;`jlJ>{wq>0h@R7BuuK<d4g0pj~i5*iacTe#Mk z<z1GuzQY9uL`_17;4E02D9q7q7+iE4qVk|Cqh4W_o}fYs)C)VE&9(<hRA$E+BOXdq zk<NW$<kKKDM+$|b0F@veIXK98-YAqFlUA5@Ey#hmwjP{ojorzUpC|ggJr5$tU7aU* zba4Cx%q0K?aHJz4$`qs>A(=4w3|H5*cVBF6Xdv2jP-i$`u;pB16x0!66A1WntD<@X z=tA7zJF0xouf`|=@_;a)@6xJ`P$FVD9&QVFoZR^WElv0{t9y)VY9G???XH)N1}?-# zVz$qoulsh02ypt?`0m)-bvwum^pN*X%`Gv8UwwOC;RFOIu)t|zS3c(CJIOo!ZS&6+ zL@c+KH>kjI-Vb8IVJaJlasppyq2Ah^@qa#N)1i6Qa(X9!snsx>(hF{W7wP@e(iKIj zYrzhHiJ*tp0og$5|Gt8V<?i#4Xu_{Np$8o>WV9<{0F8t;&N4yDVDQMfp^Y!jhKUf1 zQtNCr*-E$m-toup8d^}tu>UlM1n{Qx_1Cstlxs*N5ZcMZdYS4jO>GFk$&NQdB>Jfk z6I^Jl6Nm%ejgc<1ycws~lP=T3pzwQl<NLc>iNT;)!n%zL8*LNTPjvm2kat-_0>(Jd zDpZhe`8@#;^^+Pu1iJptx#3Uz3h@KL1%NKPUb{O(5D;3y@(8WPu;d@%m8Q88racah z<Ksf<6Af=VTE!j$^yaP_Zp%da??V8I^t?-A-Vxu|^@yM**hCnKF=q^q*_*-9nfE?t zOzcdUXPWv7S^W#`_LdVM;E`z8NBeewalTL&naSvH#@d}Ug7*lk1n7d$tt7(ZAbR6V z6Jx~196ZKrIj+6-AW%$W{T?|vCZ0qF$$n?}3Zmt+DAZjec+N1Kl{gczQm_Nh^}$X( z(Yx%Vp{ja(_f?b^(1WZ6Y?Y?#DcfG6y*-c>Iy-W5qJnOT15ykufrgUnH~i;4A<kev z<mMs%-p5eK1TB5zSwQ>@gMDRLApRYAdbC@Ov(jJxGoDB{)x%+6?;Wk4n&tboGr-NX zLNH)#?_TId)!cq029xn%=N9urx5pPn;qco%oqLD=HU$a;(jh?Gf4m>)euwu|r0&k8 zKY#n@%S1mmw%sxRzkYAY|37#AvGHFMbmxmSDi3{D5PxmabES~~TCx5|qm>KycOU0} z|J(C-*LG$f%PhygXWsw*#eY5J|4W18UGi}F>1rUD@7_IU|GD%(9T)~2JMkDCpgiN^ zMbfn)v*th3<iGnltj8zS=fD1z@%ZmcdP%Gtxi9qZzd^VyZ26yed<YsWe?I}0k!rvo zbbAucbnneR63&!xx3di?Klx5=KdeTdM_=sfR->Yh)ys!|t(4!@Rs41SG#4Hg&3QO4 z#?|t0(L^&j>q%3G6?~7sM$%OFb0(z<-cKR?VE$`s-jC%17pHF|ptZ!sZ(<Mnlf~GJ z>BX%xc%|P3NY-<{TvO?g;$X>ma*EIQIF0xxMc3zo{!(~a48Gs8J{A>Pw^}!bBxp+< z?Owd*4_2|A1q14djK^dSt&8pYhK9I>kF}}VCr<c=S}W~Le|Y}1-1NU6ANnvO_;Bmn zx44DjrwQ6ejyUapnDJj9PIu_cr;$f?SP(>W4>|Ml@u7g@i^3mYlf?ho;b0Z+hR?>K zPMtbMCPcAg_wV1I=*aF)i`_RqRv)69Nq7+4=d}ptCycgp0pyXkyF=h8J~(+&4Uk)| zs%G4N^LJTZ7(vH}1M}wZ^?`KZy5neN1WO|qS(1rfJ0JZ;xL^Fc6%FjR0&>K#f^nQ~ z@a3G+kc>fx=dZ2J)b<(^<JY`<CS%r5uRpE3oi4@%T(}1=nM^<R$baOPytlF1L#PGa zhWk+MG`4!t_k4!9_)0KGLxoJUcdXOd6es2eZ=q-=@g@v{rgYx$)Ts!&XmggaRq5-% zs5K<(l-sd^OH)_kXRhqO9}U$YNh|o$_mccwFevzf#(@rx(D~_3&ANe*VX%|~Qf4yt zLIki{J<8=SbK(l)W22j@V%geDH1@T3BBeOraOtY4$=gjZzi50?ZmIOD?b>ji_*sgQ z-H8_*1?lM_pIwl^MZDVMu?3BW{F%|9EqB4&w%}nvRi)PDk*TL1z=Zk4jY;JFK8kOY zofs2cK2-$NvXW`DemJQd&2;Ki&n4kU^LwmsJJBp`c={ac?Os)Xxj6Q5`ijV;vdGm_ zhDm$h<elLHrs9>`>ur~;GqW#Qi@r>F_2Z0H=b2Gkg|fTr%E9Wxo%Q>UohUf3S~|8f z?G`?uFNPC&BPX8jPlH9aoVxbvQzqwOo|{Y~yc^7Xu0o#I_weprV#Vwg)8~s9!&EW7 zJLdnuRr0pXx=6^Qnja$vbHeVc{fOVt+;VqzA1)|9fS?2%5N*Ml@zUnbt3tl{png|I z0eC~7uYdwE!2R^myhau%997sGGyIiYaDHKRBPv7<WOER(>vut+ttblVk~Qe4=Z}V} z*~V6%S;+y1^wc_=GGIhpz#KaHJ$mL!T7kiEHSZDavDLi>P0I1$1r`^ZESe{8XZ)_1 z{2AQhviWK_%Dp9Ieh2McNP7%iWO*5E_r=z_6BR;JTiI<0zD%)VAGEBMy6HaXdJ=T@ zoY|H?W$Z{uei!+uuI1>%NBkLvjgyjxb1vkm;D&Xc$l_^SA8u`oDjahkzD+Z@s_xra zdn`8TST83{RX=Z1Q#~si&4K%~S(6nhnjKv_uuxDG>i$W0-3SV%G}Bwi|04Ev>1bg6 z^73JUpOO)#YnHADj!s<>u#vCo44OQXw_7Snoh4k0Q*SIRl8Kas_J|*6I2@XI(ESOm zk?i46#`2RdLZdLp-pWWv$jbD(Uvw*GO19N^cwCl=T1)dJes&nS--&ftX`WViJWTm{ z*zRIyTJ`19sv8~c;fK3=EUEW^G4Z7Grz;}IdS9#z>ze5Ti)T<(Vc^ompV#k-86=k_ zYygK?1m(zaCQ^z|{KiY$zBnwHL0UpB`|oG_1&<YaoC_19$$d1R5UecZMts626z{p0 zN)g_f8yRSJaPLQQrs;)X$(Iya;fe1{<}pR1t}1ld_XM=globtH>L^KH%2XhUXG$*j znSAb=a_Ngs`pTTNQR$;zW_+k7%jU3X{qem*pc=_xXHYAs_yEmqr$!{@aF^`{f$4kF z)BP+z4v+l=6$q=UF8AInkoFiB`Fz^Y?Dn*?Y+FT9-KuES%SC21P4}gb-!}IebX&rJ zmwM+jiZSpoKXmcWaL@d6o1)Cu>BG-HraN1O<_ipC*;`yN(6B0|PA4!fX@tq_dtWMk z_DBWa-Zb;>y&DU$YZq|qc+Kr@-P3bNo90n#FD5RV)L2c*uF8Ol1_PIrXG{$zvM5Nx zaCJ%k<H)MpSF%a_M(a`?lg&ZVf?fr?*rA07#n%<oMGiWh-G0b-MEkZ=z+wo0g|`st z)f+CIg}L{Zy{qbIda|9C;gzC;+%Z|H@_%l(|1n#$7=oc&^vyw23{9<R58CWr{g2{v zVz7H#EAFp2OSOtkvy@|giPyia*mO$mkJ4ik7yQ*lUjF!9btQdWKzd(_xtMr)zxYfn zQi3LQ?~7F?wDFUwezTkOZ|>iDSap63`6R{m&c@}j;lL<gPnFeqoBMsfRy&PDUMURw z8|2fI(2uf`v~7Ybweh^6;o&gKyZc6FdPj70bdbQ=e|&Rl%8?B6<PPsmzMX6b)h6G( zV}va%EI57<+`kHP6W~0c2`;$1v+)9Bq1MD9)eIRjOJZtj%k#C%Kc?O+oxgMF;wYy1 z)hj!7gEPmEvv+>`_RSdr1I^aHeXOlq<`tpwmFM8#=<(bFza+T3FND_kLy?Tu?!_NM z+7~1_G$A3u4phKgdfl0=9*Dde7>MnAP*Oq}YV9=%=W7_*m~ImwyL4r<mAmbP6XClD zED)!Fn>8lY)u|J_y|G!g*47<f+nZN-6<JtV5bo}YH)?-<9R?}lMcb^;*3Wz*wSi55 zwythOUTtlrQoJNhq9C!>fAMvRl7>b$^n2~&$K%I6%XaXS?!R2$h2cClT{LIJgr;_q zDJw%aj6v+Nf)<QvuHl8vEQzJnl74Q4C-v|Z|2L6c$16}O&Rw}G@tUU%8!cHIMl(6- z+#af(0o60<h_Q{AtP`I4bhfK-alKg0k=+)19gT&DTF!4ZZ9RgD@^FEgll{Ll6%!`c zNPlA$Q0j*sDkG_h8-mjdmUA8~hYtgsQbNMlt%qMm=a4ezH@UHJiu@f%Nx`(1tjN#G z+i9F(S<CDbzeek~pEe^w!{b>J_nWhP2U?I8ZV#&H$`T*<|4ygX*nfX%6xMA?K`vju zYUyTXIHc+OXkI*G>Bi}V$$-H>RSQ5B%^i!ovVK`N1Jk|w3VCprTpHC}<~>@;-E`{i zgc9$W)>GxFRso*L*hy#6437=peoI5?gHQXB4y7^?xvTM<VJcG6`#P8Z*8iAOn<=V# z`Euf1XF4Yx&1!IdijG^{YWDo|XzY)}94+46mK#IsAF97vi~gBTI~~9qF(KNhTFoU` zP7lKi4qBErh?i<Nx3=pJitroPEf583*uDkx8Ltu3q!{BkL>xwYZFOHaXCFJiNae z5Bj)@|DodNtc5z2c)-`XpE58n_)rn@+Z&S^xMb!w{qkapdB7sdVLU5Pv4r!Jzs8@o zKRjk@5Cc(Y8$CiRQn!UEmiU;7+x<e%GdmWGhA-y#V|7{Te`RPkSU*&Z!`@xJ_WTvn zHw~(|<V=okP>JHCGnDSSvS#vY6zLF}{<uGERYb+*Udr)8l!JzzZc$ZOw9V?D<fgiG z05mUX7-NCc+Jy@jpdZ**-n%rwjXxX=?#<DHogvw}8=(I^n?j=>gqMlCtn@$g0SY*w zgYy64BnIH!zu*7=?bD!g6-yYA_tkeQqpF^rDW^WOp@&?Z)(VTd_c>kNaBc=|^LzSC z$A)|agGdD&F&lwlzMUV-s#>n*SSpK(ePn47_S@im#rcZ-1|c*sc-`LGn<trVD!tqa zMSh7^V=e>WVL*66;3<|>R==y5>}r>U-?9q><24xD&FuMf)&w_SH%)gF(fcXp)EQQ2 zdAn;A?(F<glN<@?6x-XcB{y<NH={^-SJ@@P-PV=_F{+Q3H3>(6f_%|dEXYY%5AJ;y zPG&v=kZ4aQ;{Ke@R?ZaK2MZh?n_b<vf9Ev5y9q(QpK1LR53DU^kkDgWqOdYC7$w`k zxz?=(Xt{10ZsTk8Ft|#Y!i(Xb2f83xI}WJ3pwv*T(w{?jKCuRZA)vcEAO0EAvvn9y zQJ3X_p%3^6`L{uS2)WJ;K&qz(qda5<8C4O01+0-td6J(rDL^fQ^if5j($b?$7%H#v z-@{6XziJpqLAtcV-Ew<S#LE;wTn0}}_YUYNT-b9~cCGz(<pOulhJS`A)(kdOWaokt zAh!S=xwM@lFkx{dIuRaPLBhK3thI!RB}q6CXaj?xAV*?RwtCQk+!86Y-%lY)_(7A1 zdc#5-*3n;Uk1B<)<|xEC!UM+*j!L7y1C$rx|Mx+Mgu0Ss5s9x6Fc@K7L61BlCm9R< z2L^+DB)asR;R(p-k=yGK-)PI^pi7VN<|b`k&%sLuSM-1h2~aZRP4os37{!xg5zqOd z1Uh9P;SYEK_OjiD9MZ|z@se{KCX+KF*<zB1IG<qd=Z#b(CANm8#YUR*i>tN8EEJT! zFI6y@GDpU>aY_ypr7PSpvv(r!47ERAGtxyEZFT*a&sxp$zx49uOVyBTdET`j>FG!& zGjge{AVBsPrwx4%f4HT|QQ2r<=Vo)|3f*E2PRV1cS(Gp5sKK$Q>>l2`0&hnvd}hzQ z!{s)k{n(k)Z<o1^yym6Ga;un$e9Nme-(SLYU{7pE)1t~pvoNFUb*GCi@P`>0ww77l zkseyt@m8ti&^Hgk(fJz6xUbP#d_NF1Z%BBWcus6BnA!8L>Ck@Op__th_1}{b8zpal zg-tA~u%FJ%d*63(Y)-gTI@8y1P5;eXl6Y;mqKrj_#%C*${dsKn%XN#~HcD3oG|w#? zdYQ!t9b}q1oA*pUa*khO`<rF@9rI5ApAQ+k^ux@fOvmhON`aZE@%F*8oq@WLsVTE# z+O^1TOlDW?b9`*){6*)vpUd70l^<L)QtpW#({1Y3E6TGx$)r;Zzq{QhCVS-W`R8de zd-*~>2@_r!Nl5dBPXrHd`E)&7t!>-#@#!pMJEoNRYQl^7bXfD5>3&^}oI)?zEYaJ_ zsps<gRz+jp7fdYlSY&gXGw17^co7wPuINeVtK!M8Ji3QI#aBmkB#z&Z&aiCjGLT`B zkh}9Kyz$Og)@6;nd?SZ|>KAq^KTa}jFl@1zGox{KBN8`xKe2jo3%owft5|hQ@vE-i z<<!_q?$1+7o*m22d)$W!EN8!c^_rt=@q2UTGWn*d+&q&Lx#vx5xVd|h*ME@tPM^D? z!NnBd7bZeVD12r>`CeU)m5SBlll`h^tSU`EqT_PN7ICcVYIaV<cUn7H3!Az&+lJBN z_$Ox^T=l&DS?%f{OQn*m^a2)I6ci+Bd_TR*s@c@MYP=~sx&tsQWZLTYLhSYWgE|<6 zC23B{Bt_n=y6I8JmHl-!EEP7@>nWsf()kOFC^po6hDfdhVX>l>XSue|pJ=h+6>W|p zY46twnHBAGjPRVa5tUOCZ*=0~zc%5ck{Sp!1wx(A7{ArkUz(osQucagHJ16&lX3iK zNmEw-&sS|Fk9xOS4kdPN1$a5V^P-e^1tLWD(#vbGhH+_E@r*vy8c;FNupLiNI0$0S z(hykvc}{Eo*gAog!(2keVKw)e6bz~<uJujNOO%7(G+1)$rZNbGt1>ya{Hz*0?piO) zR7hVPp24o(>vyLlAaIk}x|-50Yu!Hh7LDX;t_LM3!ve9|(_9wDO~<HRKXA4aNe_4? zmcl;QYDy?uvF406{ajAAy6iH%pqE4Pv~CwFZ+uT1{+;9MR%aA^-~A6#CldHt;t9(8 zl&5>QeF7CeUic>UICxexHO`59k=dZ=*!Lh)EVp@@0I%%vH*Z)B+7D>l-rm=K>_BI~ zzN&ii%TW8D_eB=j^n=)vbt^e*-xRXghEE-D8LfELpU~FUQD0pa!}ZXFT2)WYLf7WC zmP#x2Q*#P=1Nk!lOpPoPpa22(e#`x|wU-Z3-G*J|OR|)vTUk_Meue2sA7|gYk3E`O zAVmINR*Da>X&tWsp|l)3dv!|OR6+E$`W%XBDeQ;TMBvr32Zt_xK6bI-5Ps3<g6r{w zpX0GcYMG<g#|aN3JsOAJ_+~f|l<6EwGHx$TyY6wgKpFp~^NF+ibV`|%O8c(|jjP95 zttH4>`mNHO2LvNtSrf=d-GbuTZT1X(Wkbj@Z!MEQaicl8KQJPC(%!93mbIC4^6K0V zJNVU1iRl&#>f5SHf5O}3>utVu4cg(Q#cAW;=U%>bi-;6vYx-4<e!1>bmmz6q|B*AE z>Fl*Unc_gN4YBlY;?k4pXZot89kT(hXNwjwjxz_TujL5VH|7*xeo4%JaCLP?TJvIc z=Ly@)?e9;${O2(v7oOlAjUDCX*Y<eQtuE~s&&0<z-WEB3@M}%h{L{y!W7DD8m#wPV zHvO%x3EVy^TpX;_t6txheNFt^&Rl_t9Ci3I$%;eNVx6EPO^tEDWH?ef$Gj^7D<qTO z&SYyEwCDM~nH8JXli`WVFoM2P!B+B*Sj6ji&R@S?rNtPVlW0dNN8uTg-4lanR*ce8 zelrL!SkRr7&$nx8AUY<T&#n}g2+!t=2=+Nta3%d=+Esd8vEE3?opXj`!XKuxJ@gDw z!Ec}+Mgo>y_&2Xpa5&{iqTCDMKpIM-eLU$iW8V6_B+XoptoSqyX?Yuu1#VZ^drBCr z-$kOcMexm-#(s{wE|9ZBeC)(2TJ&N~`<GC^y-1{(np~>2v%MF);LEsctNZoHDlO^A zcNyd|(WATRi@R^CJ-p8{ZB4M<!=NuW&Mh-`(?xLMa&EBmDwNNkct`Fw`KGm^S;L-p z<Q@{J<D7}1@@rajiO)V!5&rTHZ{HMQh}NqT2iWrL)KX_@_y1&74L!z~QTr*L=MqSa z0XHrD;pZ_IL>Ld<qm5y6%_Phgt}YFm#D`>$kfKZG><*nc8wI@IevYd|d+~M)L_|bj zUIcIO6M~u|m=V8!|3<3Gh2zRsCy8ou^A1!j=-Bl5>t$;R_zn)m(2Fh8UOU^kcrxtk zbu%ruzY&5#I2?BgIJ*vTz{vxEr`&umrkAk<@yZb+P=mudT%5vS8u%XqQ=|>LrV!vO zHnx)mC51fVyJB_#u{1Ggc<i;F_;uR**R&ZE^5Qfs@_7UkPlR{N=j2|$@ks@LRF|8Z zvAjpcDpZKtQ2qVjJUcbapEr>`URdpQIkAxrZewFpV_|29rbKZ7F$fY_R6Y4)$+<ON z%ZNh{zR!b++I$>NhLZn9U+}<t3X8L-nNSL;S*QU9$eNUIx1cDEBou#O$JeN>fjG~4 z*3tOD+9t5WxE_;u=f-N8_FKtQ!FuFqy6BB1Qjc(IKF!~x%iSVv9ubkwhUSRbubW#N zsd)tjWFW!F`}`@1ig+~9d}Q>cVq)}}zNQohr*MS}<+K*Bq#n@ZrRU8-oVBngOT)7J zuS<6+M0*l*`{ZjH#_DUPzuAU&&$6Wrba^Gz1Yb+A=1>)D(WK^j3P;019&b-WUtfy0 zsVQgY%uH12>%!0RZQ+2I>z>Ux#4vOVP~cyqBC-Wtz;6Jb5?u_;LCOS|2g4^SCVx!U zQW0_Ap$J)<KeEO}57;{VQUoHA<IOI8z+()5GK%UDuuaqCVi)fILpfv#m>mJG?vFqe zD(oGWb!z9i!Kny}f5mIHpSTa<$WCpyCsGD5cEBeX{*L0!EOGd&-}X`n`P>Y8p_Q(k zesfvPk^bmu2Ez4;b%Op~l81am9OlK<w+-VtP5LL%N*1(LTjC{eTfLkYLjq{S*sN4& znN0?T)DVEJ?;TZxD98qK%z16bskI&29AsSQ!a>Y258MFZG-M+iu!aH-MQ}4WKVF1# zZhySdR8=7Bhi$yqG9GiX)84WCm$T#A67VqYDh6iimVj+Mztxp%*G^+w)Y$<1pIX}K zhThNcwY4@hb~Nm0H*B{x$?6BG_@IF09J@J@c9G%V>4|D@bbL`LoeIbfQH*b??>co! zIJLZX+=~>ZAxZ9o!^yn!JC;dGF#UsQ)zEvP=F|{`K!TQDEsGQe>x$HVJMD2pY$kF# z5O69gZ^jhKz6V|yeIeI4hTIcBG_;D9bv7&kT6TEL-FPa(`Yg~k|D@t)Epsy%$GlN* zTRCmtw2IwtZSb0>gAx3HX_7Yvz<P7$W5czygE%oM&qRN#+s5R3v=%S?oCpO69=_Pd zTLfxfwvbzlQs~UmK_bls(~toS-<4f?P5*Ki?w<XU^N}6<8`2l>@jO1Gi&^^qHH5rP z*IHiwhz}NipYfM2Q;BO&WBk5yI9o*7Jy;L*JDWXPNVO<_tz~@gQmWmn=Ef>nE@9JQ z`SPE7z%8%k`He|P<1uiYFbJ<s``snlEW)Uks@=@Cz%*z=4(UUPeR|qSV7Js|Wc@(J z8_WFe@(S8mvTRmi+0R%x=)DdyPlRc}zYjgxdiEG(r<^WpymaInu<@cK+(8~!lUsd6 zHpa)aVKMC*EaxkimLRt$9FF%F9vkr)huho&1c?jW-cEC2fXo4<XVaAN7zKF;N7L@m zSob#%a5%@Og!T<;0x3^Ixb{lEn%q&^zy8(WWc9i|GO4khuPNJ<3H5Gcn-5P?e-7j! z?>~#~aE!AKBM|HAHFp&90Oh=`rN|j54-zI`1Ddb~8V)a0*4M!To@@70QfpcE^|RiK z=QeWex(r+Qh(<Lu-l-}2Dv$%@N)XXyhC_^jMK!ILDcvpgBoP=Cy;dlbTGgaHVJ!N6 z+9a}>l&Jjcqg~4H7By0mwlUoNnamfxQ`ApAK>YdyZC`zjsdh*Oy)s{zAD5McaD6;! z-jPUZlt%WJrd*94Y&)802FBw=)uhi^&3iu*4!Sswe`@sOaW9-qdYIS)>ZbOO1Hz&P z-z@XTx~nrlBc~>_E%eb_g{2!xFoCn}7ms1c+w*w^SVU|QD4$_Kj0%rsaa0C2@^B!c z0~+tc;YGL1?1;0Y4b8dt;_AC&fZT)l?R9Hz5p%kLdNrH4jp{9~=NLXZ!vYNUo`rVx z1&uo3oYxedM7k+hfthbmjm`)I_5#e$8b9XR5py5e)&u|*!gC}lgL@kfY&E;Qz6{#J z9T;_Kz1#&IMQU?7d~dwSMMlKG+iC&&@gZx!NkBh3QHxd|e<7j=XFuNLDfV7-K`0gx z$&-e>AifR62<u&5>ua{~U^hKrV~x)Dg+$R70b(p#5cLCgu2p<Ge;A20gl*#>`q-LO z!ttYV3R*XWQ(5*5c5w1WuDsTKL0)J-(I@1oCWl@r6HO%i?gl=B2!y*3=X%s3<dTT^ z?_aM%$QN@U777a4ZdG1l*5d%kJET57j*B=T%|}n^`CG;BYT^KFK)wNXU^^~}@br02 z@*5yRAFTu26F;6XyU@%8Qe)Gd9XBiBFY&F3oD@T{`%NoJ{vkGdg&U(5fL51y%GCGP z5GeBOzN<)*pU;K>d!^jtXCCa)DrojP=E0_<<xwBdg2ggj*Wq8iGf4YPgAU&8h(vxk zjkjw*i^pi~QHV22L+-Ih-=ItIB+X88g+>nt@XWw{HYa)8TQQg9c?ie$PQh34-LEp* zOA&}Xl~}}=jv`j<&r;6$8g>syA}6O4amhqdDFP5VV9Civfj+>Xqr>#nsUtUqQ!9#V ze!eLo>`}OA3)pBxqL7lB+*sXjAV7pgs6SrQgjK&4MR9)cW)^JZ=5=a#R+N4x95C?t zaltEd%zF>p5&c@G_c#2d6M^1>!(Z3~LYh4~ee>55I2n@rL<3g=S0o<STFe>p_-^uF zrCpZ@&{z4bXoiOZht&dUSf^mg^m`QQbB?_|WX(76S*7)p>iK<oaEZW$%X$KMtgZmh zFGgwNs^G%IpD#PoK0$KHZRx=d^n3Y;P{0$X6dW}M%w?_5QCHTGU@?BY%Jj+!g*v`{ zw8npEpEGcqgB+89tA8Q;*;GoqafV>)_k=uQ3Ce9LV?d|H0mDzaFOT225fegyY?RDU zm<HU$!m_px+}BNB)@$UX>&jNANUyGF-2HSPY+Fj~BfmMpDEoy-6;5r}e|5^9O=8qx zC!FC`h`|etdA2RuQYi!Sd1Y!SXtI|7%?1OU3=Rj}X~3Trlfb3W?C3HXKD86=!;DR& zF94>bzDIqzF9zqDA@+IFfc8^G1Z!0YeLp;TQdCb*UjjModC2|3J_8FTRTi=+uo$`b zJH9ROjQ4!xsfKbk7K&5LKEP~-<#56%h5m_Vw;B}QT3VKyJu<lnjHrXx6D}R=tm=)1 zM<`fEIsW_Q?P2?FriBMqB@wqp>hR9I2(jE>@ojE}RQ%>f)cMXN*~Igx%g38P+yM&} zw~pw?>*|P$)@xnkGHa=gCfo9jMi(Mqp-^kNtS+miO^<&4@Q$uY5x4K)#3BE+R6#%~ zU2!-7+OPqJn@5DkBc0Sc0cN^F*Ej0Dz6L1BD;G{~L1Qt^oc6&=(=ylmGjeZy+mxk# zK$aTVO*goUHD3k+jPNG#BW`1a&pwlh*y6UOHN)3WYi`P5kpbHv49a-G`8eXhLcY|0 z?HBVYz59`<@k!v4?_VZ1bBewIkFyBmsJx-qsL$9p;w=qyzU4)env``y2+BAMiF$c0 ztn}HHWkdyD>LJ&uF|Q%-^Pii5bwNjKx$l<{GEf#GY#u}Qgb0MZD510H%6Crg%R|D= z>k=|R`MeCoZyb*R;V2z))^dS%w5*fYyZ~T0V1mwf9Q{6cXg>xM`>jTZq3BPL28oeZ z7#`#km%^ii^zJUE1J+HbNN9$d9KjddO$czTQv?QP(+<%#Pf5a4l5Q(KF%y-O70~K* zT@FTx{XpH%IPlmTgVE&!(yNoely`}1MgSVlSESOBsyMOL{SPxDRKvJZ-n5!3khmt- znBe4{Fj4K#9oV;bbZnK~z1swGQ-``e|FV9b)A)c>;$Eu5;NeA0f+cWj_L1cQ&T}9R z7j^)(P&R=jixNbt+csPotEZkEzOURp4hX4;L!E$5|MDl$jzlDB4<wVcjWdEmUIYO# zz%K?k`HTq_zyAUjS2TykEG_Z4h+x5i?AJC#Va;h&3`@#$Qu#c~q~g6yrH0(SY}M2! zzF4!@dBv5NNO$q#MRIAW4E*B71<Ll{&P(LV02EDp&^nVHYxKB=7&Gc{NOaAy%o_p~ zk(sy0fma_wbPOy-d+@}O5mlCG7>MT{nT_)iiQP(qR(1hf?IFMy6MceR$SS<eBR}+4 z=pHq>Ar&Ob_zn`8*mbm#5sXA58`|hGgJ;p)qMWIA5#KEKK!dw=H))UvKX!3ca~3$f zAu52CteYoyws~<(D1sS?H8B9P1woL`@cANx`v40TCKA(Xz~QthuHZD=IWMrU6JBm; z!i9~10ci_-pwg~j62i)nNd6p`uth5(QES0!{IhU|`V5q)pp}HC)h-ij>6SslML<_Q zoDlMJ6;Py6kH!a21H&QOs)n*0Dk^K8id9~wh9|&x5|U&&=(`nvyRG|3qtHkqEctTT zW>>Cfv|8R*>#ZEpgr*MUp^_2?4V-Oi_`=&Az97N`^L*0B@$XW$r<-e!ps2otvwVE` zEh2H%F#1K6fbJHx=j$f$#Ld0;sx`M1|D4B-my_edXB;+bvkRe_;KYl##+lUB>NP9K zLn(-AN5q^m&hKrd?DCbY>y32Gkm@-`+71!gH4)vM<TOrZ?&=j7VviuVO>~IfkEXnR zUhJu1iLPF*uF+DFTs?~o+))AHhbPQ#h%xM2bX(&WJ%7Q7b1`<cNtk`rMnj|1zq3qD z;lW9kjDp~EXLuPNTa=dIU(<c+ws=o!G4hlaQuNdNVi=peX{V*;nv?H+ty%dE_N{;H zs_OV1G2<?y(%{+~R?3be0?4i-<bk7Uv77~}uFh$wmW|jbymyOVAk#L6GoE`SdsHMg z5C3S{Jg?)S=^48B?c~U-Y|&*rqjOq%PAL~rZ>&>~$#~4-*v~$<>$9P?jpj__I&S&B z#}#wj_Z=7B@5^<zIGV<@O-%=?PAz5fP1FUTfj=P=r{%)dB<5hOyJd}jk>e9W$OGK3 zYDf8EeeAnf_YYxbX>a#4<xln{<=;8Rnj_la6NXVXZuL0Vos*$_8np$B4S1(P{&296 zT}XLNt;Q<irD(-dp-uUq9fW7WT3uhqjCcFn4K11Lw_jgKa=qYbz|<pFw2zx5BO~ng zUGeAwLqAt$aci8g3|}&5*e3=w7nk`>)qQMiTu9Qbb^krb*Mo>_z4qfn-zGl#cd7X+ zizX}w7dmV4#OM-n>A3^*tQx6pkpYKozN`IEX&~}@okNMG&?!_T+!*X$TYM#cQ_@|Y zi@n~dBeFSn2CbJ^r`2s>v8rE8>+(#fQOSr&Ib}@!j1>LTIARuWtFvLw&x~>D_o<Ec z@)HX*gVy^jHqB4nq4o$ieMYokFfzG4x5s$A%4bvTbco(E3C%nkn#phR6$yN1Hws5b zBbhu8HWK+Qe2WX2T;4^fIEXwIc;R`$x$&_Dl1Z57mn?mtzE0}#Esq|I-8J19S{g_B z?sv!2Y#u#o@b{xTdRb>KZb<4?$KXIAeHZ_XL4G7lcTfS7+Ck%|n<`JN;(sY2SJ>lm z!_y-sk$RVC7~<j{Fp&DIKlpqo|6RSh_rYh}m)~t;wn|3Pk+&|Hh#u&-e(-)zY+L;~ zb-Wzy_;mVGK-c$6tNpe?)K@RT^aP>3>%vKE>pP9_-f_oIPfh8+qk;q1=C5H$N4D95 zOQp|@_hEKvzJi|*yR7d(1_5cF16Z1~SB-)3Ee>lu+R-fb5I87KaKZ>~EORgG-Z+8G z&_T7SlW+J2(vbYNMEhtNd&j{lAjZ0%Klt^)&nN}wlPgG|sB*9$+#to+^?<N7nof`0 zwTK?*&KWYvQF%<R2|<k2>v&$5&2DcMqy5MqaG@)N49pP_nlG`KdkPp_X>D6``Bw%W z!T?+n&U^*Fb3W%?&n34sfy43)hmKrarf+P_ME4;{a@}G&Qu3Rlec}KJtAQP{osV>J z_MtAICRf$k!}?nZ0X)|6SofgT=I*+r7;UWxlHFCl^AioPJ6nmL=<V{ydVPM;gaxyI zwXZR10Wz;Gu%0Ub=@K_V7U31irCOBrs=0hgMqJJKV@q@SCJWD|uDMSWKp#AJ*4&C$ zn#vmG@m^Qep9q}lsyb2WKXdP02x9#k75OM<U+HDwQ&ujV8q5%mPZ0UAmV+JwKJOtD z<9=hN|5*f&fFlMT108Eyi*aDTV|$Rc@{sF?$v2&=1aWiD@AEF0j)09Hnv{1U`r3U@ zK>6ZU5wpDXXIck_EGQv}mZx}(kOeiT5uKO>l~`ChwJ7YCHtu!>g2wu;qJYp5D7D?l z{GR$wBctyV&r5m($G)MX>EkEF=g6EP0LDtN`#D8Llt^wlV7&KwW>!QpN>F~3aQa3x z$GoFsT(rSqKv9E;cXxrPPm>ZMu3rFL-W-|Qj+}h=Ya4;M05?V?sV4HsU9<*UKmkWj z-~^^Q|4RqR|J~-qid=)kSr0+pzIx;j`uZG<D4DO3u|BgFz=m(Qg<iAggibstpOO)S z)@Sf}$_iutx(Ar^lO-~NfuCkX@t4g;$iF*L!S^RGi~?ji6HzA`K|z<t#=dr}67E`t z;KZ!UZC42FvBRVH>T*1@17R)yVBHVR@Ic;ciZycPLJT1Lh&cRryW%Yww#v;{n2ltJ zT@<>$abZ>1NbFWInHgs20Ege>L!nkm#TIVXqCb0NGd}Yr3}?~a$HHJeuVN8GBWagq z=c7(u@ScvfD63sH2#ppVVnKb{3x@=d`_F4*SXs~W+4*55^o|5ym4{J2wk5tc1Az9G ze*kT!Ly`kvS`BtK6K4`095sfE{}MhQHI$<no!@n0E)5eeH3O<TF?FEp?4Pbg%s#uy zg1gn+Kr>WL-2{q*Bz0K$V;GE*V~YT`80eLTc#)^CeMVHOG2(oQf(7|RR~mjLpjhOG zlX=w8sWPAFLaq_|uVZm&IiWwjAhO#F{wmLoU~tfpx!nI}2)SvSy7Zd0RC|(}T&r_6 zNKhxU_S5Nn&*oNu)`XCc9zuU^{M>;~CEL-7Tx(@cd@6tUIs{sWfXSl#nCHp(236Fj z@J*R00s$4VnYH}n$9;;%eJ{iNI8J}y&Y(3AL43}GlLd<IZ%z?edBRPl(8=!b^H;#6 zxG{t*<qtdnWt$WxUlE$G@(#vT&1zB7xG39kzUY>g{P5-rkavO}9Lg{s@qm*z&Y+Nw zvO*PzojQeSvBDs~o`x0}xTC(5(+JF=C)%W1Ta$8;j>TiL4Ulw9t^4g+YX?(U-wD z&>D74^zh)|;IQ9ADq^W(*@LtO=LY2nj*xG}vrN*&a$xJ7V+o$XKx9(`1S^0I(zq-B z;bq&i&qH_L<q6C^sqI<*DNhdU*-f_a7JspQEHCrRru)QJ+N3yt1B(t3=EFwUnjK9A z6&7u_qKtDu{AMh(-KFI!!f<6`|3jKXq6LG5S*Jh%j`c5(!&*Hzcj{yTc%a`HU?KB| zi&dShTbUSe0X_mcpqvCz_#r5s9xCD#&tjvlCu~h3t(I-$8{*ZU{%~}x3Hhl>c@|DZ z#R?-QSZ~FF9<i{15Q=TeKu?w?(^)IeFQi~8!QF8ZsxdzJ*a51%NF1M@j=aIg&yNdQ zTO#e>0zPc2r=%`xDM<yiIGl+ZY0T(l`WPCz?@P$`QVu}>0MZ9aht-6znJYb*!vpaX z2B&}UlP8g*N;nnreI9%=ry2f;K_c9DzXYWpkTWjJfFcKFz@!Psj9oK{7i7HJvJWSw zs8M)o%VF*3P2gC=R`JLO^3ptGvhA|Al1<X?1zr+B{Y*SMzcmjaTs1LouG@exaX<9I zHslA>wt>Eo?1loCGJ1v2p*0lja{mG4^=kk&;Z*eC0lG~Fvi>-GDKX-rV^=ipqi*|U z3oBMK=#}wd?<4oc6x!d^U;EU*{1bm52X)@S*q&{omcXm<y{(s}VdOzE$62Nu8~{|A zqHeBtC4ON#JKoyS1>CS+w-Ofs^CQ2hHMh8{VQE5f$F44=DKiTL4WRPxPQWecHSfR^ z9i-<pu&Aq?(WEfUs%H2yf_ebaIL!Wet!lj+hJ=BhAn=;^Xnc$qDB-1r_LFXbw2TZK z6AMezIw(k~JHNFNMQYRtO(I1CdzT05iFaaW`91?kV5g8;Lo;H?Tcw0OFzPe#`~>#N zRAjbh=+fCiBr^MBcq#3$!m1|Wn!E(TRCUgnYWmUp$|}xrW@3OBP99DLc-uwNsA@;p z5~GTz5JFAPE;MV+N)c6oXaeo!$pIgn5-Fx<Kz#|UUVr7}x$y9eo@Jorf|FtMVkf?C z>L3s?@6#^$%Y{eOhe^T++Kags>bUVgOUu6!1!f&+AimkIqM{5XsZobqiM6?2v}aH0 zk@1043XhNyO)a;LWenG&nRh+Zr499RQfh+fI^^0O1X_TEtxVT(82SRXPI`L5xT`-? zNR65ds~;pBy&UnddsqtNS*?R5VZ}4wJ=&Yjo#xY_uCaVMMl5Ny)oAJ~Jm21$dp>sT z7+filRbM^_ga%g^H7UKd2*h!8w66^ieWR*n0T{im?5K^wvqE(jzV6|kiukf0sR~3a ztqM=>Gr~Zbg2e01nhc8ZCg1FdYrm67jm<G6Z404|_%@S8pqB*L{@SKUg&d{|>_Rqo zfPh=L^?BV9;Y9L{;_Z+WiM1quE9Yt)&f*Fdx4F%bJ{Ku`DwHkdH`SpgfWBg~!i$b4 zoXiEI^agSUAC%M@!2!#}@E8e?-uY*+#B+r|OVKUBo*TU&(Gu4RGIRns$lUO4I^^&0 z`v(<!_yz5d_fQ>ePg}&-8gP9aL$-NWvsmHlovZ;R;%>;^#TrMVn5KrESl3t4@MvBb zVbNI<u1JWk5A>yCM_vLgDiRb1oIf$bxP=A2Q8h<_SGp_k;Dju|n=cqEmP;Hv>~OSA zVz;iKLRCf99*OW`S{P;H45Si<N-co8Gv=hFbXvm?oL8wIfT)scFZn?;gtOKc;f}7X zU_aUQ9Q^W{!`!nVx<Hr#bMfNr>4o%3P(lXL85V-toT7r>QN-MwH|$<MtMQT~WEstN z^5~|67x!9QxxKjK@2SyK(dQJ8Au)UK2t>5UyViMzW+!yM3i!{>te(cs>8VIsAbA1~ zt}sg1MFhg=D(Aclv7s4dw+J?2X#-34r^!5Ef1IVUcuu~QU4GvsEe-FkE_(Z39q{I% z%&aD^484d=($<FIp34*h>)MZ<&72u+txHgOl%uNRak+~%v2xD#rhP!y-V2IW%{tlZ z7auVk2)JyOp$x$!yJ-o+!taet5~#oNsaL|WWgia+qm1`{tqB5VA!y~BNp}5qlH@5% zNx0y}W;3Cw8m{1$eXOjyIgx@Az@nhpT}Mr>!wQMoJB36oY$5@g>1aRB)qo)AfElU_ z|Kx)}w8?2-?zwJ&$00ue3ji7N$!8aHBnm3LX}gfowij)+WFCf+TsVMbf-(hA)LI+H zMHD~el6GTF1xN;|OTtwpF98wok^#|?lN*#D*rrLQ>1oUY%5lwl?L9|DdN`LiPoPlr zx{!?@z!}VL6wkC3QV~2i9!r@HCe6&S>yRzXR)QfMjdiHN9rzYCyw$T3uf0TDu`fWU zNArc6Of&<i8Mbufc}bzY(vSaB-g|yEwYF`)Kp?cxTS9MwC?Z{obipWyG?7k#&@2du z6zMI16hl#Z$HqcLM5MRSL5d=%bPxeWn)H_Un&`UU`+4?1u=m)Gu|6yZ#5u1yGv{@l z=W!grt(V}Qa-M@C9e{h2Ou&uxaYU!J5?l<E*bK37*nJ#oVq;<w1scc-f(<*smcyk` z!G8oqw^b(x1UG%J2Q8T^c-)gK*#b*vXx&%b1Sut@v~cgBmz<57c69Rb)g`qA3DMqQ z_WNdEpfEvl_2+yru%_}0h3Yp~&2m)!JX?;Z{&|wOB&_Bxbz(n`kf7_P3I_tW-Y2Br zYCOu8s)R*V6Ey-TgkYlQidD7Gw9;2^zgiuAl?PBHb_lx_%W%{0>bu~PV*R*~<gcl6 zDf=p#)sD3(_|;~?8Qqt!saiCJX=v}G&A#4dprHxBxBkKOfsQV@n0QehhUZ5C@A(+? zJ9<t0JzZ80re<qK6G^;ww1MFg#vn|%`nR7iqPC1HT@$-g`(AQV^7q8K;EBnVTr`ch zOO;UE#t(+*H;2lX$22?gRtv^ge^lF@NYAg-?>N(sN@C&Mj$?2Xtr->aqNh2_=aM?| zDH1XAbLhSD@8Q+k9Ap~n8BP>jLv#vqPQJ);*Bfl5@Ts1s38UsCZ9sL%7aVrG#F3?T zS%qz^gW-^vR60%D+9Gf4fO~lr$Mx7CfJyZ!;?2rt+78}Ak|fbGtmEd+5gV`eEzUyo z-Iu*u-{gx#KFz7_^|sf%8on$m5#W2<?5dXdE#pb?oznvK<R9-KrbW>DSxdZ{k4@<g z&y(CqR~@5o@NBky@<_yeuShMbKrmmaC?2`L{FOXRbGvM+T0B_%<J~^q6K>XZl2WC- zlixdvdxnZc{3*GnKRjyL8y}ZiS|Kesd_`kuSU5MGuJyLBzJXXcvu+{h$G7~^YId@? zDsH^@A=l%_%}vT9F`MbJjncLv5~<!IlSc?jHJaRW9RFye&vG));wp2Nf<(u#Z?hWj zcq)SH3S49+beyi*I=)((P%sf8x~g+M!NDGkh{RQuUx$ZIx6)r|VN15dxLCfAkm^`W zZfb3Mznz;e2J#f3d?4p-p~~-l3QetLCE%^|)|hC=b!RH?Pn#8sr5p}(#)M#dp<J?v z%Q_i+k@{4SQUQX77;qdy;f1Z7g3!$B8VrtG@)mIkCnbYA{$QvhCEE_ti~=%AgP!vP zIjfcq0I6CjvJiS}05?HNfR+fQTC>XXceM7a(7&GlEDul7j?b@-Ll|nuAwnMzC0p=F zei1rze89dSY*>!ON#Ypq=**bxh%p#^V&h8*P;6GJ^kV08$H2yC6r>f1qVK0AknNFO zx^#*4Xl1eyRa{(*mhU)`6=OG<5sUyj3umhCkmz5b`sb#9VpJMn`4rj$qBah&C2stC z^8RHRF#iWL_jBCdR`#Qp&@o(#U;r@cru+HQ%(r$?=_!_$;`pNVfiq!=c1G0SLcToP z27t@c($eRHcK|(D41IB2(W|0Y<6p};u;qTUuDUvy9nAdB%0z%g%S6Ci@$^+4+?9uE z$Ytx$tl@3~<qJkf6QsMuj2FTlE9v84Uv>XM=yV%_h~R9G0|Aqan{R(3Q8(u8e%RUD z10<6(mP!ve@MgJTgjq`>YDb%2#b3(x152tdk|kUh>3YBNyg&fW>pCSN!hx|KsByrw z=R9TgJlY~A5ftP5CmuZ2k3;<9CMgB<4AoRdACb~~<i?p3t*wk{N4e8;ptO{OMX1`4 z>fnxE_5z+J2(<K^0ip7YLSVN%)0du1j8T?CahZ9NzMJ>}22)Rr-G827)uB{%NcD*Y z(MxNgCHXT<>hZ=#1h7-2Jnz31cf-ltA9#q@B_*@e$jx24g-E{Wzwf;~<|WuL{umHB zoP9~hZ;{kqcdJ^i5*~@)81pb!q?J)s^fTBk0?UpmXbGdYqt<~N10!~_vcN~Z*H7YB z7exR&4X)Ze=t=pn%h*InHigWaUI%`KrPC(Zo)jXEy<maCUJ$72$QT2QZp9Xz1Lk8a zcsF7UhJ^d#LDcxb^tGiQZAAblQg*8vWE)`c#*VF@bremY-wv2oP~w-<yVyKH#tjIO zl?`zqKu`;}tNjFZJfkSvz&819QNv*NBa_eG;dRfxj%NkQGm0`XASFk`g8Jzl-+#{t zg?})51>8huLYxsogsyC2J{{+`#iz|2D==W1IQ}BjB_8YYPpXqiplh=+wV7164Hy9l zXNm<^<}tqQwX1N!>T)7!5c|i~2@mT0OCGbBFCLfN0zQx_kZZEzY?a$U_p37)ijwUi zy%pf%Ja6!?^8a7aJ}GnAMu-VMH9>>k)4?vBJ4uJC$@}m<sI6BI1a6!Fx}sp5oUwpC z^|k0Xak$?Jx}IYSY2H>zEV&gVSz~dl8zV^@4?)Kq77lW2``)Su{k!z0e*zhROGgaj z5M{zY%C1>CGrGg<(`RTV0Z?Rq5DLv1gO(<COfl1&pARN-eoJ@`rb9kD0+VcVSw2=t zv+d0lvq@PyMQp2ap%Fq$%bJs|gY5|UzpL|~Q{V)2Em;>NGFq7-Hk9-OV}?&sOui79 zWtD=G)bxtxuTPYYKz4Bj)2blqr~u|DpW?$^J5E%uU82Q&2l2MTK+Upz0$W@4c+n*s z{#P{gKc+#Lgq=+Q1NapS#iwaiK3k*JT7GZ%DN5K>llnVU*g;XC5HY-2k=$b%C9#%B zKhdxQEg=jH$G6@vA1l>ULQ}8ur~YiXzn80F7@MeZjluINLKO;&EK!!A4(;cA{$@7m zafr#ep#62e`2<}!99`AoZB>3ZFC+YB$B7eQA5|pZ`Fp3w-BT2%wT9Kfm1QMXTeOaj zW(u4>9osz0wLcg5cX3vkGScr6k?h_eDk*l83<yjhLC7aCO0y!ozBm<=eM~@XW-v7x z4!y<HdP4s!;4K!(^}ko%soYpL+sm~x>I#M{2g6hL4LT{pzr1QaHg5xwU3Jzflw}67 zb>Wqe*s-d=63j<PIG~|WPM~znY*J{b*E#x1p44xxqH@id^H9!5<gL@&54h^q&JX-O zKu}#l1z|?=k<5}6jf&Z2P(6<%C2G7637wwz=_Gp_dr@F}e&_;}L<;bG`l0~1Epr1~ znoHqY5slW6SWGf(Kda9G?UUfnL7nyuFZ<Jw7lf%@kS!R6oz0#OBI1h#k>96Ky?IfE zh<fZrbcW(y(;9MPp89AXhgIm1s+JXj8W)NSZMXzei&sedQ<H<RgZEIv98KMkRMwZC z<Gm=OaZ4wDFsz!B2r1Lv#}JY9ckD4{!ywVM=OP>m-noHEr7#6~kY(#w;ghN~{IQ?K z$55y$U&^m1!eJ&C)j4G#;(^#EST~T1x?Kv=PZg;>1)W1j)No?8>1Dhts(&mu6(p~6 z07YbNzhf07Vu8d}ymFrX<%>Q10e{yHA5$e{iR6z5DW$k|*EmGAwVv5K_H~eVw{Z)L zo4o$o@hEu5a2nVK8NzMTLQk$4l2kv`F^}@tFp`0HF2}Ga^QRhl1BfkEkDa}N3<kRz z?PS03rL~n`xEbim6kvp{HrU<A9mj?qY#5P<M7rgK%Q{_nA~2U+)$5WT&+z9+ma<h& zwt9f5%0|n&N1@a3MP_^V&Y34ze0g-JhR3}V;Rrap*o)X(NJK#`w(8pno^|gO*6WCg zKJ{^aNB*<Ub~|b~+nS9I?Jq~UYm3_(KS%EP-M4Az&y|toeHew2bSbYLce9chdDze( zU|rBD7J=K^;Tuvc`D{L*dpa;&b23FxLG(h)YwgE9s?!*2^p)^u{(4(qK>+*Xh91d? zPp)=8m#P{*6sLTlxNq{i_EthP`xm8&k8_g#PYbG;PyJLq$8}a8d7(wBv5QndO55cp zQSsW&y7<n;hzMbqU#~s<1eYix!s!I0P&D1F@2!7~>QpQgPVuox&_|-pVz11xFM6~; z^a*yaIU6BQagjIoesa4%-GoiPg8@@uNXT^s2I_tWi@@p{!)bBiq2(RH`<JI?(7rV= z=g5Mh%Z4^Lm#Y<NsV(1xz0orqFEUG)H_K$=-hHtAdS`8WtBx^{mD^A0BlE+M>y)RS z$ffl?8)e(PP4nvF=hY7HeKYXq;M|s8+mDxYnek^oJv`G}2mC(3s}81GWOm4)z7pIG zJU;I!?rTfFKv)Z|^#rFykwq9iXC&uo>o}_76J>lcEl<>v@wg^dlk(^Jg);^D;wLG? z)h`Ri`ExaF94KDkA~-8Gtjx_V<NW!S{U_&lW%8M{nRE)7?$@i<fA>;iieVjCg|B*D ztWtCwsk`>&u?ojm9r{2a?yX-Dw0x)4JCvCZBoy204{ko2prgt^*sRp2zw*AxCuvic zN~6-&oKCng<fr5`CSFpZulanxBiq*<E}4e&ioJEG!+f~R(gk~KOctHaHO9IxKPogT zd;l6RH`w&XjL@y5QI8Csk;+<7R~nKzy4=X-kz$sgH_gA6dUwfNKTY<MtG3}iHpV~_ z2^e|5QgdCC9Y#+CcHJ(F(47%RC!*ND%sl-&JSN&4C)}Ddry_v<{Ep?j$|*18gJ9E1 zUOQZBdGCA#<HxZDIgheiPFKaoY*{MVsi|{fJZ^tB>!Z2n5sWr{cH;a5*<paHhGC0i z$lR|V#tFAq>>_liNMn37uUPLA)^nNs?K<LSD5mAQQvxi#O5VLnD=^Bb5~rJs>1la> z=VW8D(dwTo2FfrKh*iHWA8T>y1UA;BoCBxhD*2<B?5#Y7W2}0_0DG7@Ek{kXp@ys{ zz9~L}R;*k*vsGKNOZZHII;X3#DXn3W<h_G8s9!nkl&A$oMfQs5U3muHEFZ;G%9Xl~ z{f0@~L#<gq-nqF;5`nUuClb*Il}@LTR6`lrr3tJ**G5a|PrPe++|DR#qBK0~zLGv? z5URQpbc=IxH{8!cZR~ViX2`+pfU1j_5?v-2=kQP<VNF3i#RS=BqhC6He~`)liEWD8 zwq-(gSoPTl<$Q}A7B{%Jb1l33kYC|vPRAP97Juw)syd-eSstX(^X!8KcTFkn{0+M6 z8ACOSyUe^^3aVF{vu`FuN$K+Eo!je9Ds8MOO8gZsK(M>&`npi7#r>iCyGtj}3#iWc zo*FOlT<VW(Fzgvj{(95)je`=LXEWioVyu+%_MV7fh3&m1YIUtn_k4Y!y2(bId#up< z1v48)xM0w;Pgs+*L&S+kj3x5Eu1O<4g**01`N==_EZ2U`OzqbxRZH&?Wq%vG)E5!T zY?U_PH}ifcUg`4cR*>*{6*v3gRphI^btRQ2>_@O_n&;<joj=#!+0QvDf=~UTwL5qr z`CH>N`lO|}S$zMsI`*qLiKm4#G+JdpCRd18!SfP)HM1vmlMTV+az5KyURtNe^(NzJ zUGyUE`h9_a)cB1VZ!nHiL^7gn9-J&{kxZMplHXh&%WjR;z}lD(Fi7G!N|9mt!a`h6 znS@sqt-0r!*yWixqbL6%-0h>C_v_owx$B#=0+ct|taWvH@%D<nufFOwi#3w4e!x9C zYj9VGtH;oAfztM69^Ul2_=xX0$2zKfoinc#$OcV87~b;cNhcAu`LAA+UYDcN$84(h z+rR2h)8Pb=?4K)z<w|^0@Uj<pd;`d?KQi~VJyTVD+1BiY05Wuf@+ro+g6-fQ`*lI3 zRvE>oRaI=owZWFJbE0s+2et=NrndH`bsDEeuBtSK-b{+|a^=E}(sr3^g{c_Qsa%RR zLznNdv8%b(dw={?c@K3jBvUJFi~e`0tZj&TecO{a8OS5Wmk;Xnb<JIBC932Ew<@IC zaxHEh;R-vBRJ?y>x+*^;2FAVlQ1M&w_J|g@ctDn+*IRT@z=&0GjR@5ct$q%!4S{uH z`^^WgQlKASfISm}qcJ%Ol{(j^F|c`fTH8l2ssC5Xsi(%0OxJ~NEPMm(C;QPa7V3*1 zRD~{%JaC>}^&R@&clYkZ?Go3^8ZWBGE}2Wn1|MJ10{?$aA|!l{{BU=7q0fzL3}n+3 z!9?{1A<H8f-}ZxxiWO&HbC&BzMzZAxnX3th1CNHi%EMOC(8S}><;6-(9o^?1+5RBs zv)wKX!XNWWmAQhkW0P#O!mSL^a>o6QY>=29=p&)Ati!}CwA8ReqZ7xY0@$$Ew$vK6 zPI*(%9XLT`Sodw|Z(cq4TYAbT<^-JUxW6FG-D4;6roTI2I)4eilp-{R9BL|CO?~ty z=Ng&uFqPM-YE)}D(Ir-hp$akf2XS?~pe=mJ@?qB%0%p60rQ^0<M(Sm&1~)a~Z_uGm zXsi7M%DEGZK>K)ttPbpCk3$!szNHR50`b~W@0ipCNxypCb~?b}z_b$k)o>>`7=<>z zEkOC^X2X=Oy-?|g1<mC&1rU+#OI|HvKWWh^uH*b2u$kHzRkFqq2vzb@%bo3q0A6U+ zx#cMb%OGdc__ON(iw>6`+MA}s=AU`ZHVk|z!vaFzyp26Wp-O7b0gM?+95Aa%dmU5U zG%<QCqMfCuHuiNfS_6$i>bQhKFtWxw)CC`gY<%}RBb9<jxXZDpR0wP&D>M4k1p=<* zs59ta=)e~QOw!b~8Kf;Xw;8Zl?da$iXK&s8(%Tz{XkkVm`j>^g@zXGdQXvp0S@NbC zp^TpWp#}!0X`TQMAUi1%Kj!Y(@_J%tWs>Ml^qe(^$<e^+|F~FUzkJP-v?B{|P(AYd z^@0uG9#<g^Bh37+diPzKLPi=0!=x_!Bs%QuW{27Z{R{?R_UAV)f{KWq`~nhmHsN2{ z!ePB7k+(dh${Yb(mSa%k8mM5)+`*3S<3Wcz@zfv2`9U(OYnaeP;yM6Ec#;v{C8Z<g zHE7fvdEmz*Nz@|{&-)XkvH~PrzI}TzT;C01d4W;4-%igg6qE@uE2B?>{b3v`EjjMb z=J<H^?``}9BZi;O2!*Tu7bvf;Xt+qBdJ9W0kv6C60X)E=14MG3Cfw{Sn7#+7dy-Nz zk_%>%lH|^sl}muWrz6`C5VDYIc92VI`6Ld3=V(ZxO-u7Q_xal=0lV!jiU<(;9>ESY zw|>7*DN|w_j=ls!lDQ)p#=9R*lrC}@(RT&>Uvti3I|kXr?zZ7_o+?J@v#qLq?$f=4 z98%t2g%m4O<Q)k-4rXN-QrOwE1(~*HW&i<Cpsd@|UkbB&+XA-s_>Y%%vIMlR=->u! z=>Ts5KV{g{A)+(h6v)hD=z$<wljMc6#KYU+;}h|UU;9AZ8e>Xxr)1%t8px|5q7IU~ zMt)C&iNm{rbmn(xJs-ag8R_2ADDf5F-LzGg^Dr0|*0J#ebZ<oPiJPH+JFovv{UV0m z9`0|S)w*(p&PGN06xCLn5D`>pF~1KWD~|Dy;CS`|zieiVfFw`(-MOJ<;3(Mw$%Nh+ zq0=8g+P5x91U+B9|4`sbLQE*iwd)d?1V#qXWTe!_Kcf5aycv#RQ@a%^g8+1|(K=9W z$$;;gUF>Bhj^Qeu(`eGNGUHECC6UdP@Ef`XcqFVSaf`2f>N;~zM(NcR{7|ez_rtJe zQoSozP~;R$v^hJw)V6H(6g7^v=BcC&P6>?Y=V7ugM@OMc_+(Qov|Qw1xdchXlqJ-F zu^ZIX5p<)`A@tw!!bzPO)Hz!~AS1pcDu!CRzM~ZoVpq;q5O8pea!ec6a3ptztT9M) zc=cevr^%p^<Zd<jUr6hJ4doI`u397}Y7inqfpMra%rsT9<)i*Q187Ly<84V0&+9W_ zhv0xQLNM@O>oUWgBN;D803E3X-^&j<M8qXI&>xEgLfr`dM;Uo1VOki@Ur~cWK~Zr! zUB#Ggm0+q%F8D;w&MY<H7$<=KP0v`_%e886&LnrJSzq+XWd>WKu1}}g_}3IPv=wk4 z#%`(uHwRd=j(12f+285Ub4XZh|K}Ma-QwUIejJBy02lMS;=R_6fAUTW9Sl2se!jMl z&;x|0DP&GX89Sd?;0yJJ&!>7WqVFH>(iw@qE=w%Es7@}OvBKQmS$1<b7*`51X6Izm zkQ*-rdPMbCB8xz001o#Lo;gr_36wSUrxA!yR2<^+SD2*^bbo;sFg~Vq$vgV3kAxIJ z{Y5vv-Tz~jK?{C*YmX`0;8$zPQ9I~|Y%$HY(`N~}YR|W5q9vtM^qjyX7>n82LJfLG zz72Tj*0$US5#AJNj~rK%i9LW^e@{QT-jl3WQTcHbrz~SbnSv0E&&wvL|J2fb3BIUk zT`^7l%pwkh5239eJI+OGCobeE&G3aMH`#*k*4ouegUnSIHO8s~*C4^E6v2I7dO=aH zp)fvu8jhi3HuB+VR$?wYL!2qchjIHkKY_HhbxJIz9-oKU_Y!oWwWgQQfp_qO=7&{u z1|gHll{v8ENsJKo>&0<=Vt!d}jDT!v;`GWLIPO|9|L&#Bp-c_S38AFY_wtI~qc@!5 zh(!Kc#mvX*PaSt61>AmGb%6GF2g#%dHEcmyf=!mcP}j3K4)Ns|<Mtr{+z%w`2Ly4X zI$+Gafp)1q3Rqk+5}OAe16zbt(NV~+D&cR}H+WKCZ0a4;+FND-dh;j_Aww@M1>SK@ zK2`<cqCWh(Oinyb_UKYa&<z!lIJhq_B_-b2-HIPZo2fAH3DpItRxtUS2k|VHRx{k` z{0M_Ne&o;8Tebyn?XvxjsWY1on=gLngEX?oci9pQg_O3SuHA<+%6mi)oTtG19esy$ zN1FNXKJ&FMnIT}kJ0DSMOtDsc`XG2lkyV&n|F%Z>1zDYMMvS*5Lc<y5wL^`~>FDVq zDdegbG6s{hi!Rt>E}Yor3>wQ$6>;X2-^dOctDQYe@b{_P_HXPztdY(~r4Jz2VtK5S zB&UAr9>S{YO?&sfO3RHLy`(<m)aC>Uq|x|Qp@-j1T9MJ*S269{t(IGq@t3gcu(+1P zmPnC(8Kna=J#*^%!>L@7hubgrQFLMte6|{xxs<BozP%eVwWKSJu4gfIBJUW`vhiS) z*)j_jy}S;*KOJ(oK>L-BAELC*Q4fZ4z8S?|x!3n<r$%44DEYF&zKedJi;G03Bj((V z?X{Do$*PY(8S{TWOx?82{<xnh&2c91%n?gFzr<+%nPz<}Q?(_BJKoo3E0*m2-iRcA zB=w+9YjqSIimM_wALR1Xv?3GnSiJB)T6c=Jc+5;cM%Tq^rif?86NA26_h}{f@oyvQ zHsitNi+dLm$I27LHh<q#FV1DS|FYBI1=W+VPs`pnO?cu~ewEQ*Hj+NlB;P+q&@N^7 z>$0i?^ZlJf>Dm&!ecp!_nwP@JnSQM(GifDXt49M`rKuMd@sxHNYy3w|`hE+TAq@ok zh0EXqJ?dmG(9>d!S2`KWdjK2r<IO22PjWd;vxkw8`Tf1aE~xI@%6_)-{_R@lR;?9> z@Pv9ElXe@iFF`^Bu`5jv{XTy!tN9YNz_lsdmd)nIv6uM>9bb4#ocw_}eD0@sz~?u( zmR~VJm%}vYwCp_5t|xuYKW7QpWfy0QJrx`@x|31Eq9i7!si7E<8Hs)=)Y!UXl0ddt zde$>#f+c{omLfQ->|mI5H+Dp1NW9Mf#eoIx;*$i-Tld+g=2vA3yT8}?RqFpxKN_*h zRo!MRb=RX8`+4*7m%!=nYri?c=;J8aS<}>Qy<PsuVte9cBxYfCPcbO}SLDDa7jj$U zJ2R}4Y^Llf{l+1h)|peZSx5Hu_-|cLdcw}ZD$kwa(cYTXI!e9zoy^0}mpD)1K|SzU zptYd8{p$1jxs(5}mRd)BTB+oiWBc0H+r~l?IlG|n?81!{Gm}gG74mMAQUtffWa-bY zjy<+1)7lI#Tq*kl9W~PZ872_V-4wa@XQ7lz@I(c!LeT%$A_(fhWk!M#$pAf2=il4} zVx!3kKoN!QE4LSMjVBG@7miJwp0$J@C!-Aa@AQ}Pez^j`2#VIvV~4>@1j)$`RR19H zy!ZJb!%C#2q&m&RKf|<MYglu791zDrd=AQ_#k;jgLwZ*N1u`8-Qu#3UCmF(I$?@Zl zjru#M*h7EF|ChDlpY7{cG~eSjz^`kwAYE$=Xj5%JZJ<!>xeoTvV~;w3SM-NTMlmV& zM`DuLg&U+qRuLTEB(R-52ez|W1dI?b!{}3fS6Z?a3^SfzY@UJxuhg^WhewB*`NhRF zuXxR`p&h<=S<n0erpFI4b{O^XDRp{CNnbO|jB;O-lm;5hR)7O|INhWKPg$RA35V2C zo>ixWSOl#)2Z8>vNT#o)y-CvV97}jHub?EG917Jtek235LJq#(4CTVY`ON;9v$)c? zYY!Y+QS%%Bj?BQiBYfMWrF`2oEp{L@)>tiQp983m1|cm`!!&Yr?NjX}W|BEVHw&7< zzXh~;Njm$<kN$vzf&w&<M*@X%WiLd$RDkjk5ejf#Zdt%5zD)<}iLYU**;?vDwk zA#Vj7$(#p8PLoiGC67EL-!I#P%K(!j<nuTN1p!S?cgXL~du}#5xbI-ost8)>Znh!Z zl||2i*1xzT<las25M<Hvl6tC0sXD86$@kEDX?^G5)T_QuNg^u?fshFyYyoctNXIn( z4B!06_MS;f?L3>h2e&C(=k)7%7Bw#=MeYo?czy|Blk<g$2(ynv;JgcIL!-!ix0X=m zd)RCILc*yJ4@LL%N`x%=h4`VkfCm;S&*H(JVy7AX#Utic@Vtc+?%@hQ?d{-0EM`Cw zmvXp2tm!kisIK#(^V3~>$_u@nImhBqh&c^0Sh<{u9o0F%7wd_u_cDXJ!k@)Kx<PQ? zuY&cb(pASXof%tXQ2@a>1BI_+-aWh?lGr>HL)vgAiE(NsbP2)Fffkdr=QfXL0EyU| z*K0ni0Wsof78dM}TV+>A%gTVID--xnGU?oW63Bj#%p2(7fW_GP$&zhHNO>j|hZ(hX zQ|awK^$mR<O{liK-E8pLqpOLe`d|wLn!_b{(GINx^w)TYt0eC_7NHrI>UaaLuQze_ zg7@P<bGst`?hP+-%Inqie~y|*myZI<?LlK^37vV)bawp!A-lRoapaoy{x=ac^(pP1 zoijG|N?5Kcdhk1%Ov|yuF>Fx{?tB!C*dMX$4%{a*zu66L2h4m2I+0g<Vei>bX91z) z&m_0%AD2sPwRd+}GX|Df7li-sftq;dG6tv}Bg6~hr9dgRMdCzC+#dl!N!diCMH0Vf zLNj6&Hr`1AxwF9T07kd4D{skhpye?Os#0TLwMM|XE_1+0RycsOyd}JP1a_8f<7tbB z3-YaA%$2J<JIiW>D+|@`Py53E(E$BJ=pxDfXV`WJgCTTEdQh@xIgF{{e9j_~<=jMo z_t5mN1Q$qptdZXQCgo^LhCy2=enKx>GXSjhy=H?+k96SccE=nB;|eVWC~1_UG<6ms zP_FxZ25g}HBCE)QP2^WVGXMz`;)_T9l5Y>xfWj;oD2|aRC<0!gjQ90|3O}9a5u=jA z8wO7urd&pk5y1iQ<~u$@z<^-p2bl%#>uP?q7RNAzZ!p?(I-oO<j{Ir_*jbaL=`+>t zRGzJ>P+k)Z?BPo|VOmbKEJZDO%-~UTDNr)S$Ey1U7;?Bd*}Ghg(z~7WCCa_9fE}jw z{=5jBtwN07a|0@Lv2SIhqr224%p=dJN0EB#ce-{PYJVooZtzB1+`ikA>AmoGz`6uX zBVp={INSVXo-heRj+lg9${H`Lg`roB8$RqvFR4QQ{ICZF3^iD%k9KHgqsOWxTK$7< z);i6O9yzEsNrcfgwx_O7D;K=A?H=`A#FhtqK;OvQqUk|3FO$Sl=MO%R_tJ%R2$GYI zjK$nNXpC`S+Tv=puq}_<Cm%_$@t?=7&iB`@T_qnO)lpe~Wc)(xxl8UoJ89E>i91#k z3QOPObwhrOxv|^lr*ZdqUUqqGwt1T}pfgEMf}rT+**+(Vez55&;5xf*>3cEEfiziQ zdg<=WThog(cWRuMNk5<G@~V!0xk5U3s_`GIBcGfO6-}yz8hU|N!rJLSR|VL{v@(xm zDxNT!RkTx8iyMIHo4~867=W`<A`P$y5~K(C;MGr~-AWPf)Qz~XN}5Zy0XZ>XNY~)a z0uy<3<e=aa5^6W2F9Kxp>+iqRf}%JJKIF^G6Uj*tj)E8iKpcXxszK`l?^IF^<~h*x z&10~VWdZ^DC!X8~IV6;D&VrY(QQd#<lL0YN5vR@|KQEB${Ou?Xn9p}w5`z)-nP~>4 zv7#I$VEm^CnQDF8rHul<&Y$E*EFHM|b9^9V0wkt6^7-(>F=+xyq}%xSBjI!aO+h$F z{_MX*Bx=#8omz_$AO3mvphI$ne6HUAb7lPxMLmRR4$PRePr0iV2<PTR<LTKz@IvQQ zuAZ;fI5ff>eh=okQ*i88Lv$99QG!GkG4TGep!TtP`}DwpkrDXIEv_mAp06k70>ro) zPOXv2UYjKyiM{5M$qvS_4gk_1W$|eAeQVx@$nY=!MwhAoJ;;jKFhD+!%9`^6%D6VI z@4F4bhga9KIm>F*b|PO)p{1K$v~kpKImCYa{Lw>=Nw}vI8SUwfmWou+iQ+X_;g^td zg`gB7J8fYs500b)cF{a<)<~n&b>M6ZFS5XPMJnL_MStbvZ(bor80zIfPmT&YPGrc^ z8-PXv>)pU87ihBkY+K;;k5{>XL%v1_3om8E{*(TM@`vWD`kO$R*9cf+^XI67d%}na zQST$?)o42`-c-0TbZrC79J@WY(K-d}yAn$~9iUW%3T&b9GV%+D6~)2F5p~$NQqloI z{Y_<lM?jV!3W6){gB&_nU@YZsiN4$Y3o=fg76H1<Ah_p`7ggfNNJgy-q(O~569)jP zHVvX>UL80a3_4;Zy|GwH(K098=T#9ly_0(#jMlxKjMw$|2GK9*^bjRWtuGuM9WGR# zzvBiJA1cGJ?tf%j7z8YbH29!Z;HNxxpK1ZBGqez(%kc5Thn6y*6&u7_YwHDERh7a6 z?nuOh#;d6LDJP7<2f&*Ex3|{KZnYHJHi%POR`pvgTvtIzYn-gpUJO*^kkdzM$uivF zotsh-QvpcV<9~^6*e}i15qGcLz<|7d!4hYvod;3?g_v5H8DC#Z7O>wUjXTCL*{Eo& zf6ON$ZazD72D8`*kGzpj#za&xf!KV9#K{h9TD*bK;y|NQEOEC!%~A~_#Sc8%%(Wwk zx3YFZ3{7^QLudC``wQs_8t|fsb1$YK7kcHjZ;L#)qLkyq@?mb)AxqxP6d+_sbo9fI zs)Numk6kDdV4eYm+#!EGc|&CYbcQ?2VK$`QuY^!t$`X9zVM_&C@U2k%U4PtPWyH5^ zjgthZx+FH9`N*AJ<sumQILqvd_R~jWRrpvQ?zD35tnYcOqoLngr)`sBv7L5vf?e?y zv7hMC5$Ru=hlq;jD<AXRdK$B`SnuQ4I5Ay6xw5}^)Ziy7n{Pk`QlQ7(uD*25&=F=9 zLu2?pn<ZJZzm%8W<KU*GNUm2p0e_M1Lw_=@*WH^u=$*d1^{TI^8KV2LL+`7Z^%ndU zQKs<fGmlR7INyD1?@(d<tbjRy^ihq|;*%M!K}EID7aG~wr{&rr&TCUFOJw`9D($ga z*>sUvMF^A$4me?FjBc`_8f0i$q|>Dyx2#rZW*Se+QP*Z*-sf5eKK|(!Oc7Hxb!3rX zo9ymSz2<VC$Sh=H>g*hp;}8~=xiN<Adru;3D{T91+j+<2{_`POv7vV%FP2uU>4~JX z<LPZ$@@c&oS3Coz@tOPkPq8nn#w^)-{mFl+NY?J|Bhy#Ks(6&*UzP>z)bAX<nOVnJ z)+tv!d(C%UDuqKVkFOQF0FW=P`_f-uT%Vfz6ba##ZDaH>asC|k6ctavA$fJ+)>2UG zVyfduMv5+ANk)mVYH%u11jZrks;LzH!EQ<pCW1p}2ZLTB*iP2~M&=d1!QXbcJu}ls zp&A<D>z6x0_J!T<wP;1n8CI?ieu<8zvK?-gfS33*S(p~VUIgb-AAF2~IA0f|knN$t z_08obi!&Ve-7$K$b<PBZEFXpRP=_65_W|5KVIvr!dsb6=rS>{;y3iOHyufyw(JpTo z1le=}E~|}<tbQJ=;`9}S*;u54{r<cU&{M1ipR7G^4xAugO{Jwyx;p&GzDCTQ{_OpH z;tpP`NaR=1ZPI&Ccu(a}FyPA$yfDy#<E(oG*z7m0M0OHqfL@vuSjBc+#H4pNz*f4; z8jiaO!az#1fpC7iTMY;{h7`Ho!0zX;89nCV3gSQv<S1K~`*2z3WUT&lx;Y2rWYrp_ zBuye`8t20z>7+Blveflg95Ge?s1G4jUF~`bf80@k<|r>CdCOKWfI^pkY8sF^1_etJ z%ouH(qhGI@8`65-pY2~kAXaPzIAzO{HHB!?%jjeL+ksaw2RzjJPN21P&<Ic2-ToE4 zF>fN5j3o3ZJC<KQd_^T?5$U5N!=j}l6Y;B+m<pK^OWtkR!?an_kPk%E$KL^!=8VKw zn^Qi^{MZ|>Tv06TU-;%34xORkn}M?EnC4!`RaR_ah%cjgXD6e1NZ`iYXetr$@f4uZ z0-CMeXbTbH#)Ox1NC^v_@L1&O@5D^^bvCu>`uszQh->9Z?N$Q1!vR{QecB`XpKxgJ z1YR5ia5|aOu<+~RPTvBFH0j&^zA&R0XJxIv{6X2!=Yj4#Mv1ZDJ)QOSeG>`aWpy%5 zdwg4~&spR7Ve|W>$72-yTX|@P;#&V-BbOBI(oSgPB6vJ<xrmMno#yr8{nEtl|8#oV z8H>MWr=EV7rw`mJJ4c%UlY5|s>$|6ixNn*^?c~zYIZzuDlP|x=M@XUtzUr$4g!`Jh zTcc{t=2^m<eLP%TE}@HWfhUzrFb+W`2y@uRzzKmMDD2-_6Pyzzcxk=28hbehG2?&> z^Qnc?xg&>#QH1NJY8`cA<Gq|vfk{|!Ker$0PXm$wO$FhB?tb8*s>nO}jh^jRNH$Db zl(?h{11=N@#EAq!qmi--!r$C$K{n1?4Vf$eFmj(0#@d~%Y)2qmGSoT4uIo#J<ev|N z9)%$S!om^Lzee97XIMn^Faska9R=a%^W4b0bj#qXO2`|^5`Z7p@9qge#(wwU@DcY5 zih3(Nso*c270Qm(2#;9sJ&ISjQOJ@y@E`?kX2TGuAcC&f&}b!8b6d3td=%+CJ(Qkb z=vTalKs1~07>DF73|tn_6aJpx80^s#NZiYvZWE%iG<m?(77(DU+z_NQ$1o2PTF0tE za9W=u9Or)KeCT_S8#_%0BOKl&UL5%_fZ|s6j<ahHqd?TvMOP=cv}ocO_*4x(<!le| zq-H!#TT^EBv9bZEZ#!=ltYO(r1<kA+WeI4PVesvc!7-FLaSeeOJ0PNFx;^F#k7F7B zzHa^<m9$3Gnf;lRv?XZ5iwEe3pKVh~DauhD{t$zO2h#|>uQZ`|;{S&xU#&i}cg?}l z-}9F&jG*SigWwW*bj=Y9C9V);&SwtVsA|qV+*oA??g7aPM@;7}p|P*rJS}`k%#9n} z{3lOR&Hw)W+xXMLPiK&tqC#O;c+LzOzP+1We}A`=>R|gU0s&cb#X!&36C@qHlTg>W z^z?fCa#brOn19&+9r66v+`{nV88gyvk1abjO_8869vv6}GdFv7Gv>uB&>APK@eolT zI8i9U^%w6xd6tpbdFa4Z?a<*)PzqSkrL>rxbq_Qy#R#O?Ji<jcOWYo9TvpQ>j36Rw z<s@=<7*_0>o6rn*t~lu6V%qTeyNSbTTw>tezoaa&Vtv@}zT6ay>*+uN2xNpwUgyU% zpz;*B(e=fnx`IQRxyYfbN%A%yOPzQU-T^c4&dHw22vo{*Fj#j|J-7^vVBgNH{O>(v ztdBt8_jACuJ+ccRrcnx2AR&Sq_)c#lkrKQhqC;g<E&MSGJ1ve_`Wq;vc$z-6ReK3? z_|e~v5bh3BojLst8Y$eeBp*x#y{sm})y4=`TQE|q2G{4{F%j{!kBAbUWAau5B5J$$ zCegLb#f%hj!KZ`>1${)sij5@HJL|`P3?2AA_c0ipblOd<3)6%abtfnep(?ev7;KXV z<3@vlh|hUv-^Z8NOm3`sn1YC^lxS+q8yCWXMiKAZTcE0>W)i*EaUz#d^Xg?D7M+d< zfZr=18<l7mM0+C(+8~0V7Q^4O-=O2PX+0@TsQ(9nuz1So-36Lx5K>M#73h`kZ>xm^ z=P@u}U`=NJ6Bwm9Be)4QaeDUc=s0J_w-?woZB3+vU<~&z)~tn<S#`=UQI4RHNxeh> zuLN^n7fH#nM&N+@6O@8NdcEWym9Yzn0=)5ev5EPLOwyA9zlLn#LX@4&_kj!5d1nUz z?RyZO%W&yDZ(jyE1J&$Afx#s{Lhd9HnREkbNK*?;g)$I^)6ND!$?@VkxV*S&6r6x^ zNtbGRSJ~3k7>q!?%GIn~Zn)puROSFwpYjR8h)-{r;xne}VED(%653CYQ<OA6MlmCW zb_nWoSV`z12Hh8G|953B`H|PYn&Km572@;H%Ypd8w)r&Vj{+hPl|zz3a>2D?PEeV@ zlQDF>IfsGYT8cyb)|Zy@!m69@zsiWn2o0A;p&p1}c*(y1PeTG8hCqSatu+p&hv?Zm z0vyjxKF7{S?9)7V)>Eg4DX8`*ZQ*cd(xIIAI2st?2UnWbyO%GB$jaV}pFv_Gxn(&& z`!7!*HxO6tk0^gLGXdysm)MC0PtOto`3fzo_4eHPhfEGB30LtTr^-(RCpHI$x@-V{ z3zAu)FUv@uuLb*#!84t1300mt@P`Z2a^vzwA(q0+cY)*>iM$WmNhKM8`~5MCh|oY0 zQL^y@i#HTjNQ&kXdU7XG)812@)J&<(tX$Ar3*2!re1BIB5VeA(S;B**J#J_Vd)TIk z{Le<A#xge16gU9NJL+%W0m)BJ+H61-z{WH$f}LV+Z=GV+$;g4_N{xqHL7+++W36*C zQxo(3#Dui;LD@da0lY;jAUyDIZ_;P42M|=7$KqqAe~7_x91KJmD3%I1I)|f&`W&#& zv!h-_Wv#YTvgZig$*I0C&!V+?>%*p)s|+*3IUodz0lRfdxMam9G$J#Oh9$gUxYH*3 z95SS+NSKDWy)uaapdb?&wd%)-cAtP7A3+qLb1(~c`m+qWpY1%0mMXCr<i!74f(;?r z2oe?+q3{9`Z0t4~J|i7Bz)QC_-PA_t#QeCBku$i8i^wdcfOQ|56=J5E-Z=NWxJ5y! zS!uGjwrMp3idIN~M-YU4sx3@)KYRu4v4|aCcYJrL?smHrMQtx6=pOuCZXP~93Ry~G z)TD`gR~{g;hr?EE;gl1Nh|~nSikmv5iXoW{nhwiV*pL;HR(P?{k(2`UfuosJVr8s0 zB~6pJ709t^@}bFxfpOnVIe1wOY=WFl`;j+y6`$_>ef~n`Mj&Cxz8v7IkYK>{_f2pd z{FD*?Ws`{NMG>XbWM=q8c>3~g$O{qrM)VNMwlY%OJ1r6Se(s+{j*(Q(GW$iqD`EIh z(sJ19itW&4WF>5MgyDm?mHx>+%E=r(@v3{I`71pa_qGIQPV)z4PJ&FKT`iN^*T1T; z_Vy7!&4+-7W$?C%${!ON%ST>|h;0Kh;KE!B1y4kogI$^R`$>P7WgTiAu9Be~;qbfL z0Nyo40>J~8xQ|m)slkA=&Y$9K0n~q+Na%sWFkaFM_-s8fJ9Kad{uI2i14z>ZgwpK? zM1-jg0?|=v_f-x!&%wqT8k|5o4=DC316ce-;QeXf9{{4_AyOk6{I8~tO0Yj1JLC)6 zAcE_(4k_J%tzU(n`ke!ax|8qKT%dmMh>bpFkEJp>h<e?62Sj#(AGG@Ox&K3;|8HDV zm;mk3;r`XPJRw@Bx&Y0ukcb|RyZ8=@KU>QM#KiKc9NRSav_$5KH(VfD!gZ$~Kit}h zw^9x`wRguB?_(v+Jm#_3w4XW+LH-VNW7HJfB}wo6Cvxdd$@<^Z`b!UuBRdr`$P>b- z-j|@Ocufbcc<n>WZP~ix-tOO@RK4=)kB<YA$uoeZRIK}3VEk)g0H6gXjPP=m)$lgM zvh(MAEQG&piDMGW-vIiOX7q%Im;l(GFDEF;wp|$QX`=iu`r99d!%5^Y1{i0(Xq>R_ zG`vsGAZ7m^#Q#T8576E7@0n5jzmY}p|BnN--vbYM^;$a!FLDe82DfsE;GbJ-sqZy4 zi8_MNv^sT2DIb>0e~;7pADvgfNJjXQgfE@OB$XT<%be|vjEx<94|b$@vi}7|K%i1X zbx!Cn!&6dN_5J>QqJ2_I3fA}NK=J?ilVAik@wWuEH@bcu#3(K@|L>nV4}Bi&^y$;# zd3pT$a(_QlT3+61XJ<`_5YKgPVWHwbrvZ+EY^Etg?k4i!@DQ3AdKCZpc7pSwBavim zQBT>l5syVma@83<S^p#vAly}%6u<>e$@i0~%o}+?*a6C3Xbm)|E)1HNk#Lm@b5$^C zl%;*4dE6tB!9kqjOUgoBAou22KI+eoj*jk(D%Nx=sI_zIUj}ao@XNzeY$TG12m_l> zt@^#KEnWINUQ4aln>tCKpQ_0eo+LYQDapn=HC>?Vt`o_harDyHeDEt&utBer2!a$d zOP*QWgC7kw#rrH-ah)0IiG9=Uy(#IQ+h_B^*`H&|UpBp_LirxlxySz+6F5}z=Cu%- z1Adq?6`4wO)l$Jfdkb%V`G(PL^Kyoy3kWW_jU8_13xYpquW37#*QR}O4hA1ZBx+Xo zboKQm*ljI+L0DK=ASmg%^B!^iZ7ct|J>0`CC5uS0a&XAh1s!HQ{{!GS{^g}{0n#QC zDvCi`jkBz6?q(MF2yR)kkn|TXhzE{UBUvBD(@}z9%Q~+_nV6V%3FC?BCTz8_>49$0 zo(UZKcs>*Ob*;gY7M={L&y3BIRKiQ)D`awP_xxZ1JgFn^Zu?yH5t6ZUdVY$Y3mp4i z+qi&WUh!w^Uc`lO#<SqMf)DvB1#mn_ifLM!&uBcMHA0XagJU9%o@O{jbyry~d-B-~ z&i}mZoq6td<dB6qAQ}nG>rsUwg(mzX6TsCA_@3pk5}$78v@wx>H_52r?biNu{qf<! aNN(^fbpFN&af1IPxumUsp;QwS_J08D3kO&L diff --git a/Theorie/Fichiers/fig/figures-10-003-c.png b/Theorie/Fichiers/fig/figures-10-003-c.png deleted file mode 100644 index 30ca2f50203600c3b68a0af8a37c8f6bc041b39a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59621 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 diff --git a/Theorie/Fichiers/fig/figures-10-004-c.png b/Theorie/Fichiers/fig/figures-10-004-c.png deleted file mode 100644 index 3a0c96f5da66cc39d56f99530d164391ac81ca34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66011 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 PyswP(P4wRB+K2rYYf^xz diff --git a/Theorie/Fichiers/fig/figures-10.001.png b/Theorie/Fichiers/fig/figures-10.001.png deleted file mode 100644 index c9e922bfbddb81f604ddb5b87fb91aa7087fb2b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 75704 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 W`&ZEi20$vxkD;!qPR*@HfBzq@G>e}A diff --git a/Theorie/Fichiers/fig/figures-10.002.png b/Theorie/Fichiers/fig/figures-10.002.png deleted file mode 100644 index 2a92c9bb3bbcfcdf6fb54c2f906d1ddf4f50afc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68490 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 IIrA6)1;*m``2YX_ diff --git a/Theorie/Fichiers/fig/figures-10.003.png b/Theorie/Fichiers/fig/figures-10.003.png deleted file mode 100644 index f516ac03cb5e5c7e29dec1b04124962eb17f1b57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68545 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 Is+N!b1CSlUWB>pF diff --git a/Theorie/Fichiers/fig/figures-10.004.png b/Theorie/Fichiers/fig/figures-10.004.png deleted file mode 100644 index adce61b49d0e919c7d038b3561b113b62a6147f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 76810 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 SD1#46qOPK&TzdcM%l`!v!}pf} diff --git a/Theorie/Fichiers/src/a.out b/Theorie/Fichiers/src/a.out deleted file mode 100755 index ea06754ee6b3584cb6be4787d742ac2308f089cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9064 zcmeHNU1(fI6h1eJHnwS!`UA0lZi>+$n${u`!D>=^_14xTwpD^sCY#Mocgy~HcQ+=5 zrGaS4vP2f21&fH5BKV*WRm8To*gpB&hajTGKW=P<AVor{S-&$olij^*^i3bU2WHOs zX3m^@=FHjU?wtMX+OJEih>Uuo$vPrhgGM(Jy~G@JJDP<i#6a)k=CkI$ejcqRqZ<At zVmqC9fDi}F!2{JQa(!#{7%2?j=ms>nBuR+0J)Two%xf>O7MsEN^U5j44P|u(la)}2 z)I@AJ5f!O)X88VEd#^N??A@alX{>EDDtl%BLaDS9i62r5UjIH+_BN||#+AfpP)YC) zj)|}xP1+77y!O6U_MTCT7*|ovelzhGBJmLsiH|0r=(V@4rL<ptM2xHAS7n^n+hH;4 z1Y>q-!fS6@*&A2u7$et~3Hdg(3?OixOylf?*wuTWw_*nQAdgh%iHCEZuwCt|5J@L- z2!4sNpp#nJUZ;Kp>~Ws0L_)-oBc)VHrkxu9I+cIgEyk5+$@#%PY7!zE{5yNy%3ilx zz_`*L+qy{`0~cZ>m=2Z)yzxsadjX}wxbhszD@#)ObH8_Y-yU<<Zk-S?P<0N#Okrh= z{gU%?lxPdl<TfQs79eV?z-_>s8wKzJIPa0?1MNh&fEQq37M#DA2GE%JQQR8Qc%1o4 zG=TNkY7OznB!Je0wl$M-wnihvTSq3MBfv}>(AbYnpW92{U7tAd?xnA;ZFnNNgLC8* z8t0k*PJsBIk^a8>CkJ?+-Dtcgj`5nhEPA87ckF-vL@I5^x^{LU4v}F@`{YN!kANQm zKLUOP{-+T*OjhnEYwE`ZE1zw&W-_h0Yf~Q^XTPtvjNh!>7grjrsk4pN)I*f{ohA2S z#3^^d-GO(Ys|C>0a`}9~%4HW$^NW#{Hy5m&xtPn&!{nmdfx&!s-dzLUatA5>o?P~l zb$VI_{epR&rM!6w3$0vc!To_P<xCgWTx)8PGELUZj(H5a`C_qXoo-X_!R`ko#mi8< zysUVR6^B`I#{3p$E{<NHE_jx`=<+*Qjp0{We>>~vv#xtoo5XX|cT2<X--a<J%Q(C3 z3|!%#Dpu}O_et=adH%{La%H<jvw3qCOS9~9A4c5SrD8E}Ubm*s_Z&P&#g5|$MX}>` z*}ozCH)Vf9_9tckHu_jF8cl@Yc_L}YM<Nb&q*hZXnn>9U_RehThf?qUV#lN4h44W< zYwl<4BHYi?H!StC^d(FDGB<aTB?vV45lj5yIQJe)8(BID36_Wf^8gxC0FB?NH1T^D zH$%O6vdr(RP3YU?N}{2)WbkiE5SyY~xdRzT_K`8(YP2@3YAj&pUX1bcPW^$0gYIJ` zrUqWt+<L68flaT~zdu=jFPhdjq;(9eppO~pfc||j4xf3+q~g<xvtA|LtbW&RRQxW* z8x>!|-q_An#eY$}(uObl5%446N5GGO9|1oCegymo_!00U;77oZfFA)r0{>0~*7b1F zt5jqjMqL<1=BJ#_0y*95dc^Ww3UCjwJswG;O6ORR)#VG&0Fb(YxpQ}4|1R^v2Uuwk z!>Cz135U@TBh<yyqm05pjvXAqJx#?Dx#K!PO{sLyNz-H0AgJA@J+WXUPT{`6Ugr?S zs4f<UBX%g0wow)jvd24Ru{X{|=obyXiK(aK>v1OocSRyDN=}60V-Y72r=#_Bc|9}= zDDl;WC^JS!>S-Z>kwxw%+tE$8>*%w!X56rxQ}-A6I{|IR<(jU$bDgl6i=OJ9WDCTW z)kOL}g|C$u>wA^$3hR57M}X^9g_7?}_NjS&|MDDTOyIsq-lrT^xS()SVO<9t12$;+ z)`uoN_?QR3?7^>j@LL}Ijt8HSSh@zORF7=}=Qtr`gzF%=yLI589&TK-T}dZE$gD`b zOCDx`|N9Uq{r4e7A}LGxLMB3pN_-5J@AByjQJWmXRtGQBx1101IaErua;BGZTxWMp SUh9n3xm=UQHJ>KzmFZ7lZXcom diff --git a/Theorie/Fichiers/src/alarm.c b/Theorie/Fichiers/src/alarm.c deleted file mode 100644 index 07abd5a..0000000 --- a/Theorie/Fichiers/src/alarm.c +++ /dev/null @@ -1,45 +0,0 @@ -/************************************** - * alarm.c - * - * Programme d'exemple d'utilisation des - * signaux SIGUSR - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <unistd.h> -#include <stdbool.h> - -static void sig_handler(int); - -int main (int argc, char *argv[]) { - char c; - printf("Tapez return en moins de 5 secondes !\n"); - fflush(stdout); - if(signal(SIGALRM,sig_handler)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - // sigalrm interrompt les appels système - if(siginterrupt(SIGALRM,true)<0) { - perror("siginterrupt"); - exit(EXIT_FAILURE); - } - alarm(5); - int r=read(STDIN_FILENO,&c,1); - if((r==1)&&(c=='\n')) { - alarm(0); // reset timer - printf("Gagné\n"); - exit(EXIT_SUCCESS); - } - printf("Perdu !\n"); - exit(EXIT_FAILURE); -} - -static void sig_handler(int signum) { - // rien à faire, read sera interrompu -} - -///BBB diff --git a/Theorie/Fichiers/src/alarm.out b/Theorie/Fichiers/src/alarm.out deleted file mode 100644 index 33c2eb4..0000000 --- a/Theorie/Fichiers/src/alarm.out +++ /dev/null @@ -1,2 +0,0 @@ -Tapez return en moins de 5 secondes ! -Perdu ! diff --git a/Theorie/Fichiers/src/alarm2.c b/Theorie/Fichiers/src/alarm2.c deleted file mode 100644 index 4007cc6..0000000 --- a/Theorie/Fichiers/src/alarm2.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************** - * alarm.c - * - * Programme d'exemple d'utilisation des - * signaux SIGUSR - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <unistd.h> -#include <stdbool.h> -#include <setjmp.h> - -sigjmp_buf env; - -static void sig_handler(int); - -int main (int argc, char *argv[]) { - char c; - printf("Tapez return en moins de 5 secondes !\n"); - fflush(stdout); - if(signal(SIGALRM,sig_handler)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - // sigalrm interrompt les appels système - if(siginterrupt(SIGALRM,true)<0) { - perror("siginterrupt"); - exit(EXIT_FAILURE); - } - int r=0; - if(sigsetjmp(env,1)==0) { - // sig_handler n'a pas encore été appelé - alarm(5); - r=read(STDIN_FILENO,&c,1); - } - else { - // sig_handler a déjà été exécuté - // le délai a déjà expiré, inutile de faire read - } - alarm(0); // arrêt du timer - if((r==1)&&(c=='\n')) { - printf("Gagné\n"); - exit(EXIT_SUCCESS); - } - else { - printf("Perdu !\n"); - exit(EXIT_FAILURE); - } -} - -static void sig_handler(int signum) { - siglongjmp(env,1); -} - -///BBB diff --git a/Theorie/Fichiers/src/fork-pipe.c b/Theorie/Fichiers/src/fork-pipe.c deleted file mode 100644 index 7048b62..0000000 --- a/Theorie/Fichiers/src/fork-pipe.c +++ /dev/null @@ -1,80 +0,0 @@ -/************************************** - * fork-pipe.c - * - * Programme d'exemple d'utilisation de - * pipe en combinaison avec fork - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> -#include <stdbool.h> - -void exit_on_error(char *s) { - perror(s); - exit(EXIT_FAILURE); -} - - -int main (int argc, char *argv[]) { - int status; - pid_t pid; - int fd[2]; - int err; - - if ( pipe(fd)==-1) - exit_on_error("pipe"); - - pid=fork(); - - if (pid==-1) { - // erreur à l'exécution de fork - exit_on_error("fork"); - } - // pas d'erreur - if (pid==0) { - int count=0; - int finished=false; - int n; - // processus fils, lecture du pipe - if(close(fd[1])==-1) - exit_on_error("close"); - while ( !finished) { - err=read(fd[0],(void *) &n,sizeof(int)); - if(err==sizeof(int)) - // entier reçu - count++; - else - if(err==0) - // fin de fichier - finished=true; - else - exit_on_error("read"); - } - if(close(fd[0])==-1) - exit_on_error("close"); - printf("Reçu : %d entiers\n",count); - return(EXIT_SUCCESS); - } - else { - // processus père - if(close(fd[0])==-1) - exit_on_error("close"); - for(int i=0;i<100000;i++) { - if(write(fd[1],(void *) &i,sizeof(int))==-1) - exit_on_error("write"); - } - if( close(fd[1])==-1) - exit_on_error("close(fd[1])"); - - int fils=waitpid(pid,&status,0); - if(fils==-1) { - exit_on_error("wait"); - } - // fils terminé correctement - } -} -///BBB diff --git a/Theorie/Fichiers/src/longjmp.c b/Theorie/Fichiers/src/longjmp.c deleted file mode 100644 index 87cc0b1..0000000 --- a/Theorie/Fichiers/src/longjmp.c +++ /dev/null @@ -1,36 +0,0 @@ -/************************************** - * longjmp.c - * - * Programme d'exemple de longjmp - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <setjmp.h> - -jmp_buf label; - -void f() { - - printf("Début fonction f\n"); - if(setjmp(label)==0) { - printf("Exécution normale\n"); - } - else { - printf("Exécution après longjmp\n"); - } -} - -void g() { - printf("Début fonction g\n"); - longjmp(label,1); - printf("Ne sera jamais affiché\n"); -} - -int main (int argc, char *argv[]) { - f(); - g(); - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Fichiers/src/longjmp.out b/Theorie/Fichiers/src/longjmp.out deleted file mode 100644 index f551980..0000000 --- a/Theorie/Fichiers/src/longjmp.out +++ /dev/null @@ -1,4 +0,0 @@ -Début fonction f -Exécution normale -Début fonction g -Exécution après longjmp diff --git a/Theorie/Fichiers/src/nkill.sh b/Theorie/Fichiers/src/nkill.sh deleted file mode 100755 index 2eccd5e..0000000 --- a/Theorie/Fichiers/src/nkill.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -if [ $# -ne 2 ] -then - echo "Usage: `basename $0` n pid" - exit 1 -fi -n=$1 -pid=$2 -for (( c=1; c<=$n; c++ )) -do - kill -s SIGUSR1 $pid -done diff --git a/Theorie/Fichiers/src/process-sem-after.c b/Theorie/Fichiers/src/process-sem-after.c deleted file mode 100644 index 06ebd16..0000000 --- a/Theorie/Fichiers/src/process-sem-after.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************** - * process-sem-before.c - * - * Programme d'exemple de sémaphores nommés - * La fonction after ne peut s'exécuter - * qu'après la fonction before - **************************************/ - -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <fcntl.h> /* For O_* constants */ -#include <sys/stat.h> /* For mode constants */ -#include <sys/types.h> -#include <unistd.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA - -sem_t *semaphore; - -void after() { - sem_wait(semaphore); - // do something - for(int j=0;j<1000000;j++) { - } - printf("after done, pid=%d\n",(int) getpid()); -} - -int main (int argc, char *argv[]) { - int err; - - // semaphore a été créé par before - semaphore=sem_open("lsinf1252",0); - if(semaphore==SEM_FAILED) { - error(-1,"sem_open"); - } - after(); - - err=sem_close(semaphore); - if(err!=0) { - error(err,"sem_close"); - } - err=sem_unlink("lsinf1252"); - if(err!=0) { - error(err,"sem_unlink"); - } - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Fichiers/src/process-sem-before.c b/Theorie/Fichiers/src/process-sem-before.c deleted file mode 100644 index 1356eb8..0000000 --- a/Theorie/Fichiers/src/process-sem-before.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************** - * process-sem-before.c - * - * Programme d'exemple de sémaphores - * La fonction after ne peut s'exécuter - * qu'après la fonction before - **************************************/ - -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <unistd.h> -#include <fcntl.h> /* For O_* constants */ -#include <sys/stat.h> /* For mode constants */ -#include <sys/types.h> - - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA - -sem_t *semaphore; - -void before() { - // do something - for(int j=0;j<1000000;j++) { - } - printf("before done, pid=%d\n",(int) getpid()); - sem_post(semaphore); -} - - -int main (int argc, char *argv[]) { - - int err; - - semaphore=sem_open("lsinf1252",O_CREAT,S_IRUSR | S_IWUSR,0); - if(semaphore==SEM_FAILED) { - error(-1,"sem_open"); - } - sleep(20); - before(); - err=sem_close(semaphore); - if(err!=0) { - error(err,"sem_close"); - } - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Fichiers/src/read.c b/Theorie/Fichiers/src/read.c deleted file mode 100644 index b81b8e7..0000000 --- a/Theorie/Fichiers/src/read.c +++ /dev/null @@ -1,90 +0,0 @@ -/************************************** - * read.c - * - * Programme d'exemple d'utilisation de - * fichiers - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <errno.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include <unistd.h> -#include <string.h> - -void exit_on_error(char *s) { - perror(s); - exit(EXIT_FAILURE); -} - -int main (int argc, char *argv[]) { - int n=1252; - int n2; - short ns=1252; - short ns2; - long nl=125212521252; - long nl2; - float f=12.52; - float f2; - char *s="sinf1252"; - char *s2=(char *) malloc(strlen(s)*sizeof(char )+1); - int err; - int fd; - - fd=open("test.dat",O_WRONLY|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR); - if(fd==-1) { - perror("open"); - exit(EXIT_FAILURE); - } - if( write(fd, (void *) s, strlen(s)) == -1 ) - exit_on_error("write s"); - if (write(fd, (void *) &n, sizeof(int )) == -1) - exit_on_error("write n"); - if (write(fd, (void *) &ns, sizeof(short int))==-1) - exit_on_error("write ns"); - if (write(fd, (void *) &nl, sizeof(long int))==-1) - exit_on_error("write nl"); - if (write(fd, (void *) &f, sizeof(float))==-1) - exit_on_error("write f"); - if (close(fd)==-1) - exit_on_error("close "); - - // lecture - fd=open("test.dat",O_RDONLY); - if(fd==-1) { - perror("open"); - exit(EXIT_FAILURE); - } - printf("Fichier ouvert\n"); - - if(read(fd, (void *) s2, strlen(s))==-1) - exit_on_error("read s"); - printf("Donnée écrite : %s, lue: %s\n",s,s2); - - if(read(fd, (void *) &n2, sizeof(int))==-1) - exit_on_error("read n"); - printf("Donnée écrite : %d, lue: %d\n",n,n2); - - if(read(fd, (void *) &ns2, sizeof(short))==-1) - exit_on_error("read ns"); - printf("Donnée écrite : %d, lue: %d\n",ns,ns2); - - if(read(fd, (void *) &nl2, sizeof(long))==-1) - exit_on_error("read nl"); - printf("Donnée écrite : %ld, lue: %ld\n",nl,nl2); - - if(read(fd, (void *) &f2, sizeof(float))==-1) - exit_on_error("read f"); - printf("Donnée écrite : %f, lue: %f\n",f,f2); - err=close(fd); - if(err==-1){ - perror("close"); - exit(EXIT_FAILURE); - } - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Fichiers/src/read.out b/Theorie/Fichiers/src/read.out deleted file mode 100644 index 752a113..0000000 --- a/Theorie/Fichiers/src/read.out +++ /dev/null @@ -1,6 +0,0 @@ -Fichier ouvert -Donnée écrite : sinf1252, lue: sinf1252 -Donnée écrite : 1252, lue: 1252 -Donnée écrite : 1252, lue: 1252 -Donnée écrite : 125212521252, lue: 125212521252 -Donnée écrite : 12.520000, lue: 12.520000 diff --git a/Theorie/Fichiers/src/readdir.c b/Theorie/Fichiers/src/readdir.c deleted file mode 100644 index 0f6b7a0..0000000 --- a/Theorie/Fichiers/src/readdir.c +++ /dev/null @@ -1,38 +0,0 @@ -/************************************** - * readdir.c - * - * Programme d'exemple d'utilisation de - * répertoires - * - *************************************/ -///AAA -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <dirent.h> - -void exit_on_error(char *s) { - perror(s); - exit(EXIT_FAILURE); -} - -int main (int argc, char *argv[]) { - - DIR *dirp; - struct dirent *dp; - char name[]="."; - dirp = opendir(name); - if(dirp==NULL) { - exit_on_error("opendir"); - } - while ((dp = readdir(dirp)) != NULL) { - printf("%s\n",dp->d_name); - } - int err = closedir(dirp); - if(err<0) { - exit_on_error("closedir"); - } - - -} -///BBB diff --git a/Theorie/Fichiers/src/sigfpe.c b/Theorie/Fichiers/src/sigfpe.c deleted file mode 100644 index eb29670..0000000 --- a/Theorie/Fichiers/src/sigfpe.c +++ /dev/null @@ -1,21 +0,0 @@ -/************************************** - * sigfpe.c - * - * Programme d'exemple de signal sigfpe - * fichiers - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> - -int main (int argc, char *argv[]) { - int n=1252; - int zero=0; - printf("Calcul de : %d/%d\n",n,zero); - fflush(stdout); - printf("Résultat : %d\n",n/zero); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Fichiers/src/sigfpe2.c b/Theorie/Fichiers/src/sigfpe2.c deleted file mode 100644 index d8d3468..0000000 --- a/Theorie/Fichiers/src/sigfpe2.c +++ /dev/null @@ -1,50 +0,0 @@ -/************************************** - * sigfpe.c - * - * Programme d'exemple de signal sigfpe - * handler incorrect - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <string.h> -#include <unistd.h> - -static void sigfpe_handler(int); - -int main (int argc, char *argv[]) { - - int n=1252; - void (*handler)(int); - - handler=signal(SIGFPE,sigfpe_handler); - if(handler==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - - for(int i=1;i<argc;i++) { - char *endptr; - printf("Traitement de argv[%d]=%s\n",i,argv[i]); - fflush(stdout); - long val=strtol(argv[i],&endptr,10); - if(*endptr=='\0') { - int resultat=n/(int) val; - printf("%d/%d=%d\n",n,(int) val,resultat); - } - else { - printf("Argument incorrect : %s\n",argv[i]); - } - } - return(EXIT_SUCCESS); -} - -static void sigfpe_handler(int signum) { - char *msg="Signal SIGFPE reçu\n"; - write(STDOUT_FILENO,msg,strlen(msg)); - -} - -///BBB diff --git a/Theorie/Fichiers/src/sigfpe3.c b/Theorie/Fichiers/src/sigfpe3.c deleted file mode 100644 index 671c55b..0000000 --- a/Theorie/Fichiers/src/sigfpe3.c +++ /dev/null @@ -1,53 +0,0 @@ -/************************************** - * sigfpe.c - * - * Programme d'exemple de signal sigfpe - * fichiers - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <setjmp.h> - -sigjmp_buf buf; - -static void sigfpe_handler(int); - -int main (int argc, char *argv[]) { - - int n=1252; - if(signal(SIGFPE,sigfpe_handler)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - - for(int i=1;i<argc;i++) { - char *endptr; - int r; - printf("Traitement de argv[%d]=%s\n",i,argv[i]); - long val=strtol(argv[i],&endptr,10); - if(*endptr=='\0') { - r=sigsetjmp(buf,1); - if(r==0) { - int resultat=n/(int) val; - printf("%d/%d=%d\n",n,(int) val,resultat); - } - else { - printf("%d/%d=NaN\n",n,(int) val); - } - } - else { - printf("Argument incorrect : %s\n",argv[i]); - } - } - return(EXIT_SUCCESS); -} - -static void sigfpe_handler(int signum) { - // ignorer la donnée et passer à la suivante - siglongjmp(buf,1); -} - -///BBB diff --git a/Theorie/Fichiers/src/sigusr.c b/Theorie/Fichiers/src/sigusr.c deleted file mode 100644 index 4669432..0000000 --- a/Theorie/Fichiers/src/sigusr.c +++ /dev/null @@ -1,59 +0,0 @@ -/************************************** - * sigusr.c - * - * Programme d'exemple d'utilisation des - * signaux SIGUSR - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <signal.h> -#include <unistd.h> -#include <stdint.h> -#include <stdio.h> - -volatile sig_atomic_t n_sigusr1=0; -volatile sig_atomic_t n_sigusr2=0; - -static void sig_handler(int); - -int main (int argc, char *argv[]) { - - if(signal(SIGUSR1,sig_handler)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - if(signal(SIGUSR2,sig_handler)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - - while( (n_sigusr1+n_sigusr2) <5) { - // vide - } - - printf("Fin du processus\n"); - printf("Reçu %d SIGUSR1 et %d SIGUSR2\n",n_sigusr1,n_sigusr2); - return(EXIT_SUCCESS); -} - -static void sig_handler(int signum) { - - if(signum==SIGUSR1) { - n_sigusr1++; - } - else { - if(signum==SIGUSR2) { - n_sigusr2++; - } - else { - char *msg="Reçu signal inattendu\n"; - write(STDERR_FILENO,msg,strlen(msg)); - _exit(EXIT_FAILURE); - } - } -} - -///BBB diff --git a/Theorie/Fichiers/src/sigusrcount.c b/Theorie/Fichiers/src/sigusrcount.c deleted file mode 100644 index ed0aacf..0000000 --- a/Theorie/Fichiers/src/sigusrcount.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************** - * sigusrcount.c - * - * Programme d'exemple d'utilisation des - * signaux SIGUSR - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <signal.h> -#include <unistd.h> - -volatile sig_atomic_t n_sigusr1=0; - -static void sig_handler(int); - -int main (int argc, char *argv[]) { - - if(signal(SIGUSR1,sig_handler)==SIG_ERR) { - perror("signal"); - exit(EXIT_FAILURE); - } - int duree=60; - while(duree>0) { - printf("Exécution de sleep(%d)\n",duree); - duree=sleep(duree); - } - printf("Fin du processus\n"); - printf("Reçu %d SIGUSR1\n",n_sigusr1); - return(EXIT_SUCCESS); -} - -static void sig_handler(int signum) { - - if(signum==SIGUSR1) { - n_sigusr1++; - } -} - -///BBB diff --git a/Theorie/Makefile b/Theorie/Makefile deleted file mode 100644 index 9ba663e..0000000 --- a/Theorie/Makefile +++ /dev/null @@ -1,161 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = a4 -BUILDDIR = ../web/notes/Theorie - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext qcm projets sinf1252 - -help: - @echo "Please use \`make <target>' where <target> is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/SINF1252.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/SINF1252.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/SINF1252" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/SINF1252" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -qcm: - @for dir in Exercices/QCM/S*; do make -C $${dir}; done - -projets: - @for dir in Projets/P*; do [ -e $${dir}/Makefile ] && make -C $${dir}; true; done - -sinf1252: qcm projets html latexpdf epub diff --git a/Theorie/MemoireVirtuelle/fig/addrvirtuelle.png b/Theorie/MemoireVirtuelle/fig/addrvirtuelle.png deleted file mode 100644 index 3e1bf004f0ad4d232e789f0118bf738a16851570..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37804 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	sqNg#68~=j9N23Q3bmt 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 HA^v{=fYg6B diff --git a/Theorie/MemoireVirtuelle/fig/entreeComplete.png b/Theorie/MemoireVirtuelle/fig/entreeComplete.png deleted file mode 100644 index a718146832069e2356efaba3df2cc1d37718a612..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44478 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 diff --git a/Theorie/MemoireVirtuelle/fig/entreeTable.png b/Theorie/MemoireVirtuelle/fig/entreeTable.png deleted file mode 100644 index 2898f018331909e08633f8839e77dcae0fe330d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32853 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 diff --git a/Theorie/MemoireVirtuelle/fig/fichierMappe.png b/Theorie/MemoireVirtuelle/fig/fichierMappe.png deleted file mode 100644 index 447fc040acb1b526d93d160e702b6ba8adc8869c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83392 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 diff --git a/Theorie/MemoireVirtuelle/fig/memoireVirtuelle.png b/Theorie/MemoireVirtuelle/fig/memoireVirtuelle.png deleted file mode 100644 index 3b919e6a48c938b70681e349233d0d9753dad975..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50707 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⁡G`s$V`#*N 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 diff --git a/Theorie/MemoireVirtuelle/fig/mmu.png b/Theorie/MemoireVirtuelle/fig/mmu.png deleted file mode 100644 index aa90909ac847831fcdba17f8e0a15ef689a433eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33329 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 diff --git a/Theorie/MemoireVirtuelle/fig/orgMemoire.png b/Theorie/MemoireVirtuelle/fig/orgMemoire.png deleted file mode 100644 index 119abecae2f05dfc6e4c1981bd1b5032dff13040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29361 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 Y#0V%Wx!l%^I<WYe)8}<xXk$bF7vp|Eu>b%7 diff --git a/Theorie/MemoireVirtuelle/fig/proc-mem.png b/Theorie/MemoireVirtuelle/fig/proc-mem.png deleted file mode 100644 index 2188733d5b1395bff8ee28df5488b26dcfe768c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17275 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 Y(R(RLdMnP;<jz>WbhTT-5^~Ic0D<3S*Z=?k diff --git a/Theorie/MemoireVirtuelle/fig/tablePages.png b/Theorie/MemoireVirtuelle/fig/tablePages.png deleted file mode 100644 index a685a9344b54edc050b37399733a5f220be77715..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115537 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%0DZqXR`12Rb$3?pg0`wuw)b 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 P_1Pu{=KA+_(b4}6gf=0y diff --git a/Theorie/MemoireVirtuelle/fig/traduction.png b/Theorie/MemoireVirtuelle/fig/traduction.png deleted file mode 100644 index 3769ba5924aee8d299808e60c63fbd79b36f1666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52802 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 diff --git a/Theorie/MemoireVirtuelle/fig/vmem.png b/Theorie/MemoireVirtuelle/fig/vmem.png deleted file mode 100644 index ee08cbab68c1d917376ccf3d6c8a8438b14fd951..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48105 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 diff --git a/Theorie/MemoireVirtuelle/src/Makefile b/Theorie/MemoireVirtuelle/src/Makefile deleted file mode 100644 index 050ec12..0000000 --- a/Theorie/MemoireVirtuelle/src/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# -# Makefile for source code -# -# Builds all .c files, assuming they are all independant and runs them -# to collect the output on stdout -# -# Automatically builds some of the examples to be included in the text -# - -GCC = gcc - -CFLAGS = -Wall -std=c99 -g -LDFLAGS = -pthread - -ASMFLAGS = -Wall -std=c99 -O0 -fverbose-asm -fno-stack-protector -m32 -S - -CFILES := $(patsubst %.c,%.exe,$(wildcard *.c)) -ASMFILES := $(patsubst %.c,%.s,$(wildcard *.c)) -OUTPUT := $(patsubst %.c,%.out,$(wildcard *.c)) - - -all: ${CFILES} ${OUTPUT} - -%.s: %.c - @echo compiling $< - $(GCC) $(ASMFLAGS) $< - -%.exe: %.c - @echo compiling $< - $(GCC) $(CFLAGS) -o $@ $< $(LDFLAGS) - -%.out: %.exe - rm -f $@ - @echo executing $< - ./$< >$@ - diff --git a/Theorie/MemoireVirtuelle/src/cp2.c b/Theorie/MemoireVirtuelle/src/cp2.c deleted file mode 100644 index 74668b9..0000000 --- a/Theorie/MemoireVirtuelle/src/cp2.c +++ /dev/null @@ -1,91 +0,0 @@ -/************************************** - * cp2.c - * - * copie de fichier avec mmap - * - *************************************/ -///AAA -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/mman.h> -#include <fcntl.h> -#include <stdlib.h> -#include <stdio.h> -#include <unistd.h> -#include <string.h> - -int main (int argc, char *argv[]) { - int file1, file2; - void *src, *dst; - struct stat file_stat; - char dummy=0; - - if (argc != 3) { - fprintf(stderr,"Usage : cp2 source dest\n"); - exit(EXIT_FAILURE); - } - // ouverture fichier source - if ((file1 = open (argv[1], O_RDONLY)) < 0) { - perror("open(source)"); - exit(EXIT_FAILURE); - } - - if (fstat (file1,&file_stat) < 0) { - perror("fstat"); - exit(EXIT_FAILURE); - } - // ouverture fichier destination - if ((file2 = open (argv[2], O_RDWR | O_CREAT | O_TRUNC, file_stat.st_mode)) < 0) { - perror("open(dest)"); - exit(EXIT_FAILURE); - } - - // le fichier destination doit avoir la même taille que le source - if (lseek (file2, file_stat.st_size - 1, SEEK_SET) == -1) { - perror("lseek"); - exit(EXIT_FAILURE); - } - - // écriture en fin de fichier - if (write (file2, &dummy, sizeof(char)) != 1) { - perror("write"); - exit(EXIT_FAILURE); - } - - // mmap fichier source - if ((src = mmap (NULL, file_stat.st_size, PROT_READ, MAP_SHARED, file1, 0)) == NULL) { - perror("mmap(src)"); - exit(EXIT_FAILURE); - } - - // mmap fichier destination - if ((dst = mmap (NULL, file_stat.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, file2, 0)) == NULL) { - perror("mmap(src)"); - exit(EXIT_FAILURE); - } - - // copie complète - memcpy (dst, src, file_stat.st_size); - - // libération mémoire - if(munmap(src,file_stat.st_size)<0) { - perror("munmap(src)"); - exit(EXIT_FAILURE); - } - - if(munmap(dst,file_stat.st_size)<0) { - perror("munmap(dst)"); - exit(EXIT_FAILURE); - } - // fermeture fichiers - if(close(file1)<0) { - perror("close(file1)"); - exit(EXIT_FAILURE); - } - - if(close(file2)<0) { - perror("close(file2)"); - exit(EXIT_FAILURE); - } - return(EXIT_SUCCESS); -} diff --git a/Theorie/MemoireVirtuelle/src/cp2.out b/Theorie/MemoireVirtuelle/src/cp2.out deleted file mode 100644 index e69de29..0000000 diff --git a/Theorie/MemoireVirtuelle/src/mincore.c b/Theorie/MemoireVirtuelle/src/mincore.c deleted file mode 100644 index 875183a..0000000 --- a/Theorie/MemoireVirtuelle/src/mincore.c +++ /dev/null @@ -1,65 +0,0 @@ -/************************************** - * mincore.c - * - * Programme d'exemple d'utilisation de - * mincore - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <fcntl.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#include <sys/mman.h> - -///AAA -#dfine _BSD_SOURCE - -#define SIZE 10*4096 - -int main(int argc, char *argv[]) { - - char *mincore_vec; - size_t page_size = getpagesize(); - size_t page_index; - char *mem; - - mem=(char *)malloc(SIZE*sizeof(char)); - if(mem==NULL) { - perror("malloc"); - exit(EXIT_FAILURE); - } - for(int i=0;i<SIZE/2;i++) { - *(mem+i)='A'; - } - - mincore_vec = calloc(sizeof(char), SIZE/page_size); - if(mincore_vec==NULL) { - perror("calloc"); - exit(EXIT_FAILURE); - } - if(mincore(mem, SIZE, mincore_vec)!=0) { - perror("mincore"); - exit(EXIT_FAILURE); - } - - for (page_index = 0; page_index < SIZE/page_size; page_index++) { - printf("%lu :", (unsigned long)page_index); - if (mincore_vec[page_index]&MINCORE_INCORE) { - printf(" incore"); - } - if (mincore_vec[page_index]&MINCORE_REFERENCED) { - printf(" referenced_by_us"); - } - if (mincore_vec[page_index]&MINCORE_MODIFIED) { - printf(" modified_by_us"); - } - printf("\n"); - } - free(mincore_vec); - free(mem); - return (EXIT_SUCCESS); -} - diff --git a/Theorie/MemoireVirtuelle/src/mincore.out b/Theorie/MemoireVirtuelle/src/mincore.out deleted file mode 100644 index 5d95bce..0000000 --- a/Theorie/MemoireVirtuelle/src/mincore.out +++ /dev/null @@ -1,10 +0,0 @@ -0 : incore referenced_by_us modified_by_us -1 : incore referenced_by_us modified_by_us -2 : incore referenced_by_us modified_by_us -3 : incore referenced_by_us modified_by_us -4 : incore referenced_by_us modified_by_us -5 : -6 : -7 : -8 : -9 : diff --git a/Theorie/MemoireVirtuelle/src/mmap.c b/Theorie/MemoireVirtuelle/src/mmap.c deleted file mode 100644 index 617ce05..0000000 --- a/Theorie/MemoireVirtuelle/src/mmap.c +++ /dev/null @@ -1,72 +0,0 @@ -/************************************** - * mmap.c - * - * Programme d'exemple d'utilisation de - * mincore - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <fcntl.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <unistd.h> -#include <sys/mman.h> -#include <float.h> - -void create_file(int n, char *filename) { - int fd=open(filename, O_RDWR|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR); - if(fd==-1) { - perror("open"); - exit(EXIT_FAILURE); - } - for (int i=0;i<n;i++) { - float f=(float ) i; - if(write(fd,(void *)&f,sizeof(float)) <0) { - perror("write"); - exit(EXIT_FAILURE); - } - } - int err=close(fd); - if (err<0) { - perror("close"); - exit(EXIT_FAILURE); - } -} - -int main(int argc, char *argv[]) { - int fd; - struct stat file_stat; - void *file_mmap; - - create_file(100,"sinf1252.dat"); - - fd = open("sinf1252.dat",O_RDONLY); - if(fd<0) { - perror("open"); - exit(EXIT_FAILURE); - } - if (fstat(fd, &file_stat)<0) { - perror("fstat"); - exit(EXIT_FAILURE); - } - // fichier est un vecteur d'entiers - file_mmap = mmap((void *) 0, file_stat.st_size, PROT_READ, MAP_FILE, fd, 0); - if(file_mmap==NULL) { - perror("mmap"); - exit(EXIT_FAILURE); - } - printf("%p mmap\n",file_mmap); - float * vector=(float *) file_mmap; - float min=FLT_MAX; - for(int i=0;i<file_stat.st_size/sizeof(float);i++) { - if (*vector<min) { - min=*vector; - } - vector++; - } - munmap(file_mmap, file_stat.st_size); - close(fd); - return(EXIT_SUCCESS); -} diff --git a/Theorie/MemoireVirtuelle/src/mmap.out b/Theorie/MemoireVirtuelle/src/mmap.out deleted file mode 100644 index e69de29..0000000 diff --git a/Theorie/MemoireVirtuelle/src/simple.c b/Theorie/MemoireVirtuelle/src/simple.c deleted file mode 100644 index 7288e77..0000000 --- a/Theorie/MemoireVirtuelle/src/simple.c +++ /dev/null @@ -1,19 +0,0 @@ -/************************************** - * simple.c - * - * Programme d'exemple qui affiche simplement - * les adresses de argc, main et printf - * - *************************************/ -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -///AAA -int main (int argc, char *argv[]) { - printf("[pid=%ld] Adresse de argc : %p\n",(long) getpid(),&argc); - printf("[pid=%ld] Adresse de main : %p\n",(long) getpid(),main); - printf("[pid-%ld] Adresse de printf : %p\n",(long) getpid(),printf); - sleep(20); - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/MemoireVirtuelle/src/svshm_xfr.h b/Theorie/MemoireVirtuelle/src/svshm_xfr.h deleted file mode 100644 index 3604595..0000000 --- a/Theorie/MemoireVirtuelle/src/svshm_xfr.h +++ /dev/null @@ -1,43 +0,0 @@ -/**********************************************************************\ -* Copyright (C) Michael Kerrisk, 2010. * -* * -* This program is free software. You may use, modify, and redistribute * -* it under the terms of the GNU Affero General Public License as * -* published by the Free Software Foundation, either version 3 or (at * -* your option) any later version. This program is distributed without * -* any warranty. See the file COPYING for details. * -\**********************************************************************/ - -/* svshm_xfr.h - - Header file used by the svshm_xfr_reader.c and svshm_xfr_writer.c programs. -*/ -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/sem.h> -#include <sys/shm.h> -#include "binary_sems.h" /* Declares our binary semaphore functions */ -#include "tlpi_hdr.h" - -/* Hard-coded keys for IPC objects */ - -#define SHM_KEY 0x1234 /* Key for shared memory segment */ -#define SEM_KEY 0x5678 /* Key for semaphore set */ - -#define OBJ_PERMS (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP) - /* Permissions for our IPC objects */ - -/* Two semaphores are used to ensure exclusive, alternating access - to the shared memory segment */ - -#define WRITE_SEM 0 /* Writer has access to shared memory */ -#define READ_SEM 1 /* Reader has access to shared memory */ - -#ifndef BUF_SIZE /* Allow "cc -D" to override definition */ -#define BUF_SIZE 1024 /* Size of transfer buffer */ -#endif - -struct shmseg { /* Defines structure of shared memory segment */ - int cnt; /* Number of bytes used in 'buf' */ - char buf[BUF_SIZE]; /* Data being transferred */ -}; diff --git a/Theorie/MemoireVirtuelle/src/svshm_xfr_writer.c b/Theorie/MemoireVirtuelle/src/svshm_xfr_writer.c deleted file mode 100644 index 9aa92f6..0000000 --- a/Theorie/MemoireVirtuelle/src/svshm_xfr_writer.c +++ /dev/null @@ -1,98 +0,0 @@ -/**********************************************************************\ -* Copyright (C) Michael Kerrisk, 2010. * -* * -* This program is free software. You may use, modify, and redistribute * -* it under the terms of the GNU Affero General Public License as * -* published by the Free Software Foundation, either version 3 or (at * -* your option) any later version. This program is distributed without * -* any warranty. See the file COPYING for details. * -\**********************************************************************/ - -/* svshm_xfr_writer.c - - Read buffers of data data from standard input into a System V shared memory - segment from which it is copied by svshm_xfr_reader.c - - We use a pair of binary semaphores to ensure that the writer and reader have - exclusive, alternating access to the shared memory. (I.e., the writer writes - a block of text, then the reader reads, then the writer writes etc). This - ensures that each block of data is processed in turn by the writer and - reader. - - This program needs to be started before the reader process as it creates the - shared memory and semaphores used by both processes. - - Together, these two programs can be used to transfer a stream of data through - shared memory as follows: - - $ svshm_xfr_writer < infile & - $ svshm_xfr_reader > out_file -*/ -#include "semun.h" /* Definition of semun union */ -#include "svshm_xfr.h" - -int -main(int argc, char *argv[]) -{ - int semid, shmid, bytes, xfrs; - struct shmseg *shmp; - union semun dummy; - - /* Create set containing two semaphores; initialize so that - writer has first access to shared memory. */ - - semid = semget(SEM_KEY, 2, IPC_CREAT | OBJ_PERMS); - if (semid == -1) - errExit("semget"); - - if (initSemAvailable(semid, WRITE_SEM) == -1) - errExit("initSemAvailable"); - if (initSemInUse(semid, READ_SEM) == -1) - errExit("initSemInUse"); - - /* Create shared memory; attach at address chosen by system */ - - shmid = shmget(SHM_KEY, sizeof(struct shmseg), IPC_CREAT | OBJ_PERMS); - if (shmid == -1) - errExit("shmget"); - - shmp = shmat(shmid, NULL, 0); - if (shmp == (void *) -1) - errExit("shmat"); - - /* Transfer blocks of data from stdin to shared memory */ - - for (xfrs = 0, bytes = 0; ; xfrs++, bytes += shmp->cnt) { - if (reserveSem(semid, WRITE_SEM) == -1) /* Wait for our turn */ - errExit("reserveSem"); - - shmp->cnt = read(STDIN_FILENO, shmp->buf, BUF_SIZE); - if (shmp->cnt == -1) - errExit("read"); - - if (releaseSem(semid, READ_SEM) == -1) /* Give reader a turn */ - errExit("releaseSem"); - - /* Have we reached EOF? We test this after giving the reader - a turn so that it can see the 0 value in shmp->cnt. */ - - if (shmp->cnt == 0) - break; - } - - /* Wait until reader has let us have one more turn. We then know - reader has finished, and so we can delete the IPC objects. */ - - if (reserveSem(semid, WRITE_SEM) == -1) - errExit("reserveSem"); - - if (semctl(semid, 0, IPC_RMID, dummy) == -1) - errExit("semctl"); - if (shmdt(shmp) == -1) - errExit("shmdt"); - if (shmctl(shmid, IPC_RMID, 0) == -1) - errExit("shmctl"); - - fprintf(stderr, "Sent %d bytes (%d xfrs)\n", bytes, xfrs); - exit(EXIT_SUCCESS); -} diff --git a/Theorie/MemoireVirtuelle/vmem.rst b/Theorie/MemoireVirtuelle/vmem.rst deleted file mode 100644 index a30d860..0000000 --- a/Theorie/MemoireVirtuelle/vmem.rst +++ /dev/null @@ -1,666 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _vmem: - -La mémoire virtuelle -==================== - -Le modèle d'interaction entre le processeur et la mémoire que nous avons utilisé jusqu'à présent est le modèle traditionnel. Dans ce modèle, illustré sur la figure ci-dessous, la mémoire est divisée en octets. Chaque octet est identifié par une adresse encodée sur :math:`n` bits. Une telle mémoire peut donc contenir au maximum :math:`2^n` octets de données. Aujourd'hui, les processeurs utilisent généralement des adresses sur 32 ou 64 bits. Avec des adresses sur 32 bits, la mémoire peut stocker :math:`4.294.967.296` octets de données. Avec des adresses sur 64 bits, la capacité de stockage de la mémoire monte à :math:`18.446.744.073.709.551.616` octets. Si on trouve facilement aujourd'hui des mémoires avec une capacité de :math:`4.294.967.296` octets, il n'en existe pas encore qui sont capables de stocker :math:`18.446.744.073.709.551.616` et il faudra probablement quelques années avant que de telles capacités ne soient utilisables en pratique. - -.. figure:: /MemoireVirtuelle/fig/proc-mem.png - :align: center - :scale: 60 - - Modèle simple d'interaction entre le processeur et la mémoire - -Ce modèle correspond au fonctionnement de processeurs simples tels que ceux que l'on trouve sur des systèmes embarqués comme une machine à lessiver. Malheureusement, il ne permet pas d'expliquer et de comprendre le fonctionnement des ordinateurs actuels. Pour s'en convaincre, il suffit de réfléchir à quelques problèmes liés à l'utilisation de la mémoire sur un ordinateur fonctionnant sous Unix. - -Le premier problème est lié à l'organisation d'un processus en mémoire. Sous Unix, le bas de la mémoire est réservé au code, le milieu au heap et le haut au stack. Le modèle simple d'organisation de la mémoire ne permet pas facilement de comprendre comment un tel processus peut pouvoir utiliser la mémoire sur un processeur 64 bits qui est placé dans un ordinateur qui ne dispose que de 4 GBytes de mémoire. Avec une telle quantité de mémoire, le sommet de la pile devrait se trouver à une adresse proche de :math:`2^{32}` et non :math:`2^{64}`. - -Un deuxième problème est lié à l'utilisation de plusieurs processus simultanément en mémoire. Lorsque deux processus s'exécutent, ils utilisent nécessairement la même mémoire physique. Si un processus utilise l'adresse `x` et y place des instructions ou des données, cette adresse ne peut pas être utilisée par un autre processus. Physiquement, ces deux processus doivent utiliser des zones mémoires distinctes. Pourtant, le programme ci-dessous affiche les adresses de ``argc``, de la fonction ``main`` et de la fonction ``printf`` de la librairie standard puis effectue ``sleep(20);``. Lors de l'exécution de deux instances de ce programmes simultanément, on observe ceci sur la sortie standard. - -.. code-block:: console - - $ ./simple & - [pid=32955] Adresse de argc : 0x7fff5fbfe18c - [pid=32955] Adresse de main : 0x100000e28 - [pid-32955] Adresse de printf : 0x7fff8a524f3a - $ ./simple 2 3 4 - [pid=32956] Adresse de argc : 0x7fff5fbfe18c - [pid=32956] Adresse de main : 0x100000e28 - [pid-32956] Adresse de printf : 0x7fff8a524f3a - - -.. Manifestement, les deux programmes utilisent exactement les mêmes adresses en mémoire. Pourtant, ces deux programmes doivent nécessairement utiliser des zones mémoires distinctes pour pouvoir s'exécuter correctement. Sinon, les accès mémoire des deux processus seront en conflit. Ceci est possible grâce à l'utilisation de la :term:`mémoire virtuelle`. - - -.. Le :term:`Memory Management Unit` -.. --------------------------------- - - -Manifestement, les deux programmes utilisent exactement les mêmes adresses en mémoire. Pourtant, ces deux programmes doivent nécessairement utiliser des zones mémoires différentes pour pouvoir s'exécuter correctement. Ceci est possible grâce à l'utilisation de la :term:`mémoire virtuelle`. Avec la :term:`mémoire virtuelle`, deux types d'adresses sont utilisées sur le système : les *adresses virtuelles* et les *adresses réelles* ou *physiques*. Une :term:`adresse virtuelle` est une adresse qui est utilisée à l'intérieur d'un programme. Les adresses des variables ou des fonctions de notre programme d'exemple ci-dessus sont des adresses virtuelles. Une :term:`adresse physique` est l'adresse qui est utilisée par des puces de RAM pour les opérations d'écriture et de lecture. Ce sont les adresses physiques qui sont échangées sur le bus auquel la mémoire est connectée. Pour que les programmes puissent accéder aux instructions et données qui se trouvent en mémoire, il est nécessaire de pouvoir traduire les adresses virtuelles en adresses physiques. C'est le rôle du :term:`MMU` ou :term:`Memory Management Unit`. Historiquement, le :term:`MMU` était implémenté sous la forme d'un chip séparé qui était placé entre le processeur (qui utilisait alors des adresses virtuelles) et la mémoire (qui utilise elle toujours des adresses physiques). Aujourd'hui, le :term:`MMU` est directement intégré au processeur pour des raisons de performance, mais conceptuellement son rôle reste essentiel comme nous allons le voir. - -La mémoire virtuelle --------------------- - -.. Avec la :term:`mémoire virtuelle`, deux types d'adresses sont utilisées sur le système : les adresses virtuelles et les adresses réelles ou physiques. - -.. Une :term:`adresse virtuelle` est une adresse qui est utilisée à l'intérieur d'un programme. Les adresses des variables ou des fonctions de notre programme d'exemple ci-dessous sont des adresses virtuelles. Une :term:`adresse physique` est l'adresse qui utilisée au niveau des puces de mémoire RAM pour les opérations d'écriture et de lecture. Ce sont les adresses physiques qui sont échangées sur le bus auquel la mémoire est connectée. Pour que les programmes puissent accéder aux instructions et données qui se trouvent en mémoire, il est nécessaire de pouvoir traduire les adresses virtuelles en adresses physiques. C'est le rôle du :term:`MMU` ou :term:`Memory Management Unit`. Historiquement, le :term:`MMU` était implémenté sous la forme d'un chip séparé qui était placé entre le processeur (qui utilisait alors des adresses virtuelles) et la mémoire (qui utilise elle toujours des adresses physiques). Aujourd'hui, le :term:`MMU` est généralement intégré au processeur pour des raisons de performances, mais conceptuellement son rôle reste essentiel comme nous allons le voir. - - -Le rôle principal du :term:`MMU` est de traduire toute adresse virtuelle en une adresse physique. Avant d'expliquer comment le :term:`MMU` peut être implémenté en pratique, il est utile de passer en revue plusieurs avantages de l'utilisation des adresses virtuelles. - - -.. figure:: /MemoireVirtuelle/fig/mmu.png - :align: center - :scale: 60 - - `MMU` et `mémoire virtuelle` - - - -Un premier avantage de l'utilisation de la mémoire virtuelle est qu'elle permet de découpler les adresses virtuelles des adresses physiques. Celles-ci ne doivent pas nécessairement être encodées en utilisant le même nombre de bits. La longueur des adresses dépend généralement de l'architecture du processeur et de la taille des registres qu'il utilise. Une organisation possible de la mémoire virtuelle est d'utiliser des adresses virtuelles qui sont encodées sur autant de bits que les adresses physiques, mais ce n'est pas la seule. Il est tout à fait possible d'avoir un ordinateur sur lequel les adresses virtuelles sont plus longues que les adresses physiques. C'est le cas par exemple sur les ordinateurs bon marché qui utilisent une quantité réduite de mémoire RAM. Inversement, la mémoire virtuelle permet à un serveur d'utiliser des adresses physiques qui sont plus longues que les adresses virtuelles. Cela lui permet d'utiliser une capacité de mémoire plus importante que celle autorisée par l'architecture de son processeur. Dans ce cas, un processus ne peut pas utiliser plus de mémoire que l'espace d'adressage virtuel disponible. Mais ensemble, tous les processus fonctionnant sur l'ordinateur peuvent utiliser tout l'espace d'adressage physique disponible. - -Un deuxième avantage de la mémoire virtuelle est qu'elle permet, à condition de pouvoir réaliser une traduction spécifique à chaque processus, de partager efficacement la mémoire entre plusieurs processus tout en leur permettant d'utiliser les mêmes adresses virtuelles. C'est cette particularité de la mémoire virtuelle qui nous a permis dans l'exemple précédent d'avoir deux processus qui en apparence utilisent les mêmes adresses. En effectuant une traduction spécifique à chaque processus, le :term:`MMU` permet d'autres avantages qui sont encore plus intéressants. - -Le :term:`MMU` est capable d'effectuer des traductions d'adresses virtuelles qui sont spécifiques à chaque processus. Cela implique qu'en général la traduction de l'adresse `x` dans le processus `P1` ne donnera pas la même adresse physique que la traduction de l'adresse `x` dans le processus `P2`. Par contre, il est tout à fait possible que la traduction de l'adresse `w` (resp. `y`) dans le processus `P1` (resp. `P2`) donne l'adresse physique `z` dans les deux processus. Comme nous le verrons ultérieurement, cela permet à deux processus distincts de partager de la mémoire. Cette propriété est aussi à la base du fonctionnement des librairies partagées dans un système Unix. Dans notre exemple, la fonction ``printf`` qui est utilisée par les deux processus fait partie de la librairie standard. Celle-ci doit être chargée en mémoire lors de l'exécution de chacun des processus. Grâce à l'utilisation du :term:`MMU` et de la mémoire virtuelle, une seule copie physique de la librairie standard est chargée en mémoire et tous les processus qui y font appel utilisent les instructions se trouvant dans cette copie physique. Cela permet de réduire fortement la consommation de mémoire lorsque de nombreux processus s'exécutent simultanément, ce qui est souvent le cas sur un système Unix. - -Le dernier avantage de l'utilisation de la mémoire virtuelle est qu'il est possible de combiner ensemble la mémoire RAM et un ou des dispositifs de stockage tels que des disques durs ou des disques SSD pour constituer une mémoire virtuelle de plus grande capacité que la mémoire RAM disponible. Pour cela, il suffit, conceptuellement, que le :term:`MMU` soit capable de supporter deux types d'adresses physiques : les adresses physiques en RAM et les adresses physiques qui correspondent à des données stockées sur un dispositif de stockage [#fmmu]_. - -.. figure:: /MemoireVirtuelle/fig/vmem.png - :align: center - :scale: 60 - - Organisation de la `mémoire virtuelle` - -Cette possibilité de combiner la mémoire RAM et les dispositifs de stockage offre encore plus de possibilités. Comme nous le verrons, grâce à la mémoire virtuelle, un processus pourra accéder à des fichiers via des pointeurs et des écriture/lectures en mémoire. Le chargement d'un programme pourra s'effectuer en passant par la mémoire virtuelle de façon à charger uniquement les parties du programme qui sont nécessaires en mémoire. Nous verrons également qu'il existe plusieurs appels systèmes qui permettent à des processus de contrôler leur utilisation de la mémoire virtuelle. - -.. _fctvmem: - -Fonctionnement de la mémoire virtuelle --------------------------------------- - -Avant d'analyser comment la mémoire virtuelle peut être utilisée par les processus, il est important de bien comprendre son organisation et les principes de base de fonctionnement du :term:`MMU`. La mémoire virtuelle combine la mémoire RAM et les dispositifs de stockage. Comme la mémoire RAM et les dispositifs de stockage ont des caractéristiques fort différentes, il n'est pas trivial de les combiner pour donner l'illusion d'une mémoire virtuelle unique. - -Au niveau de l'adressage, la mémoire RAM permet d'adresser des octets et supporte des lectures et des écritures à n'importe quelle adresse. La mémoire RAM permet au processeur d'écrire et de lire des octets ou des mots à une position déterminée en mémoire. - -Un dispositif de stockage (disque dur, CD/DVD, ...) quant à lui contient un ensemble de secteurs. Chaque secteur peut être identifié par une adresse, comprenant par exemple le numéro du plateau, le numéro de la piste et le numéro du secteur sur la piste. Sur un tel dispositif, le secteur est l'unité de transfert de l'information. Cela implique que la moindre lecture/écriture sur un dispositif de stockage nécessite la lecture/écriture d'au moins 512 octets, même pour modifier un seul bit. Enfin, la dernière différence importante entre ces deux technologies est leur temps d'accès. Au niveau des mémoires RAM, les temps d'accès sont de l'ordre de quelques dizaines de nanosecondes. Pour un dispositif de stockage, les temps d'accès peuvent être de quelques dizaines de microsecondes pour un dispositif de type :term:`Solid State Drive` ou :term:`SSD` et jusqu'à quelques dizaines de millisecondes pour un disque dur. Les tableaux ci-dessous présentent les caractéristiques techniques de deux dispositifs de stockage [#fintel]_ [#fseagate]_ à titre d'exemple. - -La mémoire virtuelle utilise elle une unité intermédiaire qui est la :term:`page`. Une :term:`page` est une zone de mémoire contigüe. La taille des pages dépend de l'architecture du processeur et/ou du système d'exploitation utilisé. Une taille courante est de 4096 octets. - - -.. code-block:: c - - #include <unistd.h> - int sz = getpagesize(); - -Lorsqu'un programme est chargé en mémoire, par exemple lors de l'exécution de l'appel système `execve(2)`_, il est automatiquement découpé en pages. Grâce à la mémoire virtuelle, ces pages peuvent être stockée dans n'importe quelle zone de la mémoire RAM. La seule contrainte est que tous les octets qui font partie de la même page soient stockés à des adresses qui sont contigües. Cette contrainte permet de structurer les adresses virtuelles en deux parties comme représenté dans la figure ci-dessous. Une :term:`adresse virtuelle` est donc un ensemble de bits. Les bits de poids fort servent à identifier la :term:`page` dans laquelle une donnée est stockée. Les bits de poids faible (12 lorsque l'on utilise des pages de 4 KBytes) identifient la position de la donnée par rapport au début de la page. - - -.. figure:: /MemoireVirtuelle/fig/addrvirtuelle.png - :align: center - :scale: 60 - - Adresse virtuelle - -Grâce à cette organisation des adresses virtuelles, il est possible de construire un mécanisme efficace qui permet de traduire une adresse virtuelle en une adresse réelle. La première solution qui a été proposée pour réaliser cette traduction est d'utiliser une :term:`table des pages`. La :term:`table des pages` est stockée en mémoire RAM et contient une ligne pour chaque page appartenant à la mémoire virtuelle. A titre d'exemple, un système utilisant des adresses virtuelles de 32 bits et des pages de 4 KBytes contient :math:`2^{32-12}=2^{20}` pages. La table des pages de ce système contient donc :math:`2^{20}` lignes. Une ligne de la table des pages contient différentes informations que nous détaillerons par après. Les deux plus importantes sont : - - - le :term:`bit de validité` qui indique si la page est actuellement présente en mémoire RAM ou non - - l'adresse en mémoire RAM à laquelle la page est actuellement stockée (si elle est présente en mémoire RAM, sinon une information permettant de trouver la page sur un dispositif de stockage) - -La table des page est stockée en mémoire RAM comme un tableau en C. L'information correspondant à la page `0` est stockée à l'adresse de début de la table des pages. Cette adresse de début de la table des pages (``P``) est généralement stockée dans un registre du processeur pour être facilement accessible. Si une entrée [#fentree]_ de la table des pages est encodée en `n` bytes, l'information correspondant à la page `1` sera stockée à l'adresse ``P+n``, celle relative à la page `2` à l'adresse ``P+2*n``, ... Cette organisation permet d'accéder facilement à l'entrée de la table des pages relative à la page `z`. Il suffit en effet d'y accéder depuis l'adresse ``P+z*n``. - -Grâce à cette table des pages, il est possible de traduire directement les adresses virtuelles en adresses physiques. Cette traduction est représentée dans la figure ci-dessous. Pour réaliser une traduction, il faut tout d'abord extraire de l'adresse virtuelle le numéro de la page. Celui-ci se trouve dans les bits de poids fort de l'adresse virtuelle. Le numéro de la page sert d'index pour récupérer l'entrée correspondant à cette page dans la table des pages. Cette entrée contient l'adresse en mémoire RAM à laquelle la page débute. Pour finaliser la traduction de l'adresse virtuelle, il suffit de concaténer les bits de poids faible de l'adresse virtuelle avec l'adresse de la page en mémoire RAM. Cette concaténation donne l'adresse réelle à laquelle la donnée est stockée en mémoire RAM. Cette adresse physique permet au processeur d'accéder directement à la donnée en mémoire. - - -.. figure:: /MemoireVirtuelle/fig/traduction.png - :align: center - :scale: 60 - - Traduction d'adresses avec une table des pages - -La table des pages permet de traduire les adresses virtuelles en adresses physiques. Ce faisant, elle introduit un mécanisme d'indirection entre les adresses (virtuelles) qui sont utilisées par les programmes et les adresses (réelles) qui sont utilisées par le hardware. Ce mécanisme d'indirection a de nombreuses applications comme nous le verrons par la suite. - - -Un point important à mentionner concernant l'utilisation d'un mécanisme de traduction des adresses est qu'il permet de découpler le choix de la taille des adresses (virtuelles) utilisées par les programmes des contraintes matérielles qui sont liées directement aux mémoires RAM utilisées. En pratique, il est très possible d'avoir des systèmes informatiques dans lesquels les adresses virtuelles sont plus longues, plus courtes ou ont la même longueur que les adresses physiques. Sur un ordinateur 32 bits actuel équipé de 4 GBytes de mémoire, il est naturel d'utiliser des adresses virtuelles de 32 bits et des adresses physiques de 32 bits également pour pouvoir accéder à l'ensemble de la mémoire. Dans ce cas, la mémoire virtuelle permet d'accéder à toute la mémoire physique. Aujourd'hui, il existe des serveurs 64 bits. Ceux-ci utilisent des adresses virtuelles de 64 bits, mais aucun ordinateur ne contient :term:`2^64` bytes de mémoire. Par exemple, un serveur disposant de 128 GBytes de mémoire physique pourrait se contenter d'utiliser des adresses physiques de 37 bits. Dans ce cas, la mémoire virtuelle donne l'illusion qu'il est possible d'accéder à plus de mémoire que celle qui est réellement disponible. D'un autre côté, il est aussi possible de construire des serveurs qui utilisent des adresses virtuelles de 32 bits, mais disposent de plus de 4 GBytes de mémoire RAM. Dans ce cas, les adresses physiques pourront être plus longues que les adresses réelles. Quelles que soient les longueurs respectives des adresses virtuelles et physiques, la table des pages, sous le contrôle du système d'exploitation, permettra de réaliser efficacement les traductions entre les adresses virtuelles et les adresses physiques. - -Pour bien comprendre la traduction des adresses virtuelles en utilisant la table des pages, considérons un système imaginaire qui utilise des adresses virtuelles encodées sur 7 bits et des adresses physiques qui sont elles encodées sur 6 bits. La table des pages correspondante est reprise dans le tableau ci-dessous. Comme dans la figure précédente, la ligne du bas du tableau est relative à la page `0`. - -======== ======= -Validité Adresse -======== ======= -true 00 -false - -true 11 -false - -false - -false - -true 01 -true 10 -======== ======= - -Cette mémoire virtuelle contient quatre pages. La première couvre les adresses physiques allant de ``000000`` à ``001111``, la seconde de ``010000`` à ``011111``, la troisième de ``100000`` à ``101111`` et la dernière de ``110000`` à ``111111``. Les adresses virtuelles elles vont de ``0000000`` à ``1111111``. La traduction s'effectue sur base de la table des pages. Ainsi, l'adresse ``1010001`` correspond à l'octet ``0001`` dans la page virtuelle ``101``. Sur base de la table des pages, cette page se trouve en mémoire RAM (son bit de validité est vrai) et elle démarre à l'adresse ``110000``. L'adresse virtuelle ``1010001`` est donc traduite en l'adresse réelle ``110001``. L'adresse virtuelle ``0110111`` correspond elle à une page qui n'est pas actuellement en mémoire RAM puisque le bit de validité correspondant à la page ``011`` est faux. - -Si on analyse la table des pages ci-dessus, on peut remarquer que la page contenant les adresses virtuelles les plus hautes se trouve dans la zone mémoire avec les adresses physiques les plus basses. Inversement, la page qui est en mémoire RAM à l'adresse la plus élevée correspond à des adresses virtuelles qui se trouvent au milieu de l'espace d'adressage. Ce découplage entre l'adresse virtuelle et la localisation physique de la page en mémoire est un des avantages importants de la mémoire virtuelle. - -La mémoire virtuelle a aussi un rôle important à jouer lorsque plusieurs processus s'exécutent simultanément. -Comme indiqué ci-dessus, l'adresse de la table des pages est stockée dans un des registre du processeur. L'utilisation de ce registre permet d'avoir une table des pages pour chaque processus. Pour cela, il suffit qu'une zone de mémoire RAM soit réservée pour chaque processus et que le système d'exploitation y stocke la table des pages du processus. Lors d'un changement de contexte, le système d'exploitation modifie le registre de table des pages de façon à ce qu'il pointe vers la table des pages du processus qui s'exécute. Ce mécanisme est particulièrement utile et efficace. - -A titre d'exemple, considérons un système imaginaire utilisant des adresses virtuelles sur 6 bits et des adresses physiques sur 8 bits. Deux processus s'exécutent sur ce système et ils utilisent chacun trois pages, deux pages dans le bas de l'espace d'adressage virtuel qui correspondent à leur segment de code et une page dans le haut de l'espace d'adressage virtuel qui correspond à leur pile. Le premier tableau ci-dessous présente la table des pages du processus ``P1``. - -======== ======= -Validité Adresse -======== ======= -true 0011 -false - -true 1001 -true 1000 -======== ======= - -Le processus ``P2`` a lui aussi sa table des pages. Celle-ci pointe vers des adresses physiques qui sont différentes de celle utilisées par le processus ``P1``. L'utilisation d'une table des pages par processus permet à deux processus distincts d'utiliser les mêmes adresses virtuelles. - -======== ======= -Validité Adresse -======== ======= -true 0000 -false - -true 1111 -true 1110 -======== ======= - -Lorsque le processus ``P1`` s'exécute, c'est sa table des pages qui est utilisée par le processeur pour la traduction des adresses virtuelles en adresses physiques. Ainsi, l'adresse ``011101`` est traduite en l'adresse ``10011101``. Par contre, lorsque le processus ``P2`` s'exécuté, cette adresse ``011101`` est traduite grâce à la table des pages de ce processus en l'adresse ``11111101``. - -.. note:: Performance de la mémoire virtuelle - - Grâce à son mécanisme d'indirection entre les adresses virtuelles et les adresses physiques, la mémoire virtuelle permet de nombreuses applications comme nous le verrons dans les sections qui suivent. Cependant, la mémoire virtuelle peut avoir un impact important au niveau des performances des accès à une donnée en mémoire. Pour cela, il est intéressant d'analyser en détails ce qu'il se passe lors de chaque accès à la mémoire. Pour accéder à une donnée en mémoire, le :term:`MMU` doit d'abord consulter la table des pages pour traduire l'adresse virtuelle en une adresse physique correspondante. Ce n'est qu'après avoir obtenu cette adresse physique que le processeur peut effectuer l'accès à la mémoire RAM. En pratique, l'utilisation d'une table des pages a comme conséquence de doubler le temps d'accès à une donnée en mémoire. Lorsque la mémoire virtuelle a été inventée, ce doublement du temps d'accès à la mémoire n'était pas une limitation car les mémoires RAM étaient nettement plus rapides que les processeurs. Aujourd'hui, la situation est complètement inversée puisque les processeurs sont déjà fortement ralentis par les temps d'accès à la mémoire RAM. Doubler ce temps d'accès aurait un impact négatif sur les performances des processeurs. Pour faire face à ce problème, les processeurs actuels disposent tous d'un :term:`Translation Lookaside Buffer` (:term:`TLB`). Ce :term:`TLB` est en fait une sorte de :term:`mémoire cache` qui permet de stocker dans une mémoire rapide se trouvant sur le processeur certaines lignes de la :term:`table des pages`. Les détails de gestion du :term:`TLB` sortent du cadre de ce cours [HennessyPatterson]_. Grâce à l'utilisation du :term:`TLB`, la plupart des traductions des adresses virtuelles en adresses physique peuvent être obtenus sans devoir directement consulter la table des pages. - - -La table des pages d'un processus contrôle les adresses physiques auxquelles le processus a accès. Pour garantir la sécurité d'un système informatique, il faut bien entendu éviter qu'un processus ne puisse modifier lui-même et sans contrôle sa table des pages. Toutes les manipulations de la table des pages ou du registre de table des pages se font sous le contrôle du système d'exploitation. La modification du registre de table des pages est une opération privilégiée qui ne peut être exécutée que par le système d'exploitation. - -En termes de sécurité, une entrée de la table des pages contient également des bits de permission qui sont contrôlés par le système d'exploitation et spécifient quelles opérations peuvent être effectuées sur chaque page. Une entrée de la table des pages contient trois bits de permissions : - - - `R` bit. Ce bit indique si le processus peut accéder en lecture à la page se trouvant en mémoire physique. - - `W` bit. Ce bit indique si le processus peut modifier le contenu de la page se trouvant en mémoire physique - - `X` bit. Ce bit indique si la page contient des instructions qui peuvent être exécutées par le processeur ou des données. - -Ces bits de protection sont généralement fixés par le système d'exploitation. Par exemple, le segment code qui ne contient que des instructions à exécuter pourra être stocké dans des pages avec les bits `R` et `X` mais pas le bit `W` pour éviter que le processus ne modifie les instructions qu'il exécute. Le stack par contre sera placé dans des pages avec les bits `R` et `W` mais pas le bit `X`. Cette technique est utilisée dans les systèmes d'exploitation récents pour éviter qu'un problème de buffer overflow sur le stack ne conduise à l'exécution d'instructions qui ne font pas partie du processus. Le heap peut utiliser les mêmes bits de protection. Enfin, les pages qui n'ont pas été allouées au processus, notamment celles se trouvant entre le heap et le stack auront toutes leurs bits de protection mis à faux. Cela permet au processeur de détecter les accès à de la mémoire qui n'a pas été allouée au processus. Un tel accès provoquera la génération d'une `segmentation fault` et l'envoi du signal correspondant. - -Même si ces bits de protection sont contrôlés par le système d'exploitation, il est parfois utile à un processus de modifier les bits de permissions qui sont associés à certaines de ses pages. Cela peut se faire via l'appel système `mprotect(2)`_. - -.. code-block:: c - - #include <sys/mman.h> - - int mprotect(const void *addr, size_t len, int prot); - -Cet appel système prend trois arguments. Le premier est un pointeur vers le début de la zone mémoire dont il faut modifier les bits de protection. Le second est la longueur de la zone mémoire concernée et le dernier la protection souhaitée. Celle-ci est spécifiée en utilisant les constantes ``PROT_NONE``, ``PROT_READ``, ``PROT_WRITE`` et ``PROT_EXEC`` qui peuvent être combinées en utilisant une disjonction logique. La protection demandée ne peut pas être plus libérale que la protection qui est déjà fixée par le système d'exploitation. Dans ce cas, le système d'exploitation génère un signal ``SIGSEGV``. - - -.. todo:: l'ordre de présentaiton n'est pas le plus appropriée. il faudrait d'abord commencer par expliquer l'utilisation du disque avec des partitions de swap et les stratégies de remplacement de pages et ensuite arriver avec mmap, ce sera plus naturel - -.. _stockage: - -Utilisation des dispositifs de stockage ---------------------------------------- - -La mémoire virtuelle permet non seulement à des pages d'un processus d'être placées à différents endroits de la mémoire, mais aussi elle permet de combiner la mémoire RAM et les dispositifs de stockage de façon transparente pour les processus. - -.. La section précédente a montré qu'il était possible de mettre en correspondance des fichiers ou des portions de fichiers avec des zones de mémoires dans un processus. En pratique, les interactions entre les dispositifs de stockage et la mémoire sont encore plus fortes que cela puisque - -Une partie des pages qui composent la mémoire virtuelle peut être stockée sur un dispositif de stockage (disque dur, SSD, ...). En pratique, la mémoire RAM peut jouer le rôle d'une sorte de mémoire cache pour la mémoire virtuelle. Les pages qui sont le plus fréquemment utilisées sont placées en mémoire RAM par le système d'exploitation. Les pages les moins utilisées sont quant à elles placées sur un dispositif de stockage et ramenées en mémoire RAM lorsqu'elles sont utilisées par le processeur. - -Pour bien comprendre cette utilisation de la mémoire virtuelle, il nous faut revenir à la table des pages. Celle-ci comprend autant d'entrées qu'il y a de pages dans l'espace d'adressage d'un processus. Nous avons vu qu'une entrée de cette table pouvait être structurée comme dans la figure ci-dessous. - -.. figure:: /MemoireVirtuelle/fig/entreeTable.png - :align: center - :scale: 60 - - Entrée de la table des pages - -Le bit de validité indique si la page est présente en mémoire RAM ou non. Lorsque la page est présente en mémoire RAM, les bits de poids faible de l'entrée de la table des pages contiennent l'adresse physique de la page en mémoire RAM. Lorsque le bit de validité a comme valeur `faux`, cela signifie que la page n'existe pas (elle n'a jamais été créée) ou qu'elle est actuellement stockée sur un dispositif de stockage. Si la page n'existe pas, aucun de ses bits de permission n'aura comme valeur `vrai` et tout accès à cette page provoquera une `segmentation fault`. Si par contre la page existe mais se trouve sur un dispositif de stockage, alors l'information de localisation pointera vers une structure de données qui est maintenue par le système d'exploitation et contient la localisation physique de la donnée sur un dispositif de stockage. - -Schématiquement, ces informations de localisation des pages peuvent être de deux types. Lorsqu'un dispositif de stockage, ou une partition d'un tel dispositif, est dédié au stockage de pages de la mémoire virtuelle, alors la localisation d'une page est composée de l'identifiant du dispositif et du numéro du secteur sur le dispositif. Ce sera le cas lorsque par exemple une :term:`partition de swap` est utilisée. Sous Linux, le fichier ``/proc/swaps`` contient la liste des partitions de swap qui sont utilisées pour stocker les pages de la mémoire virtuelle avec leur type, leur taille et leur utilisation. Une telle partition de swap peut être créée avec l'utilitaire `mkswap(8)`_. Elle est activée en exécutant la commande `swapon(8)`_. Celle-ci est généralement lancée automatiquement lors du démarrage du système. - - -.. code-block:: console - - $ cat /proc/swaps - Filename Type Size Used Priority - /dev/sda3 partition 8193140 444948 -1 - -Outre les partitions de swap, il est également possible de stocker des pages de la mémoire virtuelle dans des fichiers. Dans ce cas, la localisation d'une page comprend le dispositif, l':term:`inode` du fichier et l'offset à partir duquel la page est accessible dans le fichier. En pratique, les partitions de swap sont un peu plus rapides que les fichiers de swap car les secteurs qui composent une telle partition sont contigus, ce qui n'est pas toujours le cas avec un fichier de swap. D'un autre côté, il est plus facile d'ajouter ou de retirer des fichiers de swap que des partitions de swap sur un dispositif de stockage. En pratique, les deux techniques peuvent être utilisées. - -.. todo:: change -.. Comme nous l'avons vu dans la section précédente, il est également possible avec l'appel système `mmap(2)`_ de faire correspondre une page en mémoire avec des données se trouvant dans un fichier sur un dispositif de stockage. Dans ce cas, la localisation de la page est spécifiée avec l'identifiant du dispositif, l'inode du fichier et la position du premier octet de la page à l'intérieur de ce fichier. `mmap(2)`_ utilise donc la même technique que celle utilisée par les fichiers de swap. - -A ce stade, il est utile d'analyser à nouveau le fonctionnement de la mémoire virtuelle. En toute généralité, celle-ci est découpée en pages et comprend une mémoire RAM et un ou plusieurs dispositifs de stockage. Pour simplifier la présentation, nous supposons qu'un seul disque dur est utilisé. - -.. figure:: /MemoireVirtuelle/fig/memoireVirtuelle.png - :align: center - :scale: 60 - - La mémoire virtuelle - - -Les processus utilisent des adresses virtuelles pour représenter les positions des données et des instructions en mémoire virtuelles. Ces adresses virtuelles sont donc utilisées par le CPU chaque fois qu'il doit charger ou sauvegarder une donnée ou une instruction en mémoire. Comme nous l'avons vu, le :term:`MMU` permet de traduire les adresses virtuelles en adresses réelles. Pour des raisons de performance, le :term:`MMU` est intégré directement sur le processeur et il comprend un :term:`TLB` qui sert de cache pour les entrées de la table des pages du processus qui est en train de s'exécuter. - -Considérons une opération de lecture faite par le CPU. Pour réaliser cette opération, le CPU fournit l'adresse virtuelle au :term:`MMU`. Celui-ci va consulter le :term:`TLB` pour traduire l'adresse virtuelle demandée. Cette traduction peut nécessiter différentes opérations. Supposons que l'entrée de la table des pages demandées se trouve dans le :term:`TLB`. - - - Si le :term:`bit de validité` de la page est `vrai`, la page demandée se situe en mémoire RAM. Dans ce cas, le :term:`MMU` vérifie via les bits de permissions si l'accès demandé (dans ce cas une lecture, mais un raisonnement similaire est valable pour une écriture ou le chargement d'une instruction) est valide. - - - Si l'accès est autorisé, le :term:`MMU` retourne l'adresse réelle et le processeur accède aux données. - - Si l'accès n'est pas autorisé, le processeur génère une interruption. Le processus ayant tenté d'accéder à une zone de mémoire ne faisant pas partie de son espace d'adressage virtuel, c'est au système d'exploitation de réagir. Celui-ci enverra un signal segmentation fault, ``SIGSEGV``, au processus qui a tenté cet accès. - - - Si le :term:`bit de validité` de la page est `faux`, la page demandée ne se trouve pas en mémoire RAM. Deux cas de figure sont possibles : - - - les bits de permission ne permettent aucun accès à la page. Dans ce cas, la page n'existe pas et le :term:`MMU` va générer une interruption qui va provoquer l'exécution d'une routine de traitement d'interruption du système d'exploitation. Lors du traitement de cette opération, le noyau va envoyer un signal segmentation fault au processus qui a tenté cet accès. - - - les bits de permission permettent l'accès à la page. On parle dans ce cas de :term:`page fault`, c'est-à -dire qu'une page nécessaire à l'exécution du processus n'est pas disponible en mémoire RAM. Vu les temps d'accès et la complexité d'accéder à une page sur un disque dur (via une partition, un fichier de swap ou un fichier normal), le :term:`MMU` ne peut pas accéder directement à la donnée sur le disque dur. Le :term:`MMU` va donc générer une interruption qui va forcer l'exécution d'une routine de traitement d'interruption par le noyau. Cette routine va identifier la page manquante et préparer son transfert du disque dur vers la mémoire. Ce transfert peut durer plusieurs dizaines de millisecondes, ce qui est un temps très long par rapport à l'exécution d'instructions par le processeur. Tant que cette page n'est pas disponible en mémoire RAM, le processus ne peut pas continuer son exécution. Il passe dans l'état bloqué et le noyau effectue un changement de contexte pour exécuter un autre processus. Lorsque la page manquante aura été rapatriée depuis le disque dur en mémoire RAM, le noyau pourra relancer le processus qu'il avait bloqué afin de retenter l'accès mémoire qui vient d'échouer. - -Durant son exécution, un système doit pouvoir gérer des pages qui se trouvent en mémoire RAM et des pages qui sont stockées sur le disque dur. Lorsque la mémoire RAM est entièrement remplies de pages, il peut être nécessaire d'y libérer de l'espace mémoire en déplaçant des pages vers un des dispositifs de stockage. C'est le rôle des algorithmes de remplacement de pages. - -.. _remplacement: - -Stratégies de remplacements de pages ------------------------------------- - -C'est le système d'exploitation qui prend en charge les transferts de pages entre les dispositifs de stockage et la mémoire. Tant que la mémoire RAM n'est pas remplie, ces transferts sont simples, il suffit de ramener une ou plusieurs pages du dispositif de stockage vers la mémoire RAM. En général, le système d'exploitation cherchera à exploiter le principe de localité lors de ces transferts. Lorsqu'une page manque en mémoire RAM, le noyau programmera le chargement de cette page, mais aussi d'autres pages du même processus ayant des adresses proches. - -Lorsque la mémoire RAM est remplie et qu'il faut ramener une page depuis un dispositif de stockage, le problème est plus délicat. Pour pouvoir charger cette nouvelle page en mémoire RAM, le système d'exploitation doit libérer de la mémoire. Pour cela, il doit implémenter une :term:`stratégie de remplacement de pages` en mémoire. Cette stratégie définit quelle page doit être préférentiellement retirée de la mémoire RAM et placée sur le dispositif de stockage. Différentes stratégies sont possibles. Elles résultent en général d'un compromis entre la quantité d'information de contrôle qui est stockée dans la table des pages et les performances de la stratégie de remplacement des pages. - -Une première stratégie de remplacement de pages pourrait être de sauvegarder les identifiants des pages dans une :term:`file FIFO`. Chaque fois qu'une page est créée par le noyau, son identifiant est placé à la fin de la :term:`file FIFO`. Lorsque la mémoire est pleine et qu'une page doit être retirée de la mémoire RAM, le noyau pourrait choisir la page dont l'identifiant se trouve en tête de la :term:`file FIFO`. Cette stratégie a l'avantage d'être simple à implémenter, mais remettre sur disque la page la plus anciennement créée n'est pas toujours la solution la plus efficace du point de vue des performances. En effet, cette page peut très bien être une des pages les plus utilisées par le processeur. Si elle est remise sur le disque, elle risque de devoir être récupérée peu de temps après. - -Au niveau des performances, la meilleure stratégie de remplacement de pages serait de sauvegarder sur le disque dur les pages qui seront utilisées par le processeur d'ici le plus de temps possible. Malheureusement, cette stratégie nécessite de prévoir le futur, une fonctionnalité qui n'existe pas dans les systèmes d'exploitation actuels... Une solution alternative serait de comptabiliser les accès aux différentes pages et de sauvegarder sur disque les pages qui ont été les moins utilisées. Cette solution est séduisante du point de vue théorique car en disposant de statistiques sur l'utilisation des pages, le système d'exploitation devrait pouvoir être capable de mieux prédire les pages qui seront nécessaires dans le futur et les conserver en mémoire RAM. Du point de vue de l'implémentation par contre, cette solution est loin d'être réaliste. En effet, pour maintenir un compteur du nombre d'accès à une page, il faut consommer de la mémoire supplémentaire dans chaque entrée de la table des pages. Mais il faut aussi que le :term:`TLB` puisse incrémenter ce compteur lors de chaque accès à une de ces entrées. Cela augmente inutilement la complexité du :term:`TLB`. - -Stocker dans le :term:`TLB` l'instant du dernier accès à une page de façon à pouvoir déterminer quelles sont les pages auxquelles le système a accédé depuis le plus longtemps est une autre solution séduisante d'un point de vue théorique. Du point de vue de l'implémentation, c'est loin d'être facilement réalisable. Tout d'abord, pour que cet instant soit utile, il faut probablement disposer d'une résolution d'une milliseconde voire mieux. Une telle résolution consommera au moins quelques dizaines de bits dans chaque entrée de la table des pages. En outre, le :term:`TLB` devra pouvoir mettre à jour cette information lors de chaque accès. - -Face à ces difficultés d'implémentation, la plupart des stratégies de remplacement de pages s'appuient sur deux bits qui se trouvent dans chaque entrée de la table des pages [HennessyPatterson]_. Il est relativement facile de supporter ces deux bits dans une implémentation du :term:`TLB` et leur présence n'augmente pas de façon significative la mémoire occupée par une entrée de la table des pages. - - -.. figure:: /MemoireVirtuelle/fig/entreeComplete.png - :align: center - :scale: 60 - - Une entrée complète de la table des pages - - -Outre les bits de validité et de permission, une entrée de la table des pages contient les bits de contrôle suivants : - - - le :term:`bit de référence` est mis à vrai par le :term:`MMU` dans le :term:`TLB` à chaque accès à une donnée se trouvant dans la page correspondante, que cet accès soit en lecture ou en écriture - - le :term:`bit de modification` ou :term:`dirty bit` est mis à vrai par le :term:`MMU` chaque fois qu'une opération d'écriture est réalisée dans cette page. - -Ces deux bits sont mis à jour par le :term:`MMU` à l'intérieur du :term:`TLB`. Lorsqu'une entrée de la table des pages est retirée du :term:`TLB` pour être remise en mémoire, que ce soit à l'occasion d'un changement de contexte ou parce que le :term:`TLB` est plein, les valeurs de ces deux bits sont recopiées dans l'entrée correspondante de la table des pages. En somme, le :term:`TLB` fonctionne comme une cache en :term:`write-back` pour ces deux bits de contrôle. - -Les bits de référence et de modification sur utilisés par la plupart des algorithmes de remplacement de pages. Le bit de référence est généralement utilisé par le système d'exploitation pour déterminer quelles sont les pages auxquelles un processus accède actuellement. Pour cela, le noyau va régulièrement remettre à `faux` les bits de validité des entrées des tables de pages. Lorsque une entrée de la table des pages est chargée dans le :term:`TLB` suite à un :term:`page fault`, son :term:`bit de référence` est mis à `vrai`. Il en va de même chaque fois que le processeur accède à une donnée dans cette page. - -La stratégie de remplacement utilisant une :term:`file FIFO` que nous avons mentionné précédemment peut être améliorée en utilisant le :term:`bit de référence`. Plutôt que de remettre sur disque la page dont l'identifiant est en tête de la file il suffit de regarder son :term:`bit de référence`. Si celui-ci a la valeur `faux`, la page n'a pas été utilisée récemment et peut donc être retirée de la mémoire RAM. Sinon, le :term:`bit de référence` est remis à `faux` et l'identifiant de la page est replacé en fin de file. L'algorithme de remplacement de page passe ensuite à la page suivante dans la file et continue jusqu'à trouver suffisamment de pages ayant leur bit de référence mis à `faux`. - -Une autre stratégie est de combiner le :term:`bit de référence` et le :term:`dirty bit`. Dans ce cas, le noyau du système d'exploitation va régulièrement remettre à la valeur `faux` tous les bits de référence (par exemple toutes les secondes). Lorsque la mémoire RAM est pleine et qu'il faut libérer de l'espace mémoire pour charger de nouvelles pages, l'algorithme de remplacement de pages va grouper les pages en mémoire en quatre classes. - - 1. La première classe comprend les pages dont le :term:`bit de référence` et le :term:`bit de modification` ont comme valeur `faux`. Ces pages n'ont pas été utilisées récemment et sont identiques à la version qui est déjà stockée sur disque. Elles peuvent donc être retirée de la mémoire RAM sans nécessiter de transfert vers le disque. - - 2. La deuxième classe comprend les pages dont le :term:`bit de référence` a comme valeur `faux` mais le :term:`bit de modification` a comme valeur `vrai`. Ces pages n'ont pas été utilisées récemment, mais doivent être transférées vers le disque avant d'être retirées de la mémoire RAM. - - 3. La troisième classe comprend les pages dont le :term:`bit de référence` a comme valeur `vrai` mais le :term:`bit de modification` a comme valeur `faux`. Ces pages ont été utilisées récemment mais peuvent être retirées de la mémoire RAM sans nécessiter de transfert vers le disque. - - 4. La dernière classe comprend les pages dont les bits de référence et de modification ont comme valeur `vrai`. Ces pages ont étés utilisées récemment et il faut les transférer vers le disque avant de les retirer de la mémoire RAM. - -Si l'algorithme de remplacement de pages doit retirer des pages de la mémoire RAM, il commencera par retirer des pages de la première classe, et ensuite de la deuxième, ... - -Des algorithmes plus performants ont été proposés et sont utilisés en pratique. Une description détaillée de ces algorithmes sort du cadre de ce cours d'introduction mais peut être trouvée dans un livre consacré aux systèmes d'exploitation comme [Tanenbaum+2009]_. - -.. note:: Swapping et pagination - - Grâce à l'utilisation de la mémoire virtuelle qui est découpée en pages, il est possible de stocker certaines parties de processus sur un dispositif de stockage plutôt qu'en mémoire RAM. Cette technique de :term:`pagination` permet au système d'exploitation de gérer efficacement la mémoire et de réserver la mémoire RAM aux parties de processus qui sont nécessaires à leur exécution. Grâce à la découpe en pages, il est possible de transférer de petites parties d'un processus temporairement sur un dispositif de stockage. Aujourd'hui, la :term:`pagination` est très largement utilisée, mais ce n'est pas la seule technique qui permette de placer temporairement l'espace mémoire utilisé par un processus sur disque. Le :term:`swapping` est une technique plus ancienne mais qui est encore utilisée en pratique. Le :term:`swapping` est plus radical que la :term:`pagination` puisque cette technique permet au noyau de sauvegarder sur disque la quasi totalité de la mémoire utilisée par un processus. Le noyau fera appel au swapping lorsque la mémoire RAM est surchargée et pour des processus qui sont depuis longtemps bloqués par exemple en attente d'un opération d'entrée/sortie. Lorsque le noyau manque de mémoire, il est plus efficace de sauvegarder un processus complet plutôt que de transférer des pages de différents processus. Un tel processus swappé sera réactivé et ramené en mémoire par le noyau lorsqu'il repassera dans l'état `Running`, par exemple suite à la réussite d'une opération d'entrée/sortie. - - - -Utilisations de la mémoire virtuelle ------------------------------------- - -Comme nous l'avons vu précédemment, la mémoire virtuelle est découpée en pages et elle permet de découpler les adresses utilisées par les processus des adresses physiques. Grâce à la table des pages, il est possible de placer les pages d'un processus à n'importe quel endroit de la mémoire RAM. Mais la mémoire virtuelle permet également d'interagir avec les dispositifs de stockage comme si ils faisaient partie de la mémoire accessible au processus. - - -.. _mmap: - -Fichiers mappés en mémoire --------------------------- - -Lorsqu'un processus Unix veut lire ou écrire des données dans un fichier, il utilise en général les appels systèmes `open(2)`_, `read(2)`_, `write(2)`_ et `close(2)`_ directement ou à travers une librairie de plus haut niveau comme la libraire d'entrées/sorties standard. Ce n'est pas la seule façon pour accéder à des données sur un dispositif de stockage. Grâce à la mémoire virtuelle, il est possible de placer le contenu d'un fichier ou d'une partie de fichier dans une zone de la mémoire du processus. Cette opération peut être effectuée en utilisant l'appel système `mmap(2)`_. Cet appel système permet de rendre des pages d'un fichier accessibles à travers la table des pages du processus comme illustré dans la figure ci-dessous. - - -.. figure:: /MemoireVirtuelle/fig/fichierMappe.png - :align: center - :scale: 60 - - Fichiers mappés en mémoire - - - -.. code-block:: c - - #include <sys/mman.h> - - void *mmap(void *addr, size_t length, int prot, int flags, - int fd, off_t offset); - - -L'appel système `mmap(2)`_ prend six arguments, c'est un des appels systèmes qui utilise le plus d'arguments. Il permet de rendre accessible une portion d'un fichier via la mémoire d'un processus. Le cinquième argument est le descripteur du fichier qui doit être mappé. Celui-ci doit avoir été préalablement ouvert avec l'appel système `open(2)`_. Le sixième argument spécifie l'offset à partir duquel le fichier doit être mappé, ``0`` correspondant au début du fichier. Le premier argument est l'adresse à laquelle la première page du fichier doit être mappée. Généralement, cet argument est mis à ``NULL`` de façon à laisser le noyau choisir l'adresse la plus appropriée. Si cette adresse est spécifiée, elle doit être un multiple de la taille des pages. Le deuxième argument est la longueur de la zone du fichier qui doit être mappée en mémoire. Le troisième argument contient des drapeaux qui spécifient les permissions d'accès aux données mappées. Cet argument peut soit être ``PROT_NONE``, ce qui indique que la page est inaccessible soit une permission classique : - - - ``PROT_EXEC``, les pages mappées contiennent des instructions qui peuvent être exécutées - - ``PROT_READ``, les pages mappées contiennent des données qui peuvent être lues - - ``PROT_WRITE``, les pages mappées contiennent des données qui peuvent être modifiées - -Ces drapeaux peuvent être combinés avec une disjonction logique. Le quatrième argument est un drapeau qui indique comment les pages doivent être mappées en mémoire. Ce drapeau spécifie comment un fichier qui est mappé par deux ou plusieurs processus doit être traité. Deux drapeaux sont possibles : - - - ``MAP_PRIVATE``. Dans ce cas, les pages du fichier sont mappées dans chaque processus, mais si un processus modifie une page, cette modification n'est pas répercutée aux autres processus qui ont mappé la même page de ce fichier. - - ``MAP_SHARED``. Dans ce cas, plusieurs processus peuvent accéder et modifier la page qui est mappée en mémoire. Lorsqu'un processus modifie le contenu d'une page, la modification est visible aux autres processus. Par contre, le fichier qui est mappé en mémoire n'est modifié que lorsque le noyau du système d'exploitation décide d'écrire les données modifiées sur le dispositif de stockage. Ces écritures dépendent de nombreux facteurs, dont la charge du système. Si un processus veut être sûr des écritures sur disque des modifications qu'il a fait à un fichier mappé un mémoire, il doit exécuter l'appel système `msync(2)`_ ou supprimer le mapping via `munmap(2)`_. - -Ces deux drapeaux peuvent dans certains cas particuliers être combinés avec d'autres drapeaux définis dans la page de manuel de `mmap(2)`_. - -Lorsque `mmap(2)`_ réussit, il retourne l'adresse du début de la zone mappée en mémoire. En cas d'erreur, la constante ``MAP_FAILED`` est retournée et ``errno`` est mis à jour en conséquence. - -L'appel système `msync(2)`_ permet de forcer l'écriture sur disque d'une zone mappée en mémoire. Le premier argument est l'adresse du début de la zone qui doit être écrite sur disque. Le deuxième argument est la longueur de la zone qui doit être écrite sur le disque. Enfin, le dernier contient un drapeau qui spécifie comment les pages correspondantes doivent être écrites sur le disque. La drapeau ``MS_SYNC`` indique que l'appel `msync(2)`_ doit bloquer tant que les données n'ont pas été écrites. Le drapeau ``MS_ASYNC`` indique au noyau que l'écriture doit être démarrée, mais l'appel système peut se terminer avant que toutes les pages modifiées aient été écrites sur disque. - -.. code-block:: c - - #include <sys/mman.h> - int msync(void *addr, size_t length, int flags); - - -Lorsqu'un processus a fini d'utiliser un fichier mappé en mémoire, il doit d'abord supprimer le mapping en utilisant l'appel système `munmap(2)`_. Cet appel système prend deux arguments. Le premier doit être un multiple de la taille d'une page [#ftaillepage]_. Le second est la taille de la zone pour laquelle le mapping doit être retiré. - -.. code-block:: c - - #include <sys/mman.h> - - int munmap(void *addr, size_t length); - - -A titre d'exemple d'utilisation de `mmap(2)`_ et `munmap(2)`_, le programme ci-dessous implémente l'équivalent de la commande `cp(1)`_. Il prend comme arguments deux noms de fichiers et copie le contenu du premier dans le second. La copie se fait en mappant le premier fichier entièrement en mémoire et en utilisant la fonction `memcpy(3)`_ pour réaliser la copie. Cette solution fonctionne avec de petits fichiers. Avec de gros fichiers, elle n'est pas très efficace car tout le fichier doit être mappé en mémoire. - -.. literalinclude:: /MemoireVirtuelle/src/cp2.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - - - -.. _shmem: - -Mémoire partagée ----------------- - -Dans les exemples précédents, nous avons supposé qu'il existait une correspondance biunivoque entre chaque page de la mémoire virtuelle et une page en mémoire RAM. C'est souvent le cas, mais ce n'est pas nécessaire. Il est tout à fait possible d'avoir plusieurs pages de la mémoire virtuelle qui appartiennent à des processus différents mais pointent vers la même page en mémoire physique. Ce partage d'une même page physique entre plusieurs pages de la mémoire virtuelle a plusieurs utilisations en pratique. - -Revenons aux threads POSIX. Lorsqu'un processus crée un nouveau thread d'exécution, celui-ci a un accès complet au segment code, aux variables globales et au heap du processus. Par contre, le thread et le processus ont chacun un stack qui leur est propre. Comme nous l'avons indiqué lors de la présentation des threads, ceux-ci peuvent être implémentés en utilisant une librairie ou avec l'aide du système d'exploitation. Du point de vue de la mémoire, lorsqu'une librairie telle que :term:`gnuth` est utilisée pour créer un thread, la librairie réserve une zone de mémoire sur le heap pour ce thread. Cette zone mémoire contient le stack qui est spécifique au thread. Celui-ci a été alloué en utilisant `malloc(3)`_ et a généralement une taille fixe. Avec la mémoire virtuelle, il est possible d'implémenter les threads plus efficacement avec l'aide du système d'exploitation. Lors de la création d'un thread, celui-ci va tout d'abord créer une nouvelle table des pages pour le thread. Celle-ci sera initialisée en copiant toutes les entrées de la table des pages du processus, sauf celles qui correspondent au stack. De cette façon, le processus `père` et le thread auront accès aux mêmes segments de code, aux même variables globales et au même heap. Toute modification faite par le processus père à une variable globale ou à une information stockée sur le heap sera immédiatement accessible au thread et inversement. L'entrée de la table des pages du thread correspondant à son stack pointera vers une page qui sera spécifique au thread. Cette page aura été initialisée par le système d'exploitation avec l'argument passé par le processus à la fonction `pthread_create(3)`_. La figure ci-dessous illustre ce partage de table des pages après la création d'un thread. - -.. figure:: /MemoireVirtuelle/fig/tablePages.png - :align: center - :scale: 60 - - Tables des pages après création d'un thread - -.. todo:: mieux montrer comment cela fonctionne en la représentant en mémoire - -En exploitant intelligemment la table des pages, il est également possible de permettre à deux processus distincts d'avoir accès à la même zone de mémoire physique. Si deux processus peuvent accéder simultanément à la même zone de mémoire, ils peuvent l'utiliser pour communiquer plus efficacement qu'en utilisant des pipes par exemple. Cette technique porte le nom de :term:`mémoire partagée`. Elle nécessite une modification de la table des pages des processus qui veulent partager une même zone mémoire. Pour comprendre le fonctionnement de cette :term:`mémoire partagée`, considérons le cas de deux processus : `P1` et `P2` qui veulent pouvoir utiliser une page commune en mémoire. Pour cela, plusieurs interactions entre les processus et le système d'exploitation sont nécessaires comme nous allons le voir. - -Avant de permettre à deux processus d'accéder à la même page en mémoire physique, il faut d'abord se poser la question de l'origine de cette page physique. Deux solutions sont possibles. La première est de prendre cette page parmi les pages qui appartiennent à l'un des processus, par exemple `P1`. Lorsque la page est partagée, le système d'exploitation peut modifier la table des pages du processus `P2` de façon à lui permettre d'y accéder. La seconde est que le noyau du système d'exploitation fournisse une nouvelle page qui pourra être partagée. Cette page "appartient" au noyau mais celui-ci la rend accessible aux processus `P1` et `P2` en modifiant leurs tables des pages. Linux utilise la seconde technique. Elle a l'avantage de permettre un meilleur contrôle par le système d'exploitation du partage de pages entre différents processus. De plus, lorsqu'une zone de mémoire partagée a été créée via le système d'exploitation, elle survit à la terminaison de ce processus. Une mémoire partagée créée par un processus peut donc être utilisée par d'autres processus. - -Sous Linux, la mémoire partagée peut s'utiliser via les appels systèmes `shmget(2)`_, `shmat(2)`_ et `shmdt(2)`_. L'appel système `shmget(2)`_ permet de créer un segment de mémoire partagée. Le premier argument de `shmget(2)`_ est une clé qui identifie le segment de mémoire partagée. Cette clé est en pratique encodée sous la forme d'un entier qui identifie le segment de mémoire partagée. Elle sert d'identifiant du segment de mémoire partagée dans le noyau. Un processus doit connaître la clé qui identifie un segment de mémoire partagée pour pouvoir y accéder. Le deuxième argument de `shmget(2)`_ est la taille du segment. En pratique, celle-ci sera arrondie au multiple entier supérieur de la taille d'une page. Enfin, le troisième argument sont des drapeaux qui contrôlent la création du segment et les permissions qui y sont associées. - -.. code-block:: c - - #include <sys/ipc.h> - #include <sys/shm.h> - int shmget(key_t key, size_t size, int shmflg); - -L'appel système `shmget(2)`_ retourne un entier qui identifie le segment de mémoire partagée à l'intérieur du processus si il réussit et ``-1`` sinon. Il peut être utilisé de deux façons. Un processus peut appeler `shmget(2)`_ pour créer un nouveau segment de mémoire partagée. Pour cela, il choisit une clé unique qui identifie ce segment et utilise le drapeau ``IPC_CREAT``. Celui-ci peut être combiné avec les drapeaux qui sont supportés par l'appel système `open(2)`_. Ainsi, le fragment de code ci-dessous permet de créer une page de mémoire partagée qui a ``1252`` comme identifiant et est accessible en lecture et en écriture par tous les processus qui appartiennent au même utilisateur ou au même groupe que le processus courant. Si cet appel à `shmget(2)`_ réussit, le segment de mémoire est initialisé à la valeur 0. - -.. code-block:: c - - key_t key=1252; - int shm_id = shmget(key, 4096, IPC_CREAT | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP ); - if (shm_id == -1) { - perror("shmget"); - exit(EXIT_FAILURE); - } - -La fonction `shmget(2)`_ peut aussi être utilisée par un processus pour obtenir l'autorisation d'accéder à un segment de mémoire partagée qui a été créé par un autre processus. Dans ce cas, le drapeau ``IPC_CREAT`` n'est pas passé en argument. - -.. todo:: question IPC_EXCL -.. todo:: question peut-ton avoir un processus qui l'ouvre en read/write et l'autre en read ? - -Il est important de noter que si l'appel à `shmget(2)`_ réussit, cela indique que le processus dispose des permissions pour accéder au segment de mémoire partagée, mais à ce stade il n'est pas accessible depuis la table des pages du processus. Cette modification à la table des pages du processus se fait en utilisant `shmat(2)`_. Cet appel système permet d'attacher un segment de mémoire partagée à un processus. Il prend comme premier argument l'identifiant du segment de mémoire retourné par `shmget(2)`_. Le deuxième argument est un pointeur vers la zone mémoire via laquelle le segment doit être accessible dans l'espace d'adressage virtuel du processus. Généralement, c'est la valeur ``NULL`` qui est spécifiée comme second argument et le noyau choisit l'adresse à laquelle le segment de mémoire est attaché dans le processus. Il est aussi possible de spécifier une adresse dans l'espace d'adressage du processus. Le troisième argument permet, en utilisant le drapeau ``SHM_RDONLY``, d'attacher le segment en lecture seule. `shmat(2)`_ retourne l'adresse à laquelle le segment a été attaché en cas de succès et ``(void *) -1`` en cas d'erreur. - -.. code-block:: c - - #include <sys/types.h> - #include <sys/shm.h> - - void *shmat(int shmid, const void *shmaddr, int shmflg); - - int shmdt(const void *shmaddr); - -L'appel système `shmdt(2)`_ permet de détacher un segment de mémoire qui avait été attaché en utilisant `shmat(2)`_. L'argument passé à `shmdt(2)`_ doit être l'adresse d'un segment de mémoire attaché préalablement par `shmat(2)`_. Lorsqu'un processus se termine, tous les segments auxquels il était attaché sont détachés lors de l'appel à `exit(2)`_. Cela n'empêche pas un programme de détacher correctement tous les segments de mémoire qu'il utilise avant de se terminer. - -Le fragment de code ci-dessous présente comment un segment de mémoire peut être attaché et détaché après avoir été créé avec `shmget(2)`_. - -.. code-block:: c - - void * addr = shmat(shm_id, NULL, 0); - if (addr == (void *) -1) { - perror("shmat"); - exit(EXIT_FAILURE); - } - // ... - if(shmdt(addr)==-1) { - perror("shmdt"); - exit(EXIT_FAILURE); - } - -.. note:: Attention aux pointeurs en mémoire partagée - - Lorsque deux processus partagent le même segment de mémoire partagée, ils ont tous les deux accès directement à la mémoire. Il est ainsi possible de stocker dans cette mémoire un tableau de nombres ou de caractères. Chacun des processus pourra facilement accéder aux données stockées dans le tableau. Il faut cependant être vigilant lorsque l'on veut stocker une structure de données utilisant des pointeurs dans un segment de mémoire partagée. Considérons une liste simplement chaînée. Cette liste peut être implémentée en utilisant une structure contenant la donnée stockée dans l'élément de la liste (par exemple un entier) et un pointeur vers l'élément suivant dans la liste (et ``NULL`` en fin de liste). Imaginons que les deux processus ont attaché le segment de mémoire destiné à contenir la liste avec l'appel `shmat(2)`_ présenté ci-dessus et que l'adresse retournée par `shmat(2)`_ est celle qui correspond au premier élément de la liste. Comme le système d'exploitation choisit l'adresse à laquelle le segment de mémoire partagée est stocké dans chaque processus, l'appel à `shmat(2)`_ retourne potentiellement une adresse différente dans les deux processus. Si ils peuvent tous les deux accéder au premier élément de la liste, il n'en sera pas de même pour le second élément. En effet, si cet élément a été créé par le premier processus, le pointeur contiendra l'adresse du second élément dans l'espace d'adressage virtuel du premier processus. Cette adresse ne correspondra en général pas à celle du second élément dans l'espace d'adressage du second processus. Pour cette raison, il est préférable de ne pas utiliser de pointeurs dans un segment de mémoire partagé. - -.. todo:: exercice, comment implémenter cette liste chaînée - -Comme les segments de mémoire partagée sont gérés par le noyau du système d'exploitation, ils persistent après la terminaison du processus qui les a créé. C'est intéressant lorsque l'on veut utiliser des segments de mémoire partagée pour la communication entre plusieurs processus dont certains peuvent se crasher. Malheureusement, le nombre de segments de mémoire partagée qui peuvent être utilisés sur un système Unix est borné. Lorsque la limite fixée par la configuration du noyau est atteinte, il n'est plus possible de créer de nouveau segment de mémoire partagée. Sous Linux ces limites sont visibles dans les fichiers ``/proc/sys/kernel/shmmni`` (nombre maximum d'identifiants de segments de mémoire partagée) et ``/proc/sys/kernel/shmall`` (taille totale maximale de la mémoire partagée) ou via `shmctl(2)`_. Cet appel système permet de réaliser de nombreuses fonctions de contrôle de la mémoire partagée et notamment la destruction de segments de mémoire partagée qui ont été créés par `shmget(2)`_. `shmctl(2)`_ s'appuie sur les structures de données qui sont maintenues par le noyau pour les segments de mémoire partagée. Lorsqu'un segment de mémoire partagée est crée, le noyau lui associe une structure de type ``shmid_ds``. - -.. code-block:: c - - struct shmid_ds { - struct ipc_perm shm_perm; /* Propriétaire et permissions */ - size_t shm_segsz; /* Taille du segment (bytes) */ - time_t shm_atime; /* Instant de dernier attach */ - time_t shm_dtime; /* Instant de dernier detach */ - time_t shm_ctime; /* Instant de dernière modification */ - pid_t shm_cpid; /* PID du créateur */ - pid_t shm_lpid; /* PID du dernier `shmat(2)`_ / `shmdt(2)`_ */ - shmatt_t shm_nattch; /* Nombre de processus attachés */ - }; - -Ce descripteur de segment de mémoire partagée, décrit dans `shmctl(2)`_ contient plusieurs informations utiles. Son premier élément est une structure qui reprend les informations sur le propriétaire et les permissions qui ont été définies ainsi que la taille du segment. Le descripteur de segment comprend ensuite les instants auxquels les dernières opérations `shmat(2)`_, `shmdt(2)`_ et la dernière modification au segment ont été faites. Le dernier élément contient le nombre de processus qui sont actuellement attachés au segment. L'appel système `shmctl(2)`_ prend trois arguments. Le premier est un identifiant de segment de mémoire partagée retourné par `shmget(2)`_. Le deuxième est une constante qui spécifie une commande. Nous utiliserons uniquement la commande ``IPC_RMID`` qui permet de retirer le segment de mémoire partagée dont l'identifiant est passé comme premier argument. Si il n'y a plus de processus attaché au segment de mémoire partagée, celui-ci est directement supprimé. Sinon, il est marqué de façon à ce que le noyau retire le segment dès que le dernier processus s'en détache. `shmctl(2)`_ retourne ``0`` en cas de succès et ``-1`` en cas d'échec. - -.. code-block:: c - - #include <sys/ipc.h> - #include <sys/shm.h> - - int shmctl(int shmid, int cmd, struct shmid_ds *buf); - -Le segment de mémoire partagée qui a été créé dans les exemples précédents peut être supprimé avec le fragment de code ci-dessous. - -.. code-block:: c - - if (shmctl(shm_id, IPC_RMID, 0) != 0) { - perror("shmctl"); - exit(EXIT_FAILURE); - } - -En pratique, comme le noyau ne détruit un segment de mémoire partagée que lorsqu'il n'y a plus de processus qui y est attaché, il peut être utile de détruire le segment de mémoire partagée juste après avoir effectué l'appel `shmat(2)`_. C'est ce que l'on fera par exemple si un processus père utilise un segment de mémoire partagée pour communiquer avec son processus fils. - - -La mémoire partagée est utilisée non seulement pour permettre la communication entre processus, mais également avec les librairies partagées. Celles-ci sont chargées automatiquement lors de l'exécution d'un processus qui les utilise. Les instructions qui font partie de ces librairies partagées sont chargées dans la même zone mémoire que celle qui est utilisée pour la mémoire partagée. Sous Linux, cette zone mémoire est située entre le heap et le stack comme illustré dans la figure ci-dessous. - -.. figure:: /MemoireVirtuelle/fig/orgMemoire.png - :align: center - :scale: 60 - - Organisation en mémoire d'un processus - - -Lorsqu'il exécute un processus, le noyau maintient dans les structures de données qui sont relatives à ce processus la liste des segments de mémoire partagée et des librairies partagées qu'il utilise. Sous Linux, cette information est visible via le pseudo-système de fichiers ``/proc``. Le fichier ``/proc/PID/maps`` représente de façon textuelle la table des segments de mémoire qui sont partagés dans le processus ``PID``. - - -Un exemple d'un tel fichier `maps` est présenté ci-dessous. Il contient une carte de l'ensemble des pages qui appartiennent à un processus. Le fichier comprend six colonnes. La première est la zone de mémoire virtuelle. La seconde sont les bits de permission avec `r` pour la permission de lecture, `w` pour l'écriture et `x` pour l'exécution. Le dernier bit de permission est à la valeur `p` lorsque la page est en :term:`copy-on-write` et `s` lorsqu'il s'agit d'un segment de mémoire partagé. Les trois dernières colonnes sont relatives au stockage des pages sur le disque. - -.. code-block:: console - - 00400000-00402000 r-xp 00000000 00:1a 49485798 /tmp/a.out - 00602000-00603000 rw-p 00002000 00:1a 49485798 /tmp/a.out - 3d3f200000-3d3f220000 r-xp 00000000 08:01 268543 /lib64/ld-2.12.so - 3d3f41f000-3d3f420000 r--p 0001f000 08:01 268543 /lib64/ld-2.12.so - 3d3f420000-3d3f421000 rw-p 00020000 08:01 268543 /lib64/ld-2.12.so - 3d3f421000-3d3f422000 rw-p 00000000 00:00 0 - 3d3f600000-3d3f786000 r-xp 00000000 08:01 269510 /lib64/libc-2.12.so - 3d3f786000-3d3f986000 ---p 00186000 08:01 269510 /lib64/libc-2.12.so - 3d3f986000-3d3f98a000 r--p 00186000 08:01 269510 /lib64/libc-2.12.so - 3d3f98a000-3d3f98b000 rw-p 0018a000 08:01 269510 /lib64/libc-2.12.so - 3d3f98b000-3d3f990000 rw-p 00000000 00:00 0 - 3d3fa00000-3d3fa83000 r-xp 00000000 08:01 269516 /lib64/libm-2.12.so - 3d3fa83000-3d3fc82000 ---p 00083000 08:01 269516 /lib64/libm-2.12.so - 3d3fc82000-3d3fc83000 r--p 00082000 08:01 269516 /lib64/libm-2.12.so - 3d3fc83000-3d3fc84000 rw-p 00083000 08:01 269516 /lib64/libm-2.12.so - 7f7c57e42000-7f7c57e45000 rw-p 00000000 00:00 0 - 7f7c57e60000-7f7c57e61000 rw-s 00000000 00:04 66355276 /SYSV00000000 - 7f7c57e61000-7f7c57e63000 rw-p 00000000 00:00 0 - 7fffc479c000-7fffc47b1000 rw-p 00000000 00:00 0 [stack] - - -L'exemple ci-dessus présente la carte de mémoire d'un processus qui utilise trois librairies partagées. Le segment de mémoire partagée se trouve aux adresses virtuelles ``7f7c57e60000-7f7c57e61000``. Il est accessible en lecture et en écriture. - -.. _forkmem: - -Implémentation de `fork(2)`_ ----------------------------- - -La mémoire partagée joue un rôle clé dans l'exécution efficace des appels systèmes `fork(2)`_ et `execve(2)`_. Considérons d'abord `fork(2)`_. Cet appel est fondamental sur un système Unix. Au fil des années, les développeurs de Unix et de Linux ont cherché à optimiser ses performances. Une implémentation naïve de l'appel système `fork(2)`_ est de copier physiquement toutes les pages utilisées en mémoire RAM par le processus père. Ensuite, le noyau peut créer une table des pages pour le processus fils qui pointe vers les copies des pages du processus père. De cette façon, le processus père et le processus fils utilisent exactement les mêmes instructions. Ils peuvent donc poursuivre leur exécution à partir des mêmes données en mémoire. Mais chaque processus pourra faire les modifications qu'il souhaite aux données stockées en mémoire. Cette implémentation était utilisée par les premières versions de Unix, mais elle est peu efficace, notamment pour les processus qui consomment beaucoup de mémoire et le shell qui généralement exécute `fork(2)`_ et suivi par `execve(2)`_. Dans ce scénario, copier l'entièreté de la mémoire du processus père est un gaspillage de ressources. - -La mémoire virtuelle permet d'optimiser l'appel système `fork(2)`_ et de le rendre nettement plus rapide. Lors de la création d'un processus fils, le noyau du système d'exploitation commence par créer une table des pages pour le processus fils. En initialisant cette table avec les mêmes entrées que celles du processus père, le noyau permet aux deux processus d'accéder aux mêmes instructions et aux mêmes données. Pour les instructions se trouvant dans le segment code et dont les entrées de la table des pages sont généralement en `read-only`, cette solution fonctionne correctement. Le processus père et le processus fils peuvent exécuter exactement les mêmes instructions tout en n'utilisant qu'une seule copie de ces instructions en mémoire. - -Malheureusement, cette solution ne fonctionne plus pour les pages contenant les données globales, le stack et le heap. En effet, ces pages doivent pouvoir être modifiées de façon indépendante par le processus père et le processus fils. C'est notamment le cas pour la zone mémoire qui contient la valeur de retour de l'appel système `fork(2)`_. Par définition, cette zone mémoire doit contenir une valeur différente dans le processus père et le processus fils. Pour éviter ce problème, le noyau pourrait copier physiquement les pages contenant les variables globales, le heap et le stack. Cela permettrait, notamment dans le cas de l'exécution de `fork(2)`_ par le shell d'améliorer les performances de `fork(2)`_ sans pour autant compromettre la sémantique de cet appel système. Il existe cependant une alternative à cette copie physique. Il s'agit de la technique du :term:`copy-on-write`. - -Sur un système qui utilise :term:`copy-on-write`, l'appel système `fork(2)`_ est implémenté comme suit. Lors de l'exécution de `fork(2)`_, le noyau copie toutes les entrées de la table des pages du processus père vers la table des pages du processus fils. Ce faisant, le noyau modifie également les permissions de toutes les pages utilisées par le processus père. Les pages correspondant au segment de code sont toutes marquées en lecture seule. Les pages correspondant aux données globales, heap et stack sont marquées avec un statut spécial (:term:`copy-on-write`). Celui-ci autorise les accès en lecture à la page sans restriction. Si un processus tente un accès en écriture sur une de ces pages, le :term:`MMU` interrompt l'exécution du processus et force l'exécution d'une routine d'interruption du noyau. Celle-ci analyse la tentative d'accès à la mémoire qui a échoué. Si la page était en lecture seule (par exemple une page du segment de code), un signal ``SIGSEGV`` est envoyé au processus concerné. Si par contre la page était marquée :term:`copy-on-write`, alors le noyau alloue une nouvelle page physique et y recopie la page où la tentative d'accès a eu lieu. La table des pages du processus qui a fait la tentative d'accès est modifiée pour pointer vers la nouvelle page avec une permission en lecture et en écriture. La permission de l'entrée de la table des pages de l'autre processus est également modifiée de façon à autoriser les écritures et les lectures. Les deux processus disposent donc maintenant d'une copie différente de cette page et ils peuvent la modifier à leur guise. Cette technique de :term:`copy-on-write` permet de ne copier que les pages qui sont modifiées par le processus père ou le processus fils. C'est un gain de temps appréciable par rapport à la copie complète de toutes les pages. - -Dans le pseudo fichier ``/proc/PID/maps`` présenté avant, le bit `p` indique que les pages correspondantes sont en `copy-on-write`. - -.. _vmstat: - -Interactions entre les processus et la mémoire ----------------------------------------------- - -La mémoire virtuelle est gérée par le système d'exploitation. La plupart des processus supportent très bien d'avoir certaines de leurs pages qui sont sauvegardées sur disque lorsque la mémoire est saturée. Cependant, dans certains cas très particuliers, il peut être intéressant pour un processus de contrôler quelles sont ses pages qui restent en mémoire et quelles sont celles qui sont stockées sur le disque dur. Linux fournit plusieurs appels systèmes qui permettent à un processus de monitorer et éventuellement d'influencer la stratégie de remplacement des pages. - -.. code-block:: c - - #include <unistd.h> - #include <sys/mman.h> - int mincore(void *addr, size_t length, unsigned char *vec); - -L'appel système `mincore(2)`_ permet à un processus d'obtenir de l'information sur certaines de ses pages. Il prend comme premier argument une adresse, qui doit être un multiple de la taille des pages. Le deuxième est la longueur de la zone mémoire pour laquelle le processus demande de l'information. Le dernier argument est un pointeur vers une chaîne de caractères qui doit contenir autant de caractères que de pages dans la zone de mémoire analysée. Cette chaîne de caractères contiendra des drapeaux pour chaque page de la zone mémoire concernée. Les principaux sont : - - - ``MINCORE_INCORE`` indique que la page est en mémoire RAM - - ``MINCORE_REFERENCED`` indique que la page a été référencée - - ``MINCORE_MODIFIED`` indique que la page a été modifiée - -Un exemple d'utilisation de `mincore(2)`_ est repris dans le programme :download:`/MemoireVirtuelle/src/mincore.c` ci-dessous. - -.. literalinclude:: /MemoireVirtuelle/src/mincore.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - - -Certains processus doivent pouvoir contrôler la façon dont leurs pages sont stockées en mémoire RAM ou sur disque. C'est le cas notamment des processus qui manipulent des clés cryptographiques. Pour des raisons de sécurité, il est préférable que ces clés ne soient pas sauvegardées sur le disque dur. Pour des raisons de performances, certains processus préfèrent également éviter que leurs pages ne soient stockées sur disque dur. Linux comprend plusieurs appels systèmes qui permettent à un processus d'influencer la stratégie de remplacement des pages du noyau. - -.. code-block:: c - - #include <sys/mman.h> - - int mlock(const void *addr, size_t len); - int munlock(const void *addr, size_t len); - - int mlockall(int flags); - int munlockall(void); - -L'appel système `mlock(2)`_ permet de forcer un ensemble de pages à rester en mémoire RAM tandis que `munlock(2)`_ fait l'inverse. L'appel système `mlockall(2)`_ quant à lui permet à un processus de demander que tout l'espace d'adressage qu'il utilise reste en permanence en mémoire RAM. `mlockall(2)`_ prend comme argument des drapeaux. Actuellement deux drapeaux sont supportés. ``MCL_CURRENT`` indique que toutes les pages actuellement utilisées par le processus doivent rester en mémoire. ``MCL_FUTURE`` indique que toutes les pages qui seront utilisées par le processus devront être en mémoire RAM au fur et à mesure de leur allocation. L'appel système `madvise(2)`_ permet également à un processus de donner des indications sur la façon dont il utilisera ses pages dans le futur. - -Ces appels systèmes doivent être utilisés avec précautions. En forçant certaines de ses pages à rester en mémoire, un processus perturbe le bon fonctionnement de la mémoire virtuelle, ce qui risque de perturber les performances globales du système. En pratique, en dehors d'applications cryptographiques et de processus avec des exigences temps réel qui sortent du cadre de ce cours, il n'y a pas d'intérêt à utiliser ces appels système. - -L'utilisation de la mémoire influence fortement les performances des processus. Plusieurs utilitaires sous Linux permettent de mesurer la charge d'un système. Certains offrent une interface graphique. D'autres, comme `top(1)`_ ou `vmstat(8)`_ s'utilisent directement depuis un terminal. La commande `vmstat(8)`_ permet de suivre l'évolution de la charge du système et de la mémoire virtuelle. - -.. code-block:: console - - $ vmstat 5 - procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- - r b swpd free buff cache si so bi bo in cs us sy id wa st - 3 0 662260 259360 49044 583808 0 0 1 1 1 2 5 0 95 0 0 - 3 0 662260 259352 49044 583808 0 0 0 0 6018 4182 61 0 39 0 0 - 7 1 662260 254856 49044 587328 0 0 0 0 6246 4309 61 0 38 2 0 - 4 0 662260 221668 49044 608652 0 0 0 0 9731 5520 62 1 9 28 0 - 3 0 662260 260368 49044 583836 0 0 0 2 8291 4868 70 1 12 17 0 - 4 0 662260 260548 49044 583836 0 0 0 0 6042 4174 61 0 39 0 0 - 3 0 662260 260720 49044 583836 0 0 0 0 6003 4242 61 0 39 0 0 - -Lorsqu'elle est utilisée, la commande `vmstat(8)`_ retourne de l'information sur l'état du système. Dans l'exemple ci-dessus, elle affiche cet état toutes les 5 secondes. La sortie de `vmstat(8)`_ comprend plusieurs informations utiles. - - - la colonne ``procs`` reprend le nombre de processus qui sont dans l'état `Running` ou `Blocked`. - - la colonne ``memory`` reprend l'information relative à l'utilisation de la mémoire. La colonne `swpd` est la quantité de mémoire virtuelle utilisée. La colonne `free` est la quantité de mémoire RAM qui est actuellement libre. Les colonnes ``buff`` et ``cache`` sont relatives aux buffers et à la cache qui sont utilisés par le noyau. - - la colonne ``swap`` reprend la quantité de mémoire qui a été transférée sur le disque (`so`) ou lue du disque (`si`) - - la colonne ``io`` reprend le nombre de blocs lus du disque (`bi`) et écrits (`bo`) - - la colonne ``system`` reprend le nombre d'interruptions (`in`) et de changements de contexte (`cs`) - - la dernière colonne (``cpu``) fournit des statistiques sur l'utilisation du cpu - -Enfin, notons que l'appel système `getrusage(2)`_ peut être utilisé par un processus pour obtenir de l'information sur son utilisation des ressources du système et notamment les opérations de transfert de pages entre le mémoire RAM et les dispositifs de stockage. - -.. _execvmem: - -`execve(2)`_ et la mémoire virtuelle ------------------------------------- - -Pour terminer ce survol de la mémoire virtuelle, il est intéressant de revenir sur le fonctionnement de l'appel système `execve(2)`_. Celui-ci permet de remplacer l'image mémoire du processus en cours d'exécution par un exécutable chargé depuis le disque. L'appel système `execve(2)`_ utilise fortement la mémoire virtuelle. Plutôt que de copier l'entièreté de l'exécutable en mémoire, il se contente de créer les entrées correspondants au segment de code et aux variables globales dans la table des pages du processus. Ces entrées pointent vers le fichier exécutable qui est sauvegardé sur le disque. En pratique, celui-ci est découpé en deux parties. La première contient les instructions. Celles-ci sont mappées sous forme de pages sur lesquelles le processus a les permissions d'exécution et de lecture. La seconde partie du fichier correspond à la zone des chaînes de caractères et des variables globales. Celle-ci est mappée dans des pages qui sont accessibles en lecture et en écriture. En pratique, la technique du :term:`copy-on-write` est utilisée pour ne créer une copie spécifique au processus que si celui-ci modifie certaines données en mémoire. Ensuite, les pages relatives au :term:`heap` et au :term:`stack` peuvent être créées. - -La sortie ci-dessous présente le contenu de ``/proc/PID/maps`` lors de l'exécution du programme :download:`/MemoireVirtuelle/src/cp2.c` présenté plus haut. Celui-ci utilise deux fichiers mappés en mémoire avec `mmap(2)`_. Ceux-ci apparaissent dans la table des pages du processus, tout comme l'exécutable. Au niveau des permissions, on remarquera que le fichier source est mappé avec des pages en lecture seule tandis que le fichier destination est mappé en lecture/écriture. - -.. code-block:: console - - $ cat /proc/29039/maps - 00400000-004ab000 r-xp 00000000 00:19 49479785 /etinfo/users2/obo/sinf1252/SINF1252/2012/S12/src/cp2.exe - 006ab000-006ac000 rw-p 000ab000 00:19 49479785 /etinfo/users2/obo/sinf1252/SINF1252/2012/S12/src/cp2.exe - 006ac000-006af000 rw-p 00000000 00:00 0 - 00bc7000-00bea000 rw-p 00000000 00:00 0 [heap] - 7fc43d5e4000-7fc43d6a4000 rw-s 00000000 00:19 51380745 /etinfo/users2/obo/sinf1252/SINF1252/2012/S12/src/t - 7fc43d6a4000-7fc43d764000 r--s 00000000 00:19 49479785 /etinfo/users2/obo/sinf1252/SINF1252/2012/S12/src/cp2.exe - 7fff5b912000-7fff5b927000 rw-p 00000000 00:00 0 [stack] - 7fff5b9ff000-7fff5ba00000 r-xp 00000000 00:00 0 [vdso] - ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] - - - -.. rubric:: Footnotes - -.. todo: faire exemple avec un processus père qui fait fork puis le fils accède à 100, 1000 pages (qui seront copiées), montrer l'évolution du temps d'accès à ces pages - - -.. [#fmmu] En pratique, les adresses sur le disque dur ne sont pas stockées dans le :term:`MMU` mais dans une table maintenue par le système d'exploitation. C'est le noyau qui est responsable des transferts entre le dispositif de stockage et la mémoire RAM. - -.. [#fintel] Source : http://www.intel.com/content/www/us/en/solid-state-drives/ssd-320-specification.html - -.. [#fseagate] Source : http://www.seagate.com/staticfiles/support/disc/manuals/desktop/Barracuda%207200.11/100507013e.pdf - -.. [#fentree] Une entrée de la table de pages occupe généralement 32 ou 64 bits suivant les architectures de processeurs. - -.. [#ftaillepage] Il est possible d'obtenir la taille des pages utilisée sur un système via les appels `sysconf(3)`_ ou `getpagesize(2)`_ diff --git a/Theorie/Threads/S5-src/errno.c b/Theorie/Threads/S5-src/errno.c deleted file mode 100644 index 4c0a4ec..0000000 --- a/Theorie/Threads/S5-src/errno.c +++ /dev/null @@ -1,24 +0,0 @@ -/************************************** - * errno.c - * - * Programme d'exemple pour errno - * - **************************************/ -///AAA -#include <errno.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -int main(int argc, char *argv[]) { - - if(setenv(NULL,NULL,1)!=0) { - fprintf(stderr,"Erreur : errno=%d %s\n",errno,strerror(errno)); - } - if(setenv("PATH=","/usr/bin",1)!=0) { - fprintf(stderr,"Erreur : errno=%d %s\n",errno,strerror(errno)); - } - - -} - diff --git a/Theorie/Threads/S5-src/fctptr.c b/Theorie/Threads/S5-src/fctptr.c deleted file mode 100644 index c9b68d5..0000000 --- a/Theorie/Threads/S5-src/fctptr.c +++ /dev/null @@ -1,45 +0,0 @@ -/************************************** - * fctptr.c - * - * Programme d'exemple pour les pointeurs - * vers des fonctions - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -int g=1; -int debug_level; - -void empty (char *str) { - return; -} - -void oneline(char *str) { - fprintf(stderr,"debug: %s\n",str); -} - -void detailed(char *str) { - fprintf(stderr, "debug: %s\n",str); - fprintf(stderr,"g=%d\n",g); -} - -void (* debug_print[])(char *) = { empty, - oneline, - detailed }; - -int main(int argc, char *argv[]) { - - if(argc!=2) - return(EXIT_FAILURE); - - debug_level=atoi(argv[1]); - if((debug_level<0) || (debug_level>2) ) - return(EXIT_FAILURE); - printf("fct debug_print : %p\n",debug_print[debug_level]); - (debug_print[debug_level])("Hello"); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S5-src/main.c b/Theorie/Threads/S5-src/main.c deleted file mode 100644 index 01130f8..0000000 --- a/Theorie/Threads/S5-src/main.c +++ /dev/null @@ -1,18 +0,0 @@ -/************************************** - * main.c - * - * Programme d'exemple pour le linker - * - **************************************/ - -#include "min.h" -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - float f1=3.45; - float f2=-4.12; - printf("Minimum(%f,%f)=%f\n",f1,f2,min(f1,f2)); - return(EXIT_SUCCESS); -} - diff --git a/Theorie/Threads/S5-src/math.c b/Theorie/Threads/S5-src/math.c deleted file mode 100644 index 78da617..0000000 --- a/Theorie/Threads/S5-src/math.c +++ /dev/null @@ -1,16 +0,0 @@ -/************************************** - * min.c - * - * Programme d'exemple pour le linker - * - **************************************/ - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> - -int main (int argc, char *argv[]) { - printf("Le cosinus de PI vaut : %f\n",cos(M_PI)); - return(EXIT_SUCCESS); - -} diff --git a/Theorie/Threads/S5-src/min-ex.c b/Theorie/Threads/S5-src/min-ex.c deleted file mode 100644 index 44712f5..0000000 --- a/Theorie/Threads/S5-src/min-ex.c +++ /dev/null @@ -1,24 +0,0 @@ -/************************************** - * min-ex.c - * - * Programme d'exemple pour le linker - * - **************************************/ - -#include "min.h" -#include <stdlib.h> - -float min(float a, float b) { - if(a<b) - return a; - else - return b; -} - -static int main(int argc, char*argv[]) { - - if(min(3.0,2.0)!=2.0) - return(EXIT_FAILURE); - -} - diff --git a/Theorie/Threads/S5-src/min.c b/Theorie/Threads/S5-src/min.c deleted file mode 100644 index 1a0c53f..0000000 --- a/Theorie/Threads/S5-src/min.c +++ /dev/null @@ -1,17 +0,0 @@ -/************************************** - * min.c - * - * Programme d'exemple pour le linker - * - **************************************/ - -#include "min.h" - -float min(float a, float b) { - if(a<b) - return a; - else - return b; -} - - diff --git a/Theorie/Threads/S5-src/module.c b/Theorie/Threads/S5-src/module.c deleted file mode 100644 index a8f6204..0000000 --- a/Theorie/Threads/S5-src/module.c +++ /dev/null @@ -1,31 +0,0 @@ -/************************************** - * module.c - * - **************************************/ - -#include "module.h" - -static float min(float, float); - -int num1=0; // accessible hors de module.c -extern int num2; // définie dans un autre module -static int num3=1252; // accessible uniquement dans ce module - -float vmin(int n, float *ptr) { - float *p=ptr; - float m=*ptr; - for(int i=1;i<n;i++) { - m=min(m,*p); - p++; - } - return m; -} - -static float min(float a, float b) { - if(a<b) - return a; - else - return b; -} - - diff --git a/Theorie/Threads/S5-src/mystrtol.c b/Theorie/Threads/S5-src/mystrtol.c deleted file mode 100644 index 3cfbfdc..0000000 --- a/Theorie/Threads/S5-src/mystrtol.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************** - * stresep.c - * - * Implementation partielle de strtol - * - **************************************/ -///AAA -#include <stdlib.h> -#include <stdio.h> -#include <ctype.h> -#include <stdbool.h> - -int mystrtol(const char *restrict str, - char **restrict endptr, - int base) { - - int val; - int i=0; - int err=false; - while(!err && *(str+i)!='\0') - { - if(!isdigit(*(str+i))) { - err=true; - *endptr=(char *)(str+i); - } - i++; - } - // ... - return val; -} -///BBB - -int main(int argc, char *argv[]) -{ - char *p, *s; - long li; - s = "1252m"; - li = mystrtol(s,&p,10); - if(p!=NULL) { - printf("Caractère erronné : %c\n",*p); - // p pointe vers le caractère en erreur - } - printf("Valeur convertie : %s -> %ld\n",s,li); - return(EXIT_SUCCESS); - -} diff --git a/Theorie/Threads/S5-src/prog.c b/Theorie/Threads/S5-src/prog.c deleted file mode 100644 index 538d4f8..0000000 --- a/Theorie/Threads/S5-src/prog.c +++ /dev/null @@ -1,39 +0,0 @@ -/************************************** - * prog - * - * Programme d'exemple pour le linker - * - **************************************/ - -#include <stdlib.h> -#include <stdio.h> -///AAA -#include "min.h" -#include "module.h" - -#define SIZE 4 - -extern int num1; // définie dans un autre module -int num2=1252; // accessible depuis un autre module -static int num3=-1; // accessible uniquement dans ce module - -void f() { - static int n=0; - int loc=2; - if(n==0) - printf("n est à l'adresse %p et loc à l'adresse %p\n",&n,&loc); - printf("f, n=%d\n",n); - n++; -} - -int main(int argc, char* argv[]) { - - float v[SIZE]={1.0, 3.4, -2.4, 9.9}; - printf("Minimum: %f\n",vmin(SIZE,v)); - f(); - f(); - printf("Minimum(0.0,1.1)=%f\n",min(0.0,1.1)); - return(EXIT_SUCCESS); -} - - diff --git a/Theorie/Threads/S5-src/pthread-args.c b/Theorie/Threads/S5-src/pthread-args.c deleted file mode 100644 index 6e43655..0000000 --- a/Theorie/Threads/S5-src/pthread-args.c +++ /dev/null @@ -1,88 +0,0 @@ -/************************************** - * pthread-args.c - * - * Programme d'exemple de pthread utilisant les - * arguments et retournant une valeur - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -#define MAXNUM 1000 -#define NTHREADS 4 - -struct result { - long x; - long y; - long z; -}; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -long power(long i, long j) { - long r=i; - while(j>0) { - r=r*i; - j--; - } - return r; -} - - -void *fermat (void * param) { - - struct result *r=(struct result *)malloc(sizeof(struct result)); - if(r==NULL) - error(-1,"malloc"); - - long n=(long) param; - for(long x=1;x<MAXNUM;x++) { - for(long y=1;y<MAXNUM;y++) { - for(int z=1;z<MAXNUM;z++) { - if( (power(x,n)+power(y,n))==power(z,n) ) { - r->x=x; - r->y=y; - r->z=z; - return((void *) r); - } - } - } - } - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t threads[NTHREADS]; - int err; - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(threads[i]),NULL,&fermat,(void *)(long) i+2); - if(err!=0) - error(err,"pthread_create"); - } - - - - for(int i=0;i<NTHREADS;i++) { - void *p; - err=pthread_join(threads[i],(void **)&(p)); - - if(err!=0) - error(err,"pthread_create"); - //if(p!=NULL) { - //struct result r; - // r=(struct result) p; - //printf("Trouvé pour %d : x=%ld, y=%ld, z=%ld\n",i+2,r[i].x,r[i].y, r[i].z); - } - - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S5-src/pthread-array.c b/Theorie/Threads/S5-src/pthread-array.c deleted file mode 100644 index 242a320..0000000 --- a/Theorie/Threads/S5-src/pthread-array.c +++ /dev/null @@ -1,51 +0,0 @@ -/************************************** - * pthread-neg.c - * - * Programme d'exemple de pthread utilisant les - * arguments et retournant une valeur - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA -#define NTHREADS 4 -#define SIZE 100 - -pthread_t mythread; - -void *f(void *param) { - int *v=(int *) param; - long r=0; - for(long i=0;i<SIZE;i++) { - r+=v[i]; - } - return((void *) r); -} - -void launch(void ){ - int v[SIZE]; - for(int i=0;i<SIZE;i++) { - v[i]=1; - } - int err=pthread_create(&(mythread),NULL,&f,(void *) v); - if(err!=0) - error(err,"pthread_create"); -} - - -int main (int argc, char *argv[]) { - - launch(); - // ... - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S5-src/pthread-neg.c b/Theorie/Threads/S5-src/pthread-neg.c deleted file mode 100644 index efc0b74..0000000 --- a/Theorie/Threads/S5-src/pthread-neg.c +++ /dev/null @@ -1,51 +0,0 @@ -/************************************** - * pthread-neg.c - * - * Programme d'exemple de pthread utilisant les - * arguments et retournant une valeur - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA -#define NTHREADS 4 -void *neg (void * param) { - int *l; - l=(int *) param; - int *r=(int *)malloc(sizeof(int)); - *r=-*l; - return ((void *) r); -} - -int main (int argc, char *argv[]) { - pthread_t threads[NTHREADS]; - int arg[NTHREADS]; - int err; - - for(long i=0;i<NTHREADS;i++) { - arg[i]=i; - err=pthread_create(&(threads[i]),NULL,&neg,(void *) &(arg[i])); - if(err!=0) - error(err,"pthread_create"); - } - - for(int i=0;i<NTHREADS;i++) { - int *r; - err=pthread_join(threads[i],(void **)&r); - printf("Resultat[%d]=%d\n",i,*r); - free(r); - if(err!=0) - error(err,"pthread_join"); - } - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S5-src/pthread-neg2.c b/Theorie/Threads/S5-src/pthread-neg2.c deleted file mode 100644 index 15573be..0000000 --- a/Theorie/Threads/S5-src/pthread-neg2.c +++ /dev/null @@ -1,54 +0,0 @@ -/************************************** - * pthread-neg.c - * - * Programme d'exemple de pthread utilisant les - * arguments et retournant une valeur - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA -#define NTHREADS 4 -void *neg (void * param) { - int *l; - l=(int *) param; - int *r=(int *)malloc(sizeof(int)); - *r=-*l; - return ((void *) r); -} - -int main (int argc, char *argv[]) { - pthread_t threads[NTHREADS]; - int arg[NTHREADS]; - int err; - - for(int i=0;i<NTHREADS;i++) { - arg[i]=i; - } - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(threads[i]),NULL,&neg,(void *) &(arg[i])); - if(err!=0) - error(err,"pthread_create"); - } - - for(int i=0;i<NTHREADS;i++) { - int *r; - err=pthread_join(threads[i],(void **)&r); - - printf("Resultat[%d]=%d\n",i,*r); - free(r); - if(err!=0) - error(err,"pthread_join"); - } - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S5-src/pthread-test-if.c b/Theorie/Threads/S5-src/pthread-test-if.c deleted file mode 100644 index d901ebe..0000000 --- a/Theorie/Threads/S5-src/pthread-test-if.c +++ /dev/null @@ -1,77 +0,0 @@ -/************************************** - * pthread-test.c - * - * Programme d'exemple de pthread avec condition de course - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA - -long global=0; -int even=0; -int odd=0; - -void test_even(int i) { - if((i%2)==0) - even++; -} - -int increment(int i) { - return i+1; -} - -void *inc(void * param) { - for(int j=0;j<1000000;j++) { - global=increment(global); - } - pthread_exit(NULL); -} - -void *even(void * param) { - for(int j=0;j<1000000;j++) { - test_even(global); - } - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread_inc; - pthread_t thread_even; - int err; - - err=pthread_create(&(thread_inc),NULL,&inc,NULL); - if(err!=0) { - error(err,"pthread_create"); - } - - err=pthread_create(&(thread_even),NULL,&inc,NULL); - if(err!=0) { - error(err,"pthread_create"); - } - - err=pthread_join(thread_inc,NULL); - if(err!=0) - error(err,"pthread_join"); - } - - err=pthread_join(thread_even,NULL); - if(err!=0) - error(err,"pthread_join"); - } - - printf("global: %ld, even:%ld\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S5-src/pthread-test.c b/Theorie/Threads/S5-src/pthread-test.c deleted file mode 100644 index 0cfb277..0000000 --- a/Theorie/Threads/S5-src/pthread-test.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************** - * pthread-test.c - * - * Programme d'exemple de pthread avec condition de course - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -///AAA - -#define NTHREADS 4 - -long global=0; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -int increment(int i) { - return i+1; -} - -void *func(void * param) { - for(int j=0;j<1000000;j++) { - global=increment(global); - } - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&func,NULL); - if(err!=0) - error(err,"pthread_create"); - } - for(int i=0; i<1000000000;i++) { /*...*/ } - - for(int i=NTHREADS-1;i>=0;i--) { - err=pthread_join(thread[i],NULL); - if(err!=0) - error(err,"pthread_join"); - } - - printf("global: %ld\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S5-src/pthread.c b/Theorie/Threads/S5-src/pthread.c deleted file mode 100644 index 4e2741c..0000000 --- a/Theorie/Threads/S5-src/pthread.c +++ /dev/null @@ -1,57 +0,0 @@ -/************************************** - * pthread.c - * - * Programme d'exemple de pthread - * - **************************************/ -///AAA -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -int global=0; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -void *thread_first(void * param) { - global++; - return(NULL); -} - -void *thread_second(void * param) { - global++; - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t first; - pthread_t second; - int err; - - err=pthread_create(&first,NULL,&thread_first,NULL); - if(err!=0) - error(err,"pthread_create"); - - err=pthread_create(&second,NULL,&thread_second,NULL); - if(err!=0) - error(err,"pthread_create"); - - for(int i=0; i<1000000000;i++) { /*...*/ } - - err=pthread_join(second,NULL); - if(err!=0) - error(err,"pthread_join"); - - err=pthread_join(first,NULL); - if(err!=0) - error(err,"pthread_join"); - - printf("global: %d\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S5-src/ptr-char.c b/Theorie/Threads/S5-src/ptr-char.c deleted file mode 100644 index 4af3385..0000000 --- a/Theorie/Threads/S5-src/ptr-char.c +++ /dev/null @@ -1,21 +0,0 @@ -/************************************** - * ptr.c - * - * Programme d'exemple pour les pointeurs - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char **argv) { - - for(char **ptr=argv;*ptr!=NULL;ptr++) { - printf("Pointeur : %p, chaîne:%s\n",ptr,*ptr); - } - -} - - - - diff --git a/Theorie/Threads/S5-src/ptr.c b/Theorie/Threads/S5-src/ptr.c deleted file mode 100644 index c4ddc48..0000000 --- a/Theorie/Threads/S5-src/ptr.c +++ /dev/null @@ -1,38 +0,0 @@ -/************************************** - * ptr.c - * - * Programme d'exemple pour les pointeurs - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - - int a=1252; - int b=1; - int *p=&a; - int **pp=&(p); - - printf("a=%d [%p], b=%d [%p], p=%p, *p=%d, pp=%p, *pp=%p, **pp=%d\n",a,&a,b,&b,p,*p,pp,*pp,**pp); - - a++; - - printf("a=%d [%p], b=%d [%p], p=%p, *p=%d, pp=%p, *pp=%p, **pp=%d\n",a,&a,b,&b,p,*p,pp,*pp,**pp); - - - *p=*p+1; - printf("a=%d [%p], b=%d [%p], p=%p, *p=%d, pp=%p, *pp=%p, **pp=%d\n",a,&a,b,&b,p,*p,pp,*pp,**pp); - - *pp=&b; - - printf("a=%d [%p], b=%d [%p], p=%p, *p=%d, pp=%p, *pp=%p, **pp=%d\n",a,&a,b,&b,p,*p,pp,*pp,**pp); - - - -} - - - - diff --git a/Theorie/Threads/S5-src/ptrptr.c b/Theorie/Threads/S5-src/ptrptr.c deleted file mode 100644 index 1044c2a..0000000 --- a/Theorie/Threads/S5-src/ptrptr.c +++ /dev/null @@ -1,24 +0,0 @@ -/************************************** - * ptrptr.c - * - * Programme d'exemple pour les pointeurs - * vers des pointeurs - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -int main(int argc, char **argv) { - - char **p; - p=argv; - printf("Arguments :"); - while(*p!=NULL) { - printf(" %s",*p); - p++; - } - printf("\n"); - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S5-src/qsort.c b/Theorie/Threads/S5-src/qsort.c deleted file mode 100644 index 3e834bb..0000000 --- a/Theorie/Threads/S5-src/qsort.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************** - * qosrt.c - * - * Programme d'exemple d'utilisation de qsort - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -///AAA -#define SIZE 5 -double array[SIZE]= { 1.0, 7.32, -3.43, 8.7, 9.99 }; - -void print_array() { - for(int i=0;i<SIZE;i++) - printf("array[i]:%f\n",array[i]); -} - -int cmp(const void *ptr1, const void *ptr2) { - const double *a=ptr1; - const double *b=ptr2; - if(*a==*b) - return 0; - else - if(*a<*b) - return -1; - else - return +1; -} - -int main(int argc, char *argv[]) { - - printf("Avant qsort\n\n"); - print_array(); - qsort(array,SIZE,sizeof(double),cmp); - printf("Après qsort\n\n"); - print_array(); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S5-src/strip.c b/Theorie/Threads/S5-src/strip.c deleted file mode 100644 index 2384809..0000000 --- a/Theorie/Threads/S5-src/strip.c +++ /dev/null @@ -1,53 +0,0 @@ -/************************************** - * strip.c - * - * Programme d'exemple de fonction avec char ** - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -int strip(char **str) { - int count=0; - char *c; - c=*str; - int len=strlen(c); - for(int i=0; i<len;i++) { - if(*c==' ') { - count++; - } - c++; - } - int removed=0; - c=*str; - char *string=(char *) malloc(sizeof(char)*count+1); - char *r=string; - for(int i=0; i<strlen(*str);i++) { - if(*c!=' ') { - *r=*c; - r++; - removed++; - } - c++; - } - *r='\0'; - *str=string; - return removed; -} - -int main(int argc, char *argv[]) { - char *s1=" lkslskldklqkds"; - char *s2="alkjlksj skdjlskd sqdlkj"; - char **s1ptr=&(s1); - char **s2ptr=&(s2); - int n1=strip(s1ptr); - printf("n1=%d, %s\n",n1,s1); - int n2=strip(s2ptr); - printf("n2=%d, %s\n",n2,s2); - - -} - - diff --git a/Theorie/Threads/S5-src/strsep.c b/Theorie/Threads/S5-src/strsep.c deleted file mode 100644 index a523cd6..0000000 --- a/Theorie/Threads/S5-src/strsep.c +++ /dev/null @@ -1,46 +0,0 @@ -/************************************** - * stresep.c - * - * Implementation partielle de strtol - * - **************************************/ - -#include <stdlib.h> -#include <stdio.h> -#include <ctype.h> - -int mystrtol(const char *restrict str, - char **restrict endptr, - int base) { - - int val; - int i=0; - int err=0; - while(!err && *(str+i)!='\0') - { - if(!isdigit(*(str+i))) { - err=1; - *endptr=(char *)(str+i); - } - i++; - } - // ... - - return val; -} - - -int main(int argc, char *argv[]) -{ - char *p, *s; - long li; - s = "1252m"; - li = mystrtol(s,&p,10); - if(p!=NULL) { - printf("Caractère erronné : %c\n",*p); - // p pointe vers le caractère en erreur - } - printf("Valeur convertie : %s -> %ld\n",s,li); - return(EXIT_SUCCESS); - -} diff --git a/Theorie/Threads/S5-src/strtol.c b/Theorie/Threads/S5-src/strtol.c deleted file mode 100644 index b1755d6..0000000 --- a/Theorie/Threads/S5-src/strtol.c +++ /dev/null @@ -1,34 +0,0 @@ -/************************************** - * strtol.c - * - * Programme d'exemple d'utilisation de strtol - * - **************************************/ -///AAA -#include <stdlib.h> -#include <stdio.h> - -int main(int argc, char *argv[]) { - - char *p, *s; - long li; - s = "1252"; - li = strtol(s,&p,10); - if(*p != '\0') { - printf("Caractère erronné : %c\n",*p); - // p pointe vers le caractère en erreur - } - printf("Valeur convertie : %s -> %ld\n",s,li); - - s = "12m52"; - li = strtol(s,&p,10); - if(*p != '\0') { - printf("Caractère erronné : %c\n",*p); - } - printf("Valeur convertie : %s -> %ld\n",s,li); - - return(EXIT_SUCCESS); -} - - - diff --git a/Theorie/Threads/S5-src/sudoku.c b/Theorie/Threads/S5-src/sudoku.c deleted file mode 100644 index 215e3e4..0000000 --- a/Theorie/Threads/S5-src/sudoku.c +++ /dev/null @@ -1,99 +0,0 @@ -#include <stdlib.h> -#include <string.h> -#include <time.h> -#include <unistd.h> - -#define SUDOKU_MAX (9) -#define SUDOKU_DIM (SUDOKU_MAX) -#define SUDOKU_BOX (3) - -typedef struct { - int grid[SUDOKU_DIM][SUDOKU_DIM]; -} sudoku_t; - -static sudoku_t sudokus[] = { - { /* First sudoku */ - .grid = { - {8, 1, 5, 3, 4, 2, 9, 6, 7}, - {6, 0, 9, 7, 8, 1, 4, 2, 0}, - {7, 4, 2, 5, 6, 9, 0, 8, 1}, - {3, 8, 4, 9, 0, 6, 5, 1, 2}, - {9, 7, 1, 2, 5, 4, 6, 3, 8}, - {5, 2, 6, 0, 3, 8, 7, 4, 9}, - {4, 0, 3, 8, 2, 7, 0, 9, 6}, - {2, 9, 7, 6, 1, 3, 8, 5, 4}, - {1, 6, 8, 4, 0, 5, 2, 7, 3}, - } - }, - /* TODO fill with new sudokus */ -}; - - -static void print_sudoku(sudoku_t *s) -{ - int i, j; - - for (i = 0; i < SUDOKU_DIM; ++i) { - if (!(i % SUDOKU_BOX)) - printf("+-------+-------+-------+\n"); - for (j = 0; j < SUDOKU_DIM; ++j) { - if (!(j % SUDOKU_BOX)) - printf("| "); - printf("%d ", s->grid[i][j]); - } - printf("|\n"); - } - printf("+-------+-------+-------+\n"); - fflush(stdout); -} - -static int validate_sudoku(sudoku_t *s) -{ - int i, j, k, l; - - /* check sum of rows and columns + check that they only - * contain once one number from [1, 9] */ - for (i = 0; i < SUDOKU_DIM; ++i) { - int used_row[SUDOKU_MAX]; - int used_col[SUDOKU_MAX]; - memset(used_row, 0, sizeof(used_row)); - memset(used_col, 0, sizeof(used_col)); - int sum_row = 0, sum_col = 0; - for (j = 0; j < SUDOKU_DIM; ++j) { - if (used_row[s->grid[i][j]-1] > 0) - return 0; - if (used_col[s->grid[j][i]-1] > 0) - return 0; - sum_row += s->grid[i][j]; - sum_col += s->grid[j][i]; - used_row[s->grid[i][j]-1]++; - used_col[s->grid[j][i]-1]++; - } - if (sum_row != 45 || sum_col != 45) - return 0; - } - - /* check sum of boxes */ - for (k = 0; k < SUDOKU_DIM / SUDOKU_BOX; ++k) { - for (l = 0; l < SUDOKU_DIM / SUDOKU_BOX; ++l) { - int sum = 0; - for (i = 0; i < SUDOKU_BOX; ++i) - for (j = 0; j < SUDOKU_BOX; ++j) - sum += s->grid[SUDOKU_BOX * k + i][SUDOKU_BOX * l + j]; - if (sum != 45) - return 0; - } - } - - - return 1; -} - - -int main(int argc, char *argv[]) -{ - /* A COMPLETER */ - print_sudoku(&sudokus[0]); - - return 0; -} diff --git a/Theorie/Threads/S6-fig/figures-001-c.png b/Theorie/Threads/S6-fig/figures-001-c.png deleted file mode 100644 index 48c5aa499b47647fd9ccb59496550b0f40d8f800..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86905 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 diff --git a/Theorie/Threads/S6-fig/figures-002-c.png b/Theorie/Threads/S6-fig/figures-002-c.png deleted file mode 100644 index 5d1267967d4acc5fd956cb4cece893c0da64518a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15045 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 diff --git a/Theorie/Threads/S6-fig/figures-003-c.png b/Theorie/Threads/S6-fig/figures-003-c.png deleted file mode 100644 index 7cdc9d1c9bd0d7d6fd0498754a655a427d51190b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55456 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 diff --git a/Theorie/Threads/S6-fig/figures.001.png b/Theorie/Threads/S6-fig/figures.001.png deleted file mode 100644 index 0205872366cac8d88947e84333f4f8bd7efdce36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99300 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 z%0A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 AtN;K2 diff --git a/Theorie/Threads/S6-fig/figures.002.png b/Theorie/Threads/S6-fig/figures.002.png deleted file mode 100644 index 37d158236c459e9056cf020760120c6939bdcf6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33985 zcmeFZXIN8R6E+%9P((ze7Xd*8rHM$dD&;{GMCnKoq)11lNQ<EKs`MHJ5v2D{f>H&M z-b?7cCO{HGl5ZzG?>X=LUFZM#<1b-L_Fil4nS1V;xhG*ywA5)Xuw4LwKr|Zvs5}LM z&H_K40iCA={%L4nqyd30c)WV>;EBeA2i#9yyV$&Pv<88^$VL)vbs3D<f?f1hRo0we z+rR$9dcE_8Cc~q<GyQkJIHg8XefmMiqNAdsd{r!#f#VE!HcxgkC0Tpur7rHQq7P*B zw@hfL#eF<h;rI!YJZFW&*-~hOJFH=~2^1@5M1Jpz5Sj8FrN=B=%iV@_tnDo{WGqj} z$hydRA~J5dQe8lt0Z%DTpNqBIEBPWY1`o!e$TYMZZ?S^}&a+0(f31k4Q~a>UT%(*! z3G%%%5B+_Y>}US-kL&ke2A)p}OKxm&=ZQ9&i^e4PTS#61MhlWpX}|KCjGN|~EboV2 zRYWY5$MNUt9vT!&bJ^o%XQlM{h!yA9^d_w~#`BwPCw#Oh(chNsLd!49>olA8guCLp zB4*xw54^5_bka+x(A0XUKI#C~`IPxv`@-cBwKjT=#Kv77>dz|<lBJ!9*85EE{*RRB zcsi*RJ}?`_t{gL8x?no|W?_b$Nk($S>ZUe%kGgIp=H%zWT$!p?@A-YhrF3+EsOm~v zgXp@Oy!J}=A5ANfW<j@%-9e7`Qs>Dp&Yk-m+e&U2_y{y;Ss8mwHdmt+E4<{kIK(2- z#l`H<Vu6@Yqr50i|4e*fkMNj&yE^C>v{4)u!fiC*av~~>WdLb0yi}S#eiq?)ChH~# zNM;3+>do^s7ze8QRX!BNN{#8yrl!0cAf0taChOvGz@^(N`hyq7&)Ck9`6_dtr}$(+ zWAVW&_TtB`V`q?wGMNCm+z-wtRF?u<vo58B@{|SFKuJF&T&WKN?(Lnu_(5#%!lMtg z7EFQM94Y~Ju^eB?U)?{BWqo-@=00aE7sEx>`vaGm7apwlQ`!mYo=v!)(0?tT^O!>R zoN2JLGOnN3?riGE+56@e43C1>%dQkru(wK<QEyR){49JSl1{$bg4w%NM_v*T(<;1Y zjb@TRPup5L$I77m>B*pgUi`Ig%H`k-Dym-=p4=b4p?j@>L+^wA{puX=C!RX3`8S7c z?=n4pAl@Hr=Tjvmd$Ct7FH7o6#6ZHD>|5#vc0Xo?z)Ur8=abvvEPjz!gTssh<}L4t zQ6#_qE%w{!x884Vn~O-Yi1vq8)#amxE{@kF$r?FLB4=WpIy@|~<vHW59GCb*hB{^D z$lZjVvz35qX+1eSsifYsxBC5z+q>l@-o&qXp|5jwzGt5X9f2l0k@ipIzSn<!oQ|A| z<G$pVkFFp4wdx+Q@czES7dEMK&Qd@upf1Spo+FPL-z7Tur+=<Xd=`Es6Q<tHrx&aB zxg<{QAILA=3eJhBrtoyF*?T2?o}als!F2=}gu})8!au7`-20yQ{EK{!@0FY|)-bVl zY0I?sf;Qte$~LnI`ZkGn)3&kD)zG8}2osD~k?&q?|7X`Y3k}E5`Jbiv_mwTxKHqqC zi&Y>+$Vg~{``v@rf#Es!Ituw5_KJtM4==dK2WNjDnznPC)SslA)SG0vsyX&ee4Xlm z=a|Y{)XzBlmi0A8kpw<HKKFa}hHQMre7*5npG7_?^7)w`M?`*(jCfS^+au*h3Ry}_ z#f6GL73CE{6}=T7D$JKyUUR+<d)>HXyqwvcvwXOe)MMMt6$`til&fq|W?&)6a4Y?( zSJ8RFjhmE$B?j_EUM6m88b-e~HL|L-*TV<nE2=6gUkAQUL8vZkFs6p*T+q&awEVeS zGnk<@=u=z1#ar=jdW?F_dP91&-;WCZ6uc@7`o8>KqEJDPzhElA^Lx^F&+pm}`F3ar z$9}tEuOf~9s)5L{>B5N|jE<&>;C+WQ{ld|YHARxo<kTB=eEtc^Ui=!D{VeB=Hglmv zPFjAWd960>XytIkSm9t}4(+DNI`ROuiDI|7=tzU6l%S-&_$yc>m^C;mm{)C3&0p=E zTCrMbltg4sq$ewi1uRv5SL2S1C890fe#0u&cGCHH^if}=lfJb_U%KVaE9gX1?@3e; zRJEv`EFvWFt|qw0DbX|$UQ|^4QU9@i+$h`V!05;*t>c>HJ;`>-F(<K_lA1IpIY*@_ zqlw&!j0$Y)Y`@|F^oPG?%2CC*wR&QdY`#nx$0eDIa(6g#u7W){Jf6B+%8W=Wc<Otu zNOQg6^c-;4aFy9XOpdhat$B|g=A>mzsnu$E#y2MUeDNtgH^TcnXK*nkFO`3+a^THm z&!9uIL7r5{)R<2a>ddz*alJ*hT3AD@<H7n7A2t}Rf2@caLed{sV_Wfx_(og^`Q0;U zvf=>lSk^kZy;rdwPagJTmdBUx^%N$;&P&qFUY@4EPi@3Lco}hRSfc9sfkv{Hp|_zy zofo=b?|3hUZig<Hu2nG7!11}8;8VrV%o9vO5f@@)nItL)t(G$rtO|t;7>gQU#y;+& z8|)5CW7mu8%k+JP9k$o)9=%n0`{2MppSv(vg1$BKdvuCTV>znA+$~+kI{lYn$oSy+ zzH~_4U>#M-8BZzCJF_>T^8Vqg9feEH8hcvO$$MgAx638nL~inYmtlo)WcWsFFY_ZB z$8MJP7>|keGc%kIezx`W=<6eDzo5>iUxr7%JH2|_Hax90ra`#ocfD0C=hosg8?Tjh zp<hD&quY+nTiX+hGMO^!V>x4$W1db=X3DHvyVR1RLL~2{SxUM)>BG}u?}Ww#Yn`dx zG#3)hk&h4$k+UvQ<CB@C@sKp7;}2uBQ52RGKLgKAZPi{qp~La+cFu0EOre|zW?eU% zj9xy~H9M$IHuXjF4?%AEr%ut;=G3+oEVXEDY2p818`C{T5*{Y5#7FNO!DpU!2nY)K zz-+fO*_WA?&!MiMzU^Ku*(<c0$}4wSg_b7lCw$N=(d!)vADJpt+F9M=lAiO;TF)B% zk^RBke+7547d!SPk*zot(K_DB8e+~tr8M|vc*PDUhOtuZgpME_LN)_88#aqKH`y83 zAF|DN9CZ9zER05FxGD{dz8rs>Z`4q~c3nEfAF(Vt0Gn1?_9@t`>RtaPo@!grH~5FC zMp<}5c&K>4xYg;C6K>V_k9+l0EkwcPEwtuAb<RfMaM0(7wg?RKs>t&5)OCipTBa*z zoZH4zhfCezf~bZhPn6kVvo|hvwOUX?L?Nj}?)h%r3(v*r$7yNBwMEX=(=|<gM+QCS zeMiQJHPhwLp;6nZu~}FVVd4Ey%W~t6XX%X9Y@-Cr?QyWu7QXddA?HP<CHZu(_=C0H z#mLS|?bji<9|URhWhN>;^VLVD?YQ)|>bEkhO{+UA(Z0jKj8{0`Kn=rT(aW%`CIK!3 z)>6prw6)}e^evxy#PYb{kHU%Xf#84eImgw1HpRix1UDb=_JeWu`Lz1l_T8n~5ooO! zT!Q{Ca_a#iWFjUAvZOfTSA&^G@-6hB9ajvd$HHA2;FB<{KUb<|W*U9j$D((l@9%p{ zi(GnNTMc@`LzZ<7nk-N=7qrToML~!z>+0<D!4Q@xVDelp6fFbKK|kflEO|lsZz+}O z>mTx<cr-)DWyYs{*HsvFG^51LZ`)or;w-<B@#c-oDyT*E%wDmlvvZB5^Nxwk!UX(` z>rIOvA0jfJrco+uE{*-DM*4mvG~?)(>{fZ%YEp(lAa0O`$~|2#vaK1aWIb!#xjp#B zixK4AH^Qm1^OpisKl@On*5gfGnHe>Ef8P-o@15xu>bWbd`uI(caK!KDPk%jkr9v@E zU7j|inP5#O$S_l0rev{5^jXEFXTI8*_DMvc-oaNtA)8m5@``Sm{Jj4jL`Hu0{AF(C z(;x1>3P9X2%~<$<uaN#LAn-k?MfpE}^zUC&oj(t{vi6ei%Ku&`doT9y&Hi)OE0-^W zuJ`|Xc>RB`lY^}Oucu$<<_7(f6_@bO|6V@}>iFMPUj9c}85FC`FZk(yub&4+{?BeM zbH~1a58@8c(&zc#>z6?+XZ~x~z(Tpn$jFq*Gm2FH`!p^C>$y$&zh|LLPEP**tgKPk z|9)N>WO4C7`#t?Yz}d5BK~!%mu2B8Yb>JXb{`bJh{~qLj9mwB<{MS_fTI7Gb;$PSP z7d-!B<bMZ;zrp5ju=yLc|AmIX82J|?{}S?l>C;~x`IkrjO%eZ-yZ+6!|4qXG=GuRA z?Z4HZe^aQxWwigUAO6M2zZm(qu=_7G{Kd$>82Ptn^KS+E|IeOHD(`;?8$(V@Cl{E* zsxvz3R~&z5{LN?fCo>h+J$6Ii9v3xi6hz>h$4X4!?#?RQx^*kOT;7R?R1TpLd7_^n zOyjS6?%)2~XXY*f6=J7xw?l5XsdBt;$^~|{u(-zf?Z)t{a(e6rJ^th@c(Ur11m&5L zfFE6-cyk=aO3Lxao6P>BCN9mGQlG;O#$uCNEhra=7%`M(fsWYQW8+*>M=VQ+0ugs; zoB8fWrq@E4*U5h8;xB%PQ2JbH<4yxoySq?(*ym`=NP6FVg3>@=UyYMoH{@aj<)wG$ z%NC>MIxfj=Jwg9!C8s83uXY8%t-noHZk%o<N+=ex2L}^y`{PzIj9SO$@0JtRW*R-` zRT_`KHojT?6E)gxRB6***{5i7o)__ihwy5u#_5Y6utUGCX4LEeuxd32$QgR#kp?s{ zT?P$T=i}%|zkQ_mrj@})I9XL%{3Ew3lzy@bF9I(Mn%_*<MXe9<8&})w4a>SfF*euE zv&g=+J2@-`3qMbB?Z0=fJ>VQC3nt+L6UkbhbOTF%x})I4Pda^7?pU}Bc()nVVd^=< zNGrdm?AW+n^9gcy7e>Gjlv{Q3*v*Gayg1sL5PR7bdq4S82pQ&M;K&PQ#iaK^Bz6*? z`W}=u?ET1x)JIhQbiU~X(X&4V$4lZ7Nw7ALDJKJTqP)`jZvU4DpQ_4sQh{5<C?4Bg zyI6<aX{0uwO!r0n8i0WbcC*tD5;n9ZGl@xImLkPj(BXFn_~}avqgoP2ttO$(z1MU1 zk2gy@J)y`9^ieJB>h@Hvi)DgHeY(t>6^0ToG_Y?|ukarl{22_LS3RFUrPLhVry{;A zhDu<a$v)~+q?{92=TZ^|?%GP@HesElibpp;(~{x4q==r&&(9b5%p|ELo(aZde(GID zO~29R@ECvb$(*rlKA2rn%Zej`v~i&aS-z|gZ1O2b`^S(QGQ8V_{3H12eG;6O(5ZwM z!(-uu4mx#?Pba^?ib6HhuY1r#5IjR^^O5lj=!cVaO6*pp_WbV0kf=f8;br{;>{)eE zELD|+?QGAuVZU*}W@9oHd^!Nj){|cE<Hz)9y9!587uBz%y8WPFZp+unu|&;y#$<TT z*1I~ijh9<7n@`A{p4um%!y9#Wx9s#cLkiA!OP|n#Nl=C{Q%}>2obuAn^~;GrFQVHg zXD#gwdJ=`HkvvN=^o}zP?v7OhYHkCn%<Tv3LlNIoCP|I>unRy(ecQ{L{yWOQ{y$m( zl69(5AbQ48vp&1hN8?tDTa|s$02Ig{AFNld+2c!slof9-xcDQ}ekRbj2Gc~)NRD$m zHy@66l@^teI9));mD^MnR=?y#NNy!?C4lHAGOOv&>R`l^bX%&N%u}p4H}&j|(^h1K z6YwbNn2Sy8-_kC`&=qZ3jdPJcXPEf@+?a@F*Xrqpsi>QdHwuHOaHD{2|Fpu%zFjL@ z82Q7=`e8>_kTXWla)b?aN8;NftdPD_qaVlcYVz7x@tY_IJ(!HgwA}u_Eg`~4hpw>7 zRNUKRgCqBtHfg&Su9)e6yv}mh?ulb%ujD=wLXeME!lO5y;%=Ox8PD8>_mnR@E}uHv zb8<aBy`avqW&Uhtb6+>#MRvF$hEfYGa*3r%?<6nL=eS#qwzJrLm${h9h)}7$6Z3`u zRiBo2`b299uUpzoYHx{Z5Iw%9fx~sMyD;2Osvb2iyxn&{NyPMF0gg?RXehaYPYUjN zuZKIxoMO_;0N-!NIWdZ|Hh<Dt`{a?24%P;8oQ>mqg@$duC|n)JMH-^L178iPw`)SC zIYfV(tSY(eT(K<?<MFRt4x~Tsb_2(7*6ud;n=$#zNc*E(=2+Od+Fr4{o1#B__MRy; zDE&DCT7`i99if;Nw-G&qc7N=)!BYu4A>#Anzr7a(J*<RRrIP%jC|22@fcc)6$)<$< zLA#)?bgUDfG&b+sA`XejDVe;5PpK`MITZ7rYiWnh#3XZS6R=C;o4NPiOu>%}ymsqc zRHuHLL)vMisv@|wQn5O3>uzPv64neGCq6pfX%@7Et%{_ge!ORS{qu3TQN%lN;$CT9 zruQw%i!4vjGTT){mLqx&(0AD%HHY64--rNDfb2=BKb>CgO_GhgZ&^Ky(8TviFGiv# z`uv$_710(;ak!E7Uxd}@M4Xs|nve$t_(g_(dG8<Fj@p7T$dOuPiUKNT9Wq@xw**@V z^m^4&Yl+h{Q7zOrwd%YI=0rK``dPR1y5S0W3sFx7VYM?JQ(pV+%!`XLO3@h}lQ$Jl z_F6xes4tRSz7BBt_8BE(b&|{L8(RQ@&28_;IcCmH6yQc3OeT)ygV>_pONqXa7phey z$+aP)3fZQW^`&rc92C>2&<v+4UsJ_T`C>k<NxDR_hbX0)YWCkvJTW1hNWOn?N#^VA zdlsDM4Np<e575MHJQz{@4^~IAir+Xs+GZCvsfi5X@|T{h$?z%nYnCd_wwCk+_x8w% znli&OBz7x3OjphEN{$D;$k}Nr=wNd&|Jf>n<(5u!57lmm?MP`_*Y1$EQuA%G#gfJy zHUJ4+=)XT?C7$t<N93B9RwKSAoMOn?^Fp;P4yDaZK0Ecc9B+P$x$V@iilB}JtABij zwLA5BhDK9wzg&roS*Wjdi7Dj2n1XVK*ZC(kGykT4BD1?ainDB0<)V3l&VS(8FXHp5 zkM8#7FE6RavsrJVHhZVEsqh<c7`UkNk8F?z8PY@&ik;a_v|vnqL_Fa3TihUl(aZr6 zl6RI}AtxM<!4~#fX=8ds8jJRP_&llu(`>|#lq9{@r%L?vw}xKLvYu?wF060-B2*Nf zOFW>BPods+(=cEWs(PpaJpm#d$Aged!XKr${0?-MV(hC<@vPyp;UL(2(-MAkkMv^C z-wjmur^ProZZpNmBmS935Y+5`PCw8;$OQM{r=`roQH7$om{~fmtt%PMP{moc+qWle z>B&lFWK9GiGOl>pH?_ul1jd1K_nMinNlZ;6D(3D0k;()@r=j2Bh}B}0R5Wk2G*5ST zcdA`=H<6A61Yfxfx*K1$c)B9W%Uv)Gk(*G{<G0INFVVQR@p16@G{H?K7IBlJ2)E_m zeGA(t{1tu$*GEmUV9EL9y1iWJewtaOrPra=nMCvmzKBK1>Bld^l{bN^(MAQ}lA1|- zG3)O5aa)L=WmoJqx9#e&3uF(g#jDeRvsUE+&iZq7|Had@t{{(5I5M1nO*jz)1AGV9 zz2m%G)2FrIaICI|WOB+GQ#-R*Dr}<?<D(_OvDh&NiGrZ;-UmH9y9C>LJf2lY;c82E zl${tMszx*Yr7Qjx&0e<s@j<>fzCNE#NrWfOwfq(~tb9VdGg_xcEy?k7;2)jQ@@Mf* z<<{}luPUd7jja>(7BYQy!h9`TfFL3x0y{x0&xX*PI!3kfV}er&{<jNhwaQs4XAzy) ztFA3%ZrJTwDf}<6b4_IF>XgTn;?Zw?tSxls>;6OnAwjItJMC3Wo6iu8d7C+H&gFh& z3G`vsVf27ic^@)kgz!|tUiUYq4`%hJl~#4+nYP+QN16@)@q~u|szgN`UV>*7E@C-7 zp3kNr%R_x`<q->)o~S&RwTb`DZqEscZtTt#>&;^G&ES=5EjSdM3n0XA(%-G5tenlS zPG=-Kv4sv9SxYt#{xtgV-Pl9)h<2L!Y%@wtyFNJB94ozRthC=-&rf*gKpls#j)`hK zjPeo(-*55R|FP7Kep;xCPr0*ySm$H*Pnqgi6mw&97L>Zw8(W-zG9sG2k&>5lA}FVh zfnrrLxk;)M_JyLze!XXTY9ot;n;$7FOQ5%?L8B2ic@WlRBY`Jrxu%UC`~44S+qLAj z8461p>`#{XmA?1dj9w!}M+m*)608V<{mpfXzRI7dFLEh1-JXXh7?>HICky{pKcRuU z;<60EtDS6co$Gbk$W*9}s+llPbE$(jf#!0hSMYL{2k%>%<#}#5-k%HL2ea<>O>Jzl zTf-Zq`kx+-nuuWw1gZIVd!e`t0T^OKzyaz@_;{-a+Accfgc9iUM_3;@)v7I1b*fI- zH0MlsYDXh_YYlBAuFAd@c(j$=x7~lEF@qb%*K(>oOjNhP;5Vz~eQHj*3HOsy^2N>= zz?jE*MVb!=rPs13_=gX@`zLpN2cz~IJ55wp4fp1tDGA~g;_y#yBZbVpN}poJrJ$AW zr9aK4j)0#S`8!82=Je5_tz35W2EOinhB>~L(^5-y(kmG!8}A*z*KtR$)vp}{zELXJ zBtZN+oy4%&5H-yEoa}}2FFK==F}L*nUwN#}>p;PT<Tpc*Y{a-#_JqzE>U%8}N7K2Q zNk50k0P;l-5IMm|=(-{&Uo8?06;N~+Q~*Q<M#6tkz~JRB0<szIk5$Fj)n%u!I3K@p zYso5JP^!K$E#)k;^bPHuM8Q7-X$C(yKu?Kj&b0DjABP9bFgaEZCm8It7EDxH9R;m+ zreC8~Z+G%kn=m#taMkXaEwUf{nlFzi6EN}FwmaH{s~K(TCDsoB5#p-PZnNhSY^=wb z|6l4ic|Ly3hHsOEQUF5pxdO4$HttVMm^lE>?L%eZdX_VjRo}8*d<#*2`-7hNqxv|4 z?@-MQWrwDZ8JC3lWw?~c1oFeN5(bj_SR*+j)}R^bp*#J?ygBn^RU*k6g_43T?u6<W z=OEtu<rKWu=u_?*%WNd_H@De$tBg1N(<O_&ZQ3@p|K)HJ)OF-pHq5&u;b=fMqu0_W z^@UL0=um)m!pc34irt2uD@LH;VBuN3<HIjadQ&Bk$5+OiZyPB4jiy0-`zFiO=Mg71 zu;a(^2~u00d<jWrzyyQ^valq|clN!ta0pjsZ(M(Y-pPIp`1xpo;%O>&4RrhbDHu^v z`2rN6d_>=*9Rg&0Yg1Bb67Z*a<Oy)4n=4HRPpiDX9!cF9es!iILoX8<m(PZ`xeLS8 zSZhg2OZYS>D{{4<U<91>PTk^0!_6ZSwRrqU8Pwk<t1Clvy#BWoHod8gayxZa2fJ`3 z|AQPZiJANC-zz3Ql!VKG8|6~r3ew#bJ^Snq-&4i;Z^g*m=^ovt>+K_~-$~ooKZ*|| z5@8@ihmL!17AMt18HwxWHU%WA4SuDsNkmI5;N&Z~EtJj;$im_cdm>=<Z#W6sx|!Y& zb*Hh)@$MVLYcwU@(23G%FhoFUCGC@vn1zw1KLR|c!QUPs3N`dnnX4E@kvQ$wn}F`N z60Y}{Xv6@<Z4{Pv07)=MX%ph%QcR%c3sxz2-QVd73Jo<gS+hME)nj8h6JhWuMDtMz z%4*~Y^v29v>=sPMb!YKhCH5q#dI?Fkq#abZmK~8;UC>8#25y~z;EahIIxnqHlkWt& zE-s8GP#x&h1|JVy*TSp&A3r>?S$ki1@SS(@hbLw6MbqM%3}l}V^=86$y+QG)OMXJP zj|-=@`SH`=n4!aJ*`?ehGqy1^AE%`kpH5Td;p^O>e2sP=68L3>o-F~Axcp0G;rT{~ zqwyog#dM2#Q6gJ}nK03|$nNil9z}qE<sb}Tp#Z+pSzB8ldZaVXxFNal(l&(o?)+5w zcPWisr5Ara$d(uC?u<Bnh!DVW40YT7O`Jo|c0{t$D`9?VTlQz&Q+*d`%%xjsOV(oS z<jv%v&}gsUq%aRVbW8rJh}0l-L(8<{!PcwZavj}Ub&elsvVCI|to~G2H(tp;UQ(is z5+beqe`Aj7b=U5jd2LcKOz-&Hp~n&VdWZ0Mvy2)DI994dL5ARN3d{FKe-VKDKpJM9 zGImORA$~wOBovG&A`4jnjG&D|>~)=jEfY}k5GtCNIL!ii0zx>w1v0%izDom%b$GrW z%}{(F1!ys(BfUVz-G8p2yE_@V7ApW>c5sL8HcY>mNU9Ah@PvmIxGmaOPst0(0v@n% zP6>Ulc(nEk@t$9K0Yl0w)qD7_AuVzdq($nNKHKR<u+C`~RRN@TyM|qLis|Zw&Bqys zFcyXNLu=>CCP7^V<lFe-T7Mn+BbQfBq7Jk2-LT2pQ3J9itn6y~8y?zNGk?r-?)IcD z@q}WN0abVTB?D5#h!0lAKS!~O+q4nWBsQ9oMg5he3YV&WCs1jOPj+<7<skYE#0)AQ zi5u;_)KlT{=a;iV{`Th(wY&@u<L6%ULDe&D-lW^U|1Yt4d}a#;^YhC9_42qwPZ$|~ z0BNMj;#?uiKehl?I+gS70rQMckcZ8-Y34FejPbb0dguDA*J9N2#P0^;&H6u5q)N?C z#;cJ6!^5ZCu(wzMpQFyu%Dd)H5$3x>!>o8aY>_{ru+mtZh6+}T?&{cY{|1$}U1p^j z8E0(G>zHRM{IQ~{NCcCPjIB*%${n5?kFWx=Rc3`dlQNPY)~D-tjtpXaZuLwWRj0=t z7gu!Oa@+Wx$5cXIx14CQQSR<Ra_C$lQB24j)FR@>KWf~BBLYC*!x4yO*b|rI;n3Ae z4J5?t_QF1vx1w`eJ!Ffcc9D%P1E5b@6By)FsjB>8*Ys_R1#~FugruCWf@S9nZw>yT zN}5Oey_syILPHo%f8R!u$^yEieP-N01MfasS0DyanP4-z@brS_YSEd_sHlR1g5`!= zOJC!(!gppGJBc+%1)n3Kpoi5Y4gZFYGU!Q6-RXkQCK}8QsB=XDRV;x^3J3kmlLtdo zbW+c+?4#0nM>i8Pe%taNB%R1)uiogH?OpS%ESn1mm8(?mgb=nvp%c&cqm_6qd)*V8 zo%~8a!6~1ZlPUXtHf1WeNequ~`K*1GWqZo@`{Ts%x7{LB`OAaf9;cy!z{914Ti0F; zW_QkC*4O7H68vws%1+FM@9I&xpOy%DE_d-e^>AUwii|3at8FZgUe-B?gs;J@+kU6e zc`9+aIUQ{iTAn$0A|PB#)SIdtsTpW<8R>;t#|oT8gWARMn+s!k>b~*?`n~zJ3Eu9L z&Uh#sdk~atCS#3<3*xfh*~q^ceYpGWhexbJ&FxfSg3^qZ%yN7kknUM6b#3`yCRIhR z3zwY`7&THg_lb6<oP|G&ps!*!^SVZ?t{GolTHm^ZZ>@=9!I`x^CWN7NJSbW=t~yk& zUokMwecVQ6t2({!So2V?O~*W{Zuf|<#B7(V%3<OrLY;i2C%s@|e-v%Iv6GCkKD4SV z1U<C)-aVA@D=w!9H?7Vqq8*1U1OYYLGGd{vN<PgfiCBe5%>qh)R2~JNN$a^w;oP*} z@iWX=Rki&NH5$3g`v<GvW)1!&GR4I(P>sDKWmLk5cy~q%XYFC~BQ~@U%;|=in4m(Z zFHfpw6gTY+fy_!<^T^_h%R63c7a7>93hzcEs6Ymm&_JN<Vhk#4S{VgGx-vZjkbwQr z(j!4n{5NGz5QqD)j;52Z;&(X3#PTtr>xMf_v60*&r#GqL_#rs?95uN6{(C92Q0e8Y z4k|LHOQ7HwaDgjd%R}bG?JS{2@~i^g5|F?n!(`L)vcMjF6DP)E<LYq!OfO3cl!Z9a zf9x(0E7JWD_N21hXJ#+NFMeLa3QQZKs9D6922zBUJG6!Dsy|1S2B&>>sop9;!f{SJ zLuW;LZ=Cz>qUzF>>o7%=ZQ8T-`J-csKE|kt05jNJ*;DXV8QGKCv@t(yN-C%gR-b5? zK(ZNFx-qsqoSTRT4*9VPKrmEfpPuIYljPNyBSJTl#|$j85bjt3)i1p3*o;a4xN63@ z|08q@wNK--bz;{nE0TP1@6gR1DeQqMX;dA-p(K381YO%?Xs4O28~vRqYMz(<dQWy{ z0jMg3uMg#kdJPGZVB#S#V593Pm`HrR;W`#TkaJtj@Ko~;togbeAjgY$_dG(Hso+)W zI*k3@tR&ax8YiYfuvg<u2OCYTCug8K>PQeVH`I+{XV%M6?}K}aLG!z{#tSojdAdD! zYM=IQPF6e2Ux@qhq4Ml6QgqS)s-K^?JXDDUL0ODy`c0q0{<0`o2D%p{Iy_z^Wgdy{ zjak(~Cz(gXlQkm}jZAhz>o!wEJGt!Y5{qh&nRIk!3tU^=o~gIjeHR1|n(6B^E#o}G zWN2+s&lvVULr#*MM&-IEt4-GR{eePZ=!rc&$)Wy-{s7^YfI|^eyy`ZlW$`^oEUu_= z{))k?ep*?ZHv<`d)@?487!X2(irw<N-RK=}k8yAOmyL~E?|~Q-Dg#(~slbBuA5%{i z45!bi1~m$3Rd^i?s9V|K4ey=$FFz0@OL`bjD<(Jgx_Dz$VE#CJ$5Ajr+;b4-m+0%M z95pq9N}GDwyIrN<)?7P^`oy#aJAMT!POS~=mT`YWZUUX!2|Du|?<3jsf==X3COZ>G z8$+iFmQ`^|n-yscw}^Wz8TREt$fyVXCK0`q>8}VBb|>D@jd@CR()Y?5RFNDq6|NWp zKg9Q`Rb$K!yV%^<(9*-w{Y5oD<gzXAA8FZzomF0h$(aqG6j_I-zVeuiHRz<xKvC1q zjr+-Qrk3XKj%jl&yR39Zlj((qLDHMCcpd+ifPt;pR(tf@_F37*Nbzjd2qrf?X0>$u zk|U|?&L;>Ia6fO$(hx~`z&GwapgPnk(zx~1>LvlNuJX>v4ah2JW`%q#U+jtkM2gG7 z(LV!L|4_BjuoRc*?u~#*Rrq4BW*3>%Cco))a-UsEn3zxR<cum1V!5TXH<vKcYdN)I zkhWxyL8{4dD*&w7+poluXx2b^GS?JOuww#ky|bf}s0seI<?huM3me<J7uGzo6<KL{ z#K){YGUdXk+EdsO9o5Z+=T3$AnZ+;nSroNe15`V5HPc4~=oA@;_*9cTMSudh|ILHX zlEiFAIgZhAkP(ET@x};Y<^D9QHrs8&j|J&mUTWV&Zw+NTSr)VDLtg=~SI^v56mTZn ze&M6B(=&5HJ?ogDBKegrJCB1F0l4*;tkR>+(PFF3;@ap=PM@MbD5nr2*gu&D&}U(X ztC$p@ZV2tIq`9d1-x<wOk7+OPbvIN|oWdK=Fk$oaXYEoHQd|nJ@&+sF>h>Cc>9{-P zNf3Zz3E7B`i`fMguY-<snAv-eyN`5goMY@f7CbjCJtcOmfX+qKwFkk&=oBd;ZO>W< zoHErJUJywFg69_FWiJNuv^{wJXnL$rs#{IkG+YexChz398e!+zYseqlALWSi7}rF0 z`yGWAyrS_5^VK_g)ZYCJ#<l;eb6~3$W)d(u<{#%fy}Z~*^7>a)=Rt!TE+eGlqoZ0f z01;aw5;b<ia&()A1^YSKK9%aDe{^=4Oe^*C?^!P|>$oiz>(u!7<)6Tsvo}5r2v$Ls zXYx0O!gSs(z0i@cd8FI4@6oIj#m(i3L06KD-55Bws$-LC(iy6dYf^(cY_%!2#&bj2 z8sopc?Vgm`S<EeZ638V1TcFkPUwa|u0B^SZBPcrNK%tkT)?Ty~{-NTrWYh|{L8jZd zx@2r|S#Ec>*(b912HRaai{@u?q~ifV^NH@v7ct^vVn4SGlD|Ls*f5lu`{mO)#&;G2 z!-+O<dBs$7?{~VKek!_|h?y?!;mz0I*`!2n^~p85BH&x+@>G$Kbb1Wqd7AQg+s^fg zN?T$9=h~%J7Sh_UlhYv0Q+RIbi=TRN`FUOIp_5g9bIk?{i<9K~I1rPjPts^KlQ6IT zEBgIci&~kmsv9MHw##yU61O-xu2|2EMj82RGbPw&(CN{4l<wgXG=<+Dg>{?bcx(=P zIKN!B*4ghnmpy^U8Q4PvE6S%p`YOGWz{3Tc0#<Toe2Y($>D-&Qy${w5ovKH&ou+Ce zm~P9ZeT2S?U{ku)EtO_V$W9h-6iBNXjJmZsE|!|{+CH9E{)UY?rZM?&1n}Ke${_WF zgzW~Cc+~O2ofsX7*DAl?t^G(w?mf^s9E{L`cADw9!9VEK95E->JNXq88-oqxSy0z) zBHvIYR+$H*2ZTrgd6HbS@kFV#$;tym7^meOHG-k9BKTKuqSzytU*3YtW_MLtkza_N z|7g9A`^GDsL%1z9Ke96BDvOwp*3z|mMdfPo?te08>TE{eO}zBin@~6sTZyYTxcCT? zNkM5IVRHsXXFX+2_VY?0B;get;hbhpwpR+qIlPmqR3s)n@nrz}`6#D7L~@w76l#$y zbnK30Kdw*<JSs|>F)+VC2J~paAzMwgMUG+1cfZqi8<$?Oo+u{6Y?Hao1_jlVU8tp4 z;>Th%2>h&F9ce1>R{t0Y^jkYi_ZR!DJbSK;K{u|XI;85t1%ioomM8*bpbatFq#~1Y z^LgK+3ET3Gf<h5Dc<$ZuS@f0EGS{#<!Toy^vYRUSXZD(kc!ZlBu|gQ|_Ut3_WG(YT zBBMAP{tvg(zVRTA@J@WJ`wzc5%tVF8?BO#tSd!`CtXFM?Xs)%QajLQ+{wzq79>EHH zA~h4(>iXgLaH92Pojse#2->RiX^REND_=9BCuCHMyOicu0bSAD5p!dpc^1$BjQ$P> zW&07m5EQV?V5ko&Yd@mfg)xd<Ys_s*PVyyh`9ezt3a^hz9F`<&`TVj;n-~@Zxj}Xf zeuZ~PplumoO##AK9o9@q07*(jU1-rOQF+z@;k2Hz2a@m%;DJDQo-x5FFph8v`7{6| zv*C&!l0JPW08mS)r%5^`P8OV09D`??hxOQStxbM%e$4}EU&sUn=5D=b{8&lc-$Px% zgR`&ZO^}>zk{rVb0+bPxPb1LB_vpA{Qhma3PYoQu(!zbj7l1GQ3GvJO#5PwZC>$H} z!&k_dcqrWe*Rw~9O^8Yj;Mq34JWxN6wq4QC`~u^Rf+)m1SB1w_+=o!TDar2nt5uiI zBE*toR8JYnHGm@IK=d?-$)oCxCsUfG*loGmd5qL{dsWlX^EN?3l=NDirF}w;P-#oW zO19xF&Im$!rzXG-rg1s$#2xgjP}sABmX^V&lTgh*flPk#M?E6X(d!y?@M8^?9{tBv z9{^V1P2S>rNBRHjxn=TXElF544sXjg)TPj5#bP(=6mkBA$Q<69>1&qo9JX5FXy|M5 zxEqhdJ+>!{r?nhUD@c5Re}3N?G$i@wE%F|E(2@i#+PTfUnMb56@O{T~e^=MG$aT8B z=flaxu3HV4T`^!&fyr~kH=qfu-x!xmg6e*ivx!omt{%nB@X&!>we)w7RPc{|ABc{< z<i}~_1s9}h)$h8@_N#j~{g;*_3rzvE{NU=wq$%>pPq<+R-bUJFhE-btDB{tsZ9RP| z95A1@C4z8+8tz2ljhe^uk6K<lE++IGJi@No9>>vX#;$LHSo+oD%V6DF(=|Y{b|`S$ zLt#e(@nDs+C<A~_v7lNshfyoPCRmWLf^!j7^>ypnqVttg_eJ~|95bKLM#j#6RN(z) zLr*YG^25TsLlS0kwj)$6hVyj>fFiQxt7s3RV<?{ix`u3^iEG3=zi-JVXLqX7X~L|e zML<mpVe{-S(Erf_q)9|bA1;Ij<f(DgKWiIN>M5a2)-8PO(EJo%Oei+6iNS2rm$#1b z0+d{(P|v=(o>5bon+uGQCbi7~q0Y{n=6}jFs@KbAy*Jx|-nG@r@00<6s4?14D4yYw z?A7XbId*Epr>S!s;zC=Yl?c=-?H{cpBo^o6M7O`Gr0&=>azUa`P4jXx9`Vd=tbSLm zolO&KYgo8;Fv3~BzQeAbbY!$pS+rcKF)_j&mt)j<Y2f>tZO+Z4bD+kpik^z2tv4jw zxKFN$71gG{_3X4;oK<%=)piVlS{vX6mR3CeGVZZ{otr|1sB0hQL0jlN9k}kcWgiVM zqLXq5eHgk8V;U&IRd^~0H#QO0uhGT8x%PD>J6mKoZQ*Emd=RyXsE>(*5UfT0L2&2C zYdz4Hi*Zx%7=uL&`go7mGUrck;_IxG{Vh-D$S<gug<F;G>8^`4I%)shqy=fomw)0C zERQenRU!JIyC_gu^m*oUDxs>rG7bn^tk8S&f{Y+tF1wknHp0TzS6r*3alpw-yt$_> z|9+l|W1W!-_77dgXyjU*n#yVk-J+7w9&#NWY7o-f{MjPU(eekccJvzb-l5qLMgj9- zeScP|vx7Nii>=p0c>AS~_2X}y=Llv1EtpSs9;i9Ik4=|UxN(V<K2A*+CUuh&<K*!j z-zQn(Z&eOo<n*%J`2{}G2=R9q+gMV9|6+G(qHFfH?n^v<^>+XU^s>SD3kld9$pyt} zTRz*bPbxHCwV0cRunzH>y_2+Ds0(#NY8^wszRuib`n93G6;tQ*cNxkxJi-VCPDxdr zcW1%)ick9+TuPy<B3D^Wd}~b{eGeve${#A6B}<@R_#l*ZQ^>@L;~f5*`S9Bxcq|y> zbFw{-qAu+9K3+_|!rpljBC7i*@+N&=8(K=eZPOFR;bI2keqvbYnRqm8i9s*M<XHD4 z4nX~cMd-e_<BLcfF&BVCfhhk$5}?}!lD`A(wb5%2n^+51iuV*(Xpkp)V)j1uEVlJP zdTl~W-;Kh)Kg;W|Eq~|;>$&Fk`@R3byPJg6WX1hfugzwi{q^`1F^AEje8Xl3$H_*6 zD)Vm1o~hXcQ!qkZeBm%nNodPvGC4);V5^pw_G}GWt9E=TS?IjoGta0D+>ek?)?z`q z3xy7&UI++y+^KYSKx8(iKJSS799`uihKnY=vjox@(?<X|uFd9rlb%O9EQ3=(u5R?Z z#PC27(0~;+zF=&BYDw+_Wq`=0L(jleFT|%P&D8Itn^(+hZ_awhaj*Bo!hscKn;&mU z*i577>jfEHM&0q!;=;#!Bj%o>O^vf|`+l{ZF&?|sdudTe4elY~<2!*g3qf07!4H`z zmwFD|Di^*Z;bE(yT&!u3abZb?BkF<d?QTNlt3mcRAA(O<92`H*#Fc-v9*isPmBaL{ zxJlbJQ^4_^MQFID=D6LAgjJNW{})2HV5y2Co>ZHTO>F5VBnb(NlK46(K$f1^p`d;P zdX#+o8leAqVv9AMxT;t6e9iwow6l|S%Hz3R(van_gJ?(ZheGWwmuQ92Z3dUVhP$H> zLTNbdV$#$><WSPvY&OyMbst|bGblc{?$w+P^>(A1nWTdeXPPxXnw@JzVzzEM=VvV; zPTdxz{jw)AEMfn5-)t0fiI<W$q)f~4sMtN*x)Bp3;`yOdUfg3=lCgYNe*(uWAtbKk zD~z8d%wRSTWh^p+M(r8paEs`1kI{62()>^v-prVLQwn<MCd<BRrVAICCcg$J5k)E- z{^)rL-vwb3Om&l6>rD*CQ|qz=5ei_!HUWT`P>%8v2g^B5FN=Y@$mPPA-&!6nB2}ve zN#ELQB~6y5a9eTfT#8ruOPif8rjBhCnx)1UOG!z4t&X~=_VE@dt+Ut4yZdo8^-hX8 zZFPCg6+BzadQ(s;vc^su^X~fb$WF~6B{C%=<2fyCd(msBmUp4@)0+?PH$K$bO$kXV z_-EW_=`Zk8J)EjOQQ+g8Jv{#TH3CCv>R<lAS1c{w?Wn0(kY77WtPe`REA&<yjB=n2 z^~2f<3cpA}9DHz_*=ePQl=yAm1B8J|d`0zh+d!tF-Wh$BT03iPy1r|V`R-{UDF0jl z!h1Z=^xrResb*LkD>au#bn#X{Z=5$s6LT<*I_EUvo+j<N$BI<)S?m=<nrTOd>=?Qt zz^hY)$ky6*&fZEw^>&j#hu0B&0V-ax%D|L(%?%5iO-40%`AZZEh|1H<mF3k&K@EJx z^i5oT+{KA2rCsgAd8<rUEXVC11nss}?Tb6W_tvefhRY}l!H7lv1-QBbT}&^Q)q4R6 zk;BB$qYO8GfuVU~6K4ZPG?O0Nd*TQ{0f~9Ds8UNBQ<{h*N+#BUI6JuRkZ_u7USRM6 zmEElfm!#H;9NQRl-YI}IGo$ptKa}Ri$9-_^rJUoKvIi@>M{#b?R$(GF%*(w!RyhyG z!XE@Xv*Yk(Zbi@^ff{tSkN@0Q>{+?k_2K=O)#eP-nX)Zzi<MB?75Err%(&dSeHE;D zF4oj^4~tz`VOR6pndu{x@9|Q|wM}l;pieqA(So$;2sc|2KR-CDe{!Sdph%Zg96G!4 z+ydDv6(eTV(WcJj$KX(0t)H<Aw)Pyau>7HcUp>;pXgzoDmO;Xg?~lDhQocmx8i@K~ z4+`88v0E=d$fWwp={`cGfO))>U<3`VvAATHNGaHMFPSCLl<f9?)Xkt8eXR_7Q5)o$ zChwWGpE+lwl)jr3HQ4m9Z6>2n&LQFEgv=bv(yOaMH<0kC<P?R<{dPe->jSX3fz8ie zm-hI8&0${`u!ri8K=lhHR~>{htA(moDMXQ=IRK!a?*$tW<4tTN&{s(*(H9_k4?~W! zk&)5-)HqQNMU;`fecXiWt5rpzWZO=5Yi<8T#?1POI4j|@^D`;Sb}3NpKStmOwUa{5 zX?L%E)3eFF3t_(CTT&3_wn@SN8*Dq}&YWrCil0)&WEV9FdGEmaM&T||Ub|dYR^xoU zmM4XA)K10elKf^3_PR~pxN|{M=W3+ueX5Kc=D96Ad=Xo1@7(p;WH*bAt)he{J;N1k zcj>KmpnS8epNj7|zV$sYQt4w8um$h^I#It+gFj}rzeL3(^AIo4aWW9+IqlZT13||T znfFs5)%n`rLjv}IY^E;JPXDzpA>nsGEUyQ|klF`HAJIAV9(_A|=4Dm(Q_v0<Jg?8) zx#iBo$hblmy3obN{Fw&P@iG;&<uAS7*djWGqa6<39d?5{9*gOS2_x^C-<e|kX7wI# zn>-fJmH!fR=)9yf<!YuEXE_|Zp~)qyo+Odl>jMimPY|~{4t=-lau{To6C6i4847a| z_4;ZtR&0-A2m`8pcO-#66)|&Px!NL1#It`iS~x&A4{MA`39JCcC7GpI^rkt1Esnnr zCs{wvHqq$0Ylya;KeFa(=X8i~AL-KrH#YC(jg$&5E@Mlh{fjH(2x*1zh&umq(QE@@ zQ4{krz5S-{5AQjBJfhEV?a=#7Ps)v=2Lm;aSAQ3U%Op@M*u7dv2FQ3*&F+xIq-c7w z(9^-Mgo_ayX%x3=)|=W~jygpT{`pa|DJp%$(}<mh5GA!bl#d|}UzJD%d=|(u57itx zi3X;e<w1_&ogfPBJZIbuwk7Raszul(ubKJoxA)<6^?JiKtjuCeDke_My<a(7X^n3f zh*bo8MEPOx(z)iU2eXSGDGaV0;Qdc*+p1X5xs$!d=B>^VJH<PV?%`)Rr)7^CtdMJi zw$%cq0ujQMQ=o#R^<BTqBYn@-D%4{P2jBWFa)NoB*9p#tHs#Bo*j0PSE<6e!h|%9I zfAiL~aiw}?SHOp;<YJNcawSF<YS=cZ2YdZ`S^SC2HHuskyauQ-NguD}ECLdvn1D0q zBwuUVzd@gT@^4<)gAn)>eTpBXKdJjl$o4wQc$4jO_#7lAwj)~!=6E|08{{!ACjx!* z#24G*WJzUEEn2k`-kh%J=N-wV1l<D$1k!#Yci0iHQSQg?kteG|wRvi3CDbA=EXb`+ zB=zyqpBMYOMNA3eh}sHzlt!H8Ll64)B`_@E@rHq4nzG6!*Fl70bK+%2U&$9gcqx+H zRPP-IAm6_NS_08p8M1n?WhtU>U%vsQtwpT~B-w2H%`%`l-@f0;#l@>09l0~Z?EB_< zdU3I{9u~dfKhYNSVbyGmFi$|Zd_~61uDgxZ%C_D6P%suDjj#COwzE%QrUsx1?Mh+Z z`}@XqU!aD(2*_N+frhN)4Xt#RO4~k>^tl!O`nU@EO)B~u3{cFU(uy@8j5z{|(DGi% zsbQ?f-i89R{GHn<^j;VhbpZ#$S-#R$q+%`(Q`%tO=(#lmp5gPwLbl!7x-c;ej<v0m znoZdj_)C?{fF=R505mI&(ZZ!fuizE~N(z=&OP-VBzg7T~u(66FbIW6?83x-7cYQa> z*X8<p9eZDpJ7iso4n|@q2&2oiH{w1&;miWG7R=RHYVHZgz!2SnZau=aFKfA)7=RMd zJ>o0?Q3b9Va_K6dq-BPf!YV2%E?-*Oq`fM8my(7}*K28kC~71M*>!~u)_%4>EQ*t| z={%Txv|HxfxaR-6V_>yRILBc%*L+Y32@dKxccIuMudjk1!~sa-<|U&6rqZZ&tAd`i z@W%la1&%j+zd4*L0PKv(iTdRifi?53AyW1)M9uwP9w@%psXaDmRuqO-e@r=^MPo%5 zBe0o@rNw6!a$iZc+w{W2T=Whi>&@|8kY-PJ$C|l^XvPvj!fH35S79gWF(O&Sc%YbG z7bfU0mnjd-hoF;N0l;-(U?VkNfXQ5_H3gDD5t_?qi(D~+&GUW!N0n%x4X_9h&FAZW z6J$hNiZ3DRoNITh(uv@jnyd^_^vecR>%`FyqWVpjVPwYtFbnwRMbnoCQ+=j3zk&Aj z;<h?|8|5}I2e8;(pOKqE^tkR%r8cNq15uauGVnB8>kR{!=Qw;5d;&T;jh`F$tIXA= zOjf!&ZvZ>iBdXcm+UV5Vf|$)%dechLN-th70)|wy7q^Q{btnl_B4GO5CST>Xe@k<2 z_=i`M&?hhdOO((DKIO(Wz={WVz$2sv)+efIKn>uAI~?nbz1CBw(Zo50LyTap4L}Sw zM};FgN6lzx-L`ro^A4V{Ro{~{qt8EP-{_k=%dEsGinmMSD}k6dWWulPCzSf;0y$uT z-qq(?Pg)0pY1o-aooe75qI?yDzg01`Cfh&Ev<LWu@=a>5ixxLgnKh&(#L;)b=Kt`M z`vNi>_Tn17$)o&{a_pr#?j4_3k4~Is0lqX~3&EG_PwAHq`$Prt_Z0ej?(Ci<h7$Fg z#LoLqKEk0p(9L!Ns$k)QC3QT2;3FD6v+K|Nc=^&V;zUSb)SEvttH?S$NfLXV;yGFD z%UVH_Ha*;Eu3@tz0%-LsZ~}TOOJ|$rn(g&GNHnrfNy#76V=lR7jd=#to`G?lMpx<% zK)%6D6yX@#`t8cYs;|LzVPa=;k4pydq_}hhWU!MaMx<DK{%&Xs(1f=HPB-SHe%l<F zgkfJw9yy1>!U>!h1r$v^Q9ED$>qgpdrI-HZcoY=X{IeMYv{PnJQ0yD3iW+k*0cWU> z;J6)6_Kh-k|MZhv!PAGeFr3qpw*0AZj_m*WZmIAma|MMZ;eeo;e+O_UN~ak>n#IZG zyLaycr#S4l5)7qi-VuG3o!BQ%2h=n{omdIG2TZbt{(Q=_(I03P>t3#&?K<<-7twZN ze}PnJyW9m-lR8L-ep%ptK*~fFcC)0>`5I{aHSk4_WkK%nudEZ#$Pl-)%whgP^t%m8 zKM~tvwD+}S*T4RJcJAT!ItWus0JQ6>C&0v#=mf|L<J~h!jD=6w$>KnxYQJPp17iS% zag`k%Fpg!D4$M{1_%3zGO*_@jFk!ZV8|<`~6*V7C2Jv5Bf@iPRTE`E5hGQWyUldT& zmGP;?#iaZ70q5>bS>r<l5bm;Uatz-Z{f$TeEMT@Fen&<p+b-Y;0v1Lv(JAqs5CO|7 zV~@5M=R>$kl5k_4TAeXmTzToQA6{g;o4>>_Rz%B%1rlFn;*3<hkNGy~0mJ0W%gaP< zbH}T^3?__*=`%Bg3xP<jx?t|2HOqj>MX)>9eR)|zj-IClvtSmlKdX2DI^Gd+L=64O z#B$%X+$2e8^NV^3<wnbLn;Q|=@btMz)85Z6E{D1*K3MlW7XhtK(g&Cn4=DE74)#I1 zW3{^tw|a=0f;!{*Kxz?zqi^=4Nte5UK%JYe|LSKV_M8`rQTD%+WFD9anNAq|3>k(1 zmJq~>M;hUgVKffLhz4M}a-KWShdNdFXTOASvJn$VohoaMs4l-4V0fi&AzU!~ahjy2 zaW9s*<5-|!z&-!RK$e7a!Ni+GhL`z0HD$v@Y97w|p=P9k1dA6ErD(1e#m3m1CRJLV zqOEYKOO#Yf`0ER~5Cs<dfJCOf&TTO~S0kc&kr{?oUD_6^dB?!ykS|5zL<0aric;Hc zAwE($>xdjU*;2FSg(TRC^|qA#SBbpGX-qgQDn?rgSJfX#ROJBf!G=kvj1a*z5T$>> zXp-$fO!&qwQOr1rJ{Zzw)@v+aM*>rTjQ6vNivDBaQ>AN*C3yrP$*Wwi>0dcM!v|%> zLhLS>fc2USI2Zm!M$_>D{vZ%gseIXc2Mj_Hrx?PcugZ<q;mcmMUVt0dI?pt8^hK=q zZr4nS1Yf#p{OIwmDn4-FPhjThYSQ!98gGGq=-Oo7J(9`D1NO79PAz<@de&rI8_d<5 zez%$dj3f{x__-xhhFoTVZa;_>Sr|iTgyTeNfP&(N5;Io87ri&`i|l3gfw91evx7~z zqbb#~Du8dP0ZsUDk1OrjXNI_ew|-p+ATxEy1d_5hmmiSy%eAH0X0o2+a8>@DES8gh z!3*fSEH1@qXTraowA}@NoE=OIqv!7c)RWLEz3`RFqwOi?nMD>bZqr<yld}E*W)~b5 zOnevlfXS-PD6pLlr7$r|FULR2R*&J_Z{GED*{5Y+&)8q=>;%RNrIq5lxXjTZN+&N; zihtE^_J3);GbR|!h|subVCp`C1_reZF7}2Irxt@`uI)gvJ9a=JSEovYm-Np6clgDg zp$-`0q>iCz0=jATCr#Jj>EgCpL^>Mel8szkfyWa7xkZ?Mv9WL^E8yY+DIjjq8?=Im z{_OIkld!Xx94cV`am5fIJZz0J(LkRD5R39WK_a~#e%((cwJOd&W$fajkp>D_<A5%8 zQ4`Q=E}`<IMqdLnC>;P08cO>D$=@^}V=M>W$4G$;=Bx*C^t5<XI5+{&gD}VOYda5r z`<<yEM@mBectYvTv6EwL)xwuf-vb|@9vIvZE#?FINo3?m3du>koI0R6c7Z>j6ox<k zKkZ%nKa^=3pC(1I*jH#P$2QhFwsP3UX_ajCmdb{Yakjga!yp<AW@uZHqP8ufjjcAN z1GAWMh*6P_4#{c87zRn0Neq)Yz1Q<hdwBQ#y#K-Y1)t|*p69vm`}$tr>$<<+8=(8U z7QpDWuA=_-R|fA8p&KAvq?GfN)Co<&)i~nR?>^>*?X9QQ(wj}!Y}&fs+}u1I6d!p= zKc6ffF>q)$()$7B9H$|l7w$RmIjZ}7q16Yjim*2?Z%_fLb$Ba+DH6e2wPAK5$I|Ic z3FzBmpMev}5_Ge7$2OD6+tbKv-ELT%`UEpd_g4c%I?NZpkU=D!TUkUz8xUup8*$?5 z`c3G~RBl~|O~N#N?A$cV0kNG3@9Q>JT&^z@5P`ktNF}1y(qgiIp9w`OM#6M#>}g_L zD0RR)xafZAzc1`_oVfFRV0m>v=iRNd#d8KJQ`9rcn(z1PYHMpht*kwQWYBcCui#KD zL*yq+hKb?n;&rb~uOp5Jr<rCgWIuv*`wdj>Cy^kHJ$c>|uVW&a?4ynxHn1(WsQ_Wr zBi02vedBp?w#I|w8hOzAGCUk3&t`rfXN=`c_>QX3<PoW~X6q0HMs9fSmnMsXN#AnY zZjCjYKGPvDHjU*6>x0))u(G?a)T`J%gzCQ5;qA8Mil6B8U-QK?ClI$!>TI!VW(V5( zRr2|!NgHGS`2if7fA$>1qFUP*SGQC9zb|S*z~gL7_jk53$o$)+(FuYtVuzX>rNWV$ zvH%_j(ne^gk3_>&Y*R;^t{Y%Ej4nrj6!DvWl>F#XdDSC>8wH$*y*s>i9^CV(GAgU^ zN95@}-}uNow7(f4g85b`J^WRc1cBjL7Q^RlkzC@qrZdRWzQPMd*#lK6SH8PloBcfM zgwH79>#b(=_glCcW_zFP+F^Y5ao}P6GlRmPqMBD%>X?WgWcpXFv3Iw%CvzqxIUVz& zx{K{`ZAaQhyh|(N1I8t_gL#t%{PA%Kxq;L(*BeY>J1;O`hn-hod!Q{UN5}F_*GxF8 z35f8K;@E`=H;K5F8aP~cWReL!*v@wT9ObwSI2O}GH}Iu#Y_>ozKrAz#8axIIdP|TS z#%9!WN(osEA&x7zVq)8!7ZUQ8THtB7+Lfr-Gz<Hh&<B}3zZr|v)GydM%VxMU8N!4# z8-~xFfd22F6?DSZb|*jjq5sm^@pgVsLK5&V78qm~CC&{fmr>IIx6Ipu%1UJHGD1Jo z#6N8DAO+O8LOx6TSC(WP!md|uy-PKPn{CP*eSB7w@Qfo(;tkYB!zyQ&vKbPBO<G>O z21C{QZUu+s&mgDa!0}pNZ>(b-G{t3bTF@J1=BL|XGJEg-Vu_?sHQS7un%tI2L@UYD znFrbZh{1|xQw~gfY>{&ckyR5HjuX7}mUYGv=RK*#k`4I*FZ5)^Rwgx-BlB+(cb>O6 zq-DB0s;ktC-))pgx;XYUpYHdTKhKJZ$qyn;?2Z)6iNKu45Jg&9K2@IfWjaHSKuXIQ zZUa7zA@`2jlf}aMrllHH;9LpcW2Yy>9UeR9ORI@Aa?iQ<ZV~F>`b%MfKbm=8o5SOg zvMVQW9ajWC>X$M65j08L++F5`wYfXapF(G-K;@(!j%FEHSCx|KOjPlshP9Mzo=v)C zsMC;BuSO%VHy<RWfZmr0Y-_NxRZmI^!_%S;A<ofy@af>4_<XLc+?|YAmokDt$3wa? z;fIoe5KYzQXfa|E$JfM$;-I)>edI9EL53RptF9SvdNbi^Ibr4x^l(JAq+siYxqT_% zfMXu%4eT{8c`cX(H_-$!!trg>QdZgin_#KzB1v>|<>^ccB7C9NaRVd+r8jlxI)Y1- z3C+Gf7wByepKWZds*dbcFFc!jfa96FuAc`!_$AY3G)@Y1%j&#drATVFI{9eQMXj|i z5XRF$wFyvIiqbEYJD4JGG7OtRtM%iF=h0Ug^1_0FEI4KOM_nfDqIAD{Uep`?iLmtO zlEqNy14KFuCWX`2qlPrYKtw1p4TkR+2X;aiA7?OEc19%#T)h2YG<-?}Y$g;v4ANu8 z$se7fRiQFO(R#;0!LvzIH%oQUFV)&5nK9djW9{|Svl}`fexTu6W!vU>Mb*?;GwT<u z^i(fAEGw+^Sk1I6(dl*fB$PkXJd-RhF`NM~NCZEO;7v#F79@EoNonagjMV;|I|^+! zo0ggEDtsBHTIY9?2V9G<Ga?etwkywl3(SCxw6b*QPg`4(Qu+K|sF+yG4Cw=hceYze z=`ox^#4BPCo(~<PCJ~>(=Q0?|6GCKwDt1CdS{)KA%kPn@#O)D5A$K_qYQpII$5upx zvXgyVh_I$~qmygw${>eDv$;u~_+zUiGmG3DYbNXrGl9}DZ#!$=lrC_qzkU1@K{-RH z-%17(4c<aHF1OP!-_f)lvvdPLO+H+PI$1f~z70cw_k@{jA$)TwVK>6MWFJkYu91D0 zAJ~%%E5c<#t9`iD@;!300=^>Tt3>6kPRl!ceJ$>+jx>*AR^4F3qML?X!kaXbI3v-n z`8pfOx#>xDd49;e)&!QP-aC-xX>lVDd6(zmnF$R++A{tV#N5xOrBcrgOGSJR%x^cl zi~=V%NZ4Dd;3x<po_9N-_V@a?d3qmnJC8$`T|6B=Rc7NdmZvT8Ee~Q7fbI~^$taQ2 zM*{_;3-Se*2i(&&LWnlJV0^tZw9S1IaLW)7^-zfwbo<hQyz#4O3`#8=)xnEP?<?cO z;Q<raY^ay3;KT<S5PZ5wzkXe_?Lv`546hOHQZ#>0*&qS0zq{C_K~-b7<M6RNG;0Zg zMZ4`Rnd@TzNSV_PeY{N9^}6x}4CWIq@;?FsLhy{nl0`f^Bo5G?Vsvh{K?i6x3A@%l z>Y%EwRn&}`INS76U*KDPsHc_^FUR@1-NIKybeGX!mz85JWI)S<=Plv5XQa*dm+FyT z|H@WZrqbMkgX6@01J*t2S%F&I`@lKgr#atZAn~^ZD*^e{Yu_Mc`EOgi4Rw@Lr>L!U z^;oX4=wf`^A&^KCiky<)bvO;nF7A)owHl}81gAW(FO#X~ICi}OU5J3(D5Y&TDk{u8 zpN<JR_`IuMPE08K4P7!QPz^G<EjcV`6>tz)yOm0o&CuyB>hFD1Ch{EMTnj##@jAFJ z;SdfmqJ9<!+dNFD6xaqa69worm2jZ?k!+ikS3e<1D<HzH*_H2SRwOH75emQHB)*$G z%RJ+$-w#=BFLo5n8PUM-h>7ad3eG@ne0`48w%w`AgOa@>0)>C#2188Wxsx2!z_bJ_ z^E2eBWlal=Rs0%LlNT<Mk71~OoS5L50I3^;1~C~{`a|FMHjAhD)Weipk(xNAW)B(2 zitRe0Nfb01JG5ZdyjJTW$r&D6C{qf1p6*9=wW=5~mpT&$YIyD`NQgf9*^KS$WUm>y za&A%krl8eSR15@>9}LH`OfP0F<nA#h@bmbcdAjo1KLHE$S4a3~WhlrjuXT&MK!>$Y zBMIKP1{RbDGa4tIte%wa{)HKaV{~5eOvFnh0#U)na3+YA>Ra9$hh%vyN`=nS2B^t+ zM=6k*qq)u54CRmF#D}`BRYQxF4jqE{(~*br&?leU2GaDko}M4LAL-MI<k?re%g!#; zJk<q8P@imO{LFe!-WP^hs-o>@O^)bF;^_CF8Q610T@Mwssk{Uw|I3R-cTnh%j|Re5 zcet&(#N8*~3PUj&xfB7JETU~!FFMWWD<YQ+VRF8XGedG6ItmEMU4pfPLd$OaS|mE$ ze_lEb#_g*$t3J%*htJ6<gkdX;?~->$<$n&Bz6N>fzJL?|c(7eCanEZf<VP@|>lV4` zRakOnRxSViU?tZ8tzHczpvtJfF71Q6t;$D5$$#F<aE~{LpW+F1|9A^CxZ8=H8~^rR z@HyAbK#}sLL*PH&;%8_rwEXtr%#=Sq`Tq_t=CopXv5MhELq@TBQIt@C1B$eOy$W!E zxKMzD0v!HGqtLlmFb9O~D8NC!BoyGF00#v){BPB!U=9lA@JC!I$_hnU@mEhq!5kFK u;jbo`qGKlS=_$$zMbF`H-CeT`*|O3xZuNtMm#Q)FwcTU));sPYNB;x7xk;k{ diff --git a/Theorie/Threads/S6-fig/figures.003.png b/Theorie/Threads/S6-fig/figures.003.png deleted file mode 100644 index 577900fb56fe8884027f5c98c054993f60a4c217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72913 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 RB_w$KcJ0oul~?aQ{eRvC$2I@} diff --git a/Theorie/Threads/S6-src/Makefile b/Theorie/Threads/S6-src/Makefile deleted file mode 100644 index 2aa4fb2..0000000 --- a/Theorie/Threads/S6-src/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# -# Makefile for source code -# -# Builds all .c files, assuming they are all independant and runs them -# to collect the output on stdout -# -# Automatically builds some of the examples to be included in the text -# - -GCC = gcc - -CFLAGS = -Wall -std=c99 -LDFLAGS = -lpthread - -ASMFLAGS = -Wall -std=c99 -O0 -fverbose-asm -fno-stack-protector -m32 -S - -CFILES := $(patsubst %.c,%.exe,$(wildcard *.c)) -ASMFILES := $(patsubst %.c,%.s,$(wildcard *.c)) -OUTPUT := $(patsubst %.c,%.out,$(wildcard *.c)) - - -all: ${CFILES} ${OUTPUT} - -%.s: %.c - @echo compiling $< - $(GCC) $(ASMFLAGS) $< - -%.exe: %.c - @echo compiling $< - $(GCC) $(CFLAGS) -o $@ $< $(LDFLAGS) - -%.out: %.exe - rm -f $@ - @echo executing $< - ./$< >$@ - diff --git a/Theorie/Threads/S6-src/arraylist.c b/Theorie/Threads/S6-src/arraylist.c deleted file mode 100644 index 406b7a1..0000000 --- a/Theorie/Threads/S6-src/arraylist.c +++ /dev/null @@ -1,53 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> - -#define N_THREADS 4 -#define LIST_SIZE 1000 -#define N_RAND 100000 - -static struct { - pthread_mutex_t mutex; - int val; -} list[LIST_SIZE]; - -static void *thread_random(void *arg) -{ - int i, r; - - for (i = 0; i < N_RAND; ++i) { - r = rand() % LIST_SIZE; - - pthread_mutex_lock(&list[r].mutex); - list[r].val++; - pthread_mutex_unlock(&list[r].mutex); - } - - return NULL; -} - - -int main (int argc, char const *argv[]) -{ - int i, sum; - pthread_t threads[N_THREADS]; - - // init elements mutexes - for (i = 0; i < LIST_SIZE; ++i) - pthread_mutex_init(&list[i].mutex, NULL); - - for (i = 0; i < N_THREADS; ++i) - pthread_create(&threads[i], NULL, thread_random, NULL); - - for (i = 0; i < N_THREADS; ++i) - pthread_join(threads[i], NULL); - - sum = 0; - for (i = 0; i < LIST_SIZE; ++i) { - sum += list[i].val; - pthread_mutex_destroy(&list[i].mutex); - } - printf("Sum of all elements: %d =?= %d\n", sum, N_THREADS * N_RAND); - - return 0; -} diff --git a/Theorie/Threads/S6-src/arraylist2.c b/Theorie/Threads/S6-src/arraylist2.c deleted file mode 100644 index 07ad5d4..0000000 --- a/Theorie/Threads/S6-src/arraylist2.c +++ /dev/null @@ -1,50 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> - -#define N_THREADS 4 -#define LIST_SIZE 1000 -#define N_RAND 100000 - -pthread_mutex_t mutex; -static int list[LIST_SIZE]; - -static void *thread_random(void *arg) -{ - int i, r; - - for (i = 0; i < N_RAND; ++i) { - r = rand() % LIST_SIZE; - - pthread_mutex_lock(&mutex); - list[r]++; - pthread_mutex_unlock(&mutex); - } - - return NULL; -} - - -int main (int argc, char const *argv[]) -{ - int i, sum; - pthread_t threads[N_THREADS]; - - // init elements mutex - pthread_mutex_init(&mutex, NULL); - - for (i = 0; i < N_THREADS; ++i) - pthread_create(&threads[i], NULL, thread_random, NULL); - - for (i = 0; i < N_THREADS; ++i) - pthread_join(threads[i], NULL); - - sum = 0; - pthread_mutex_destroy(&mutex); - for (i = 0; i < LIST_SIZE; ++i) - sum += list[i]; - - printf("Sum of all elements: %d =?= %d\n", sum, N_THREADS * N_RAND); - - return 0; -} diff --git a/Theorie/Threads/S6-src/pthread-mutex-perf.c b/Theorie/Threads/S6-src/pthread-mutex-perf.c deleted file mode 100644 index 63eab9f..0000000 --- a/Theorie/Threads/S6-src/pthread-mutex-perf.c +++ /dev/null @@ -1,116 +0,0 @@ -/************************************** - * pthread-mutex.c - * - * Programme d'exemple de pthread avec - * utilisation de mutex pour éviter une - * violation de section critique - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> -#include <sys/time.h> - -/* Return t2-t1 in microseconds */ -long timeval_diff(struct timeval *t2, struct timeval *t1) -{ - long diff = (t2->tv_usec + 1000000 * t2->tv_sec) - (t1->tv_usec + 1000000 * t1->tv_sec); - return (diff); -} - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA -#include <pthread.h> -#define LOOP 40000 -#define LOOP_CRITIQUE 40000 -#define N 4 - -int percent; // pourcentage de temps en section critique -int nthreads; // nombre de threads -pthread_mutex_t mutex; - -void critique() { - long j=0; - for(int i=0;i<(LOOP_CRITIQUE*percent)/100;i++) { - j+=i; - // ... - } -} - -void noncritique() { - int j=0; - for(int i=0;i<(LOOP_CRITIQUE*(100-percent))/100;i++) { - j-=i; - // ... - } -} - - -void *func(void * param) { - for(int j=0;j<LOOP/nthreads;j++) { - pthread_mutex_lock(&mutex); - critique(); - pthread_mutex_unlock(&mutex); - noncritique(); - } - return(NULL); -} - -int main (int argc, char *argv[]) { - int err; - struct timeval tvStart, tvEnd; - long mesures[N]; - - if(argc!=3) - return(EXIT_FAILURE); - - char *endptr; - percent=strtol(argv[1],&endptr,10); - nthreads=strtol(argv[2],&endptr,10); - - pthread_t thread[nthreads]; - - err=pthread_mutex_init( &mutex, NULL); - if(err!=0) - error(err,"pthread_mutex_init"); - - for (int j=0;j<N;j++) { - - err=gettimeofday(&tvStart, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - for(int i=0;i<nthreads;i++) { - err=pthread_create(&(thread[i]),NULL,&func,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - for(int i=nthreads-1;i>=0;i--) { - err=pthread_join(thread[i],NULL); - if(err!=0) - error(err,"pthread_join"); - } - err=gettimeofday(&tvEnd, NULL); - if(err!=0) - exit(EXIT_FAILURE); - - mesures[i]=timeval_diff(&tvEnd, &tvStart); - sum+=mesures[i]; - - } - printf("%d, %d, %ld\n",nthreads,percent,sum/N); - - err=pthread_mutex_destroy(&mutex); - if(err!=0) - error(err,"pthread_destroy"); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S6-src/pthread-mutex.c b/Theorie/Threads/S6-src/pthread-mutex.c deleted file mode 100644 index 891d1cf..0000000 --- a/Theorie/Threads/S6-src/pthread-mutex.c +++ /dev/null @@ -1,75 +0,0 @@ -/************************************** - * pthread-mutex.c - * - * Programme d'exemple de pthread avec - * utilisation de mutex pour éviter une - * violation de section critique - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA -#include <pthread.h> -#define NTHREADS 4 - -long global=0; -pthread_mutex_t mutex_global; - -int increment(int i) { - return i+1; -} - -void *func(void * param) { - int err; - for(int j=0;j<1000000;j++) { - err=pthread_mutex_lock(&mutex_global); - if(err!=0) - error(err,"pthread_mutex_lock"); - global=increment(global); - err=pthread_mutex_unlock(&mutex_global); - if(err!=0) - error(err,"pthread_mutex_unlock"); - } - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - err=pthread_mutex_init( &mutex_global, NULL); - if(err!=0) - error(err,"pthread_mutex_init"); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&func,NULL); - if(err!=0) - error(err,"pthread_create"); - } - for(int i=0; i<1000000000;i++) { /*...*/ } - - for(int i=NTHREADS-1;i>=0;i--) { - err=pthread_join(thread[i],NULL); - if(err!=0) - error(err,"pthread_join"); - } - - err=pthread_mutex_destroy(&mutex_global); - if(err!=0) - error(err,"pthread_mutex_destroy"); - - printf("global: %ld\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S6-src/pthread-mutex.out b/Theorie/Threads/S6-src/pthread-mutex.out deleted file mode 100644 index f9d92b2..0000000 --- a/Theorie/Threads/S6-src/pthread-mutex.out +++ /dev/null @@ -1 +0,0 @@ -global: 4000000 diff --git a/Theorie/Threads/S6-src/pthread-neg2.c b/Theorie/Threads/S6-src/pthread-neg2.c deleted file mode 100644 index efc0b74..0000000 --- a/Theorie/Threads/S6-src/pthread-neg2.c +++ /dev/null @@ -1,51 +0,0 @@ -/************************************** - * pthread-neg.c - * - * Programme d'exemple de pthread utilisant les - * arguments et retournant une valeur - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA -#define NTHREADS 4 -void *neg (void * param) { - int *l; - l=(int *) param; - int *r=(int *)malloc(sizeof(int)); - *r=-*l; - return ((void *) r); -} - -int main (int argc, char *argv[]) { - pthread_t threads[NTHREADS]; - int arg[NTHREADS]; - int err; - - for(long i=0;i<NTHREADS;i++) { - arg[i]=i; - err=pthread_create(&(threads[i]),NULL,&neg,(void *) &(arg[i])); - if(err!=0) - error(err,"pthread_create"); - } - - for(int i=0;i<NTHREADS;i++) { - int *r; - err=pthread_join(threads[i],(void **)&r); - printf("Resultat[%d]=%d\n",i,*r); - free(r); - if(err!=0) - error(err,"pthread_join"); - } - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S6-src/pthread-neg2.out b/Theorie/Threads/S6-src/pthread-neg2.out deleted file mode 100644 index d5823dd..0000000 --- a/Theorie/Threads/S6-src/pthread-neg2.out +++ /dev/null @@ -1,4 +0,0 @@ -Resultat[0]=0 -Resultat[1]=-1 -Resultat[2]=-2 -Resultat[3]=-3 diff --git a/Theorie/Threads/S6-src/pthread-philo.c b/Theorie/Threads/S6-src/pthread-philo.c deleted file mode 100644 index 33d63c1..0000000 --- a/Theorie/Threads/S6-src/pthread-philo.c +++ /dev/null @@ -1,68 +0,0 @@ -/************************************** - * pthread-philo.c - * - * Programme d'exemple de pthread avec - * philosophes qui dinent et mutex - * - **************************************/ - -///AAA -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdbool.h> -#include <unistd.h> - -#define PHILOSOPHES 3 - -pthread_t phil[PHILOSOPHES]; -pthread_mutex_t baguette[PHILOSOPHES]; - -void mange(int id) { - printf("Philosophe [%d] mange\n",id); - for(int i=0;i< rand(); i++) { - // philosophe mange - } -} - -void* philosophe ( void* arg ) -{ - int *id=(int *) arg; - int left = *id; - int right = (left + 1) % PHILOSOPHES; - while(true) { - printf("Philosophe [%d] pense\n",*id); - pthread_mutex_lock(&baguette[left]); - printf("Philosophe [%d] possède baguette gauche [%d]\n",*id,left); - pthread_mutex_lock(&baguette[right]); - printf("Philosophe [%d] possède baguette droite [%d]\n",*id,right); - mange(*id); - pthread_mutex_unlock(&baguette[left]); - printf("Philosophe [%d] a libéré baguette gauche [%d]\n",*id,left); - pthread_mutex_unlock(&baguette[right]); - printf("Philosophe [%d] a libéré baguette droite [%d]\n",*id,right); - } - return (NULL); -} -///BBB -int main ( int argc, char *argv[]) -{ - long i; - int id[PHILOSOPHES]; - - srand(getpid()); - - for (i = 0; i < PHILOSOPHES; i++) - id[i]=i; - - for (i = 0; i < PHILOSOPHES; i++) - pthread_mutex_init( &baguette[i], NULL); - - for (i = 0; i < PHILOSOPHES; i++) - pthread_create(&phil[i], NULL, philosophe, (void*)&(id[i]) ); - - for (i = 0; i < PHILOSOPHES; i++) - pthread_join(phil[i], NULL); - - return (EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S6-src/pthread-philo2.c b/Theorie/Threads/S6-src/pthread-philo2.c deleted file mode 100644 index 1e4113b..0000000 --- a/Theorie/Threads/S6-src/pthread-philo2.c +++ /dev/null @@ -1,95 +0,0 @@ -/************************************** - * pthread-philo2.c - * - * Programme d'exemple de pthread avec - * philosophes qui dinent et mutex - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdbool.h> -#include <unistd.h> -#include <errno.h> -#include <string.h> - -#define PHILOSOPHES 3 - -static pthread_mutex_t baguette[PHILOSOPHES]; - - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -void mange(int id) { - printf("Philosophe [%d] mange\n",id); - for(int i=0;i< rand(); i++) { - // philosophe mange - } -} - -///AAA - -void* philosophe ( void* arg ) -{ - int *id=(int *) arg; - int left = *id; - int right = (left + 1) % PHILOSOPHES; - while(true) { - // philosophe pense - if(left<right) { - pthread_mutex_lock(&baguette[left]); - pthread_mutex_lock(&baguette[right]); - } - else { - pthread_mutex_lock(&baguette[right]); - pthread_mutex_lock(&baguette[left]); - } - mange(*id); - pthread_mutex_unlock(&baguette[left]); - pthread_mutex_unlock(&baguette[right]); - } - return (NULL); -} -///BBB -int main ( int argc, char *argv[]) -{ - int i; - int id[PHILOSOPHES]; - int err; - pthread_t phil[PHILOSOPHES]; - - srand(getpid()); - - for (i = 0; i < PHILOSOPHES; i++) - id[i]=i; - - for (i = 0; i < PHILOSOPHES; i++) { - err=pthread_mutex_init( &baguette[i], NULL); - if(err!=0) - error(err,"pthread_mutex_init"); - } - - for (i = 0; i < PHILOSOPHES; i++) { - err=pthread_create(&phil[i], NULL, philosophe, (void*)&(id[i]) ); - if(err!=0) - error(err,"pthread_create"); - } - - for (i = 0; i < PHILOSOPHES; i++) { - pthread_join(phil[i], NULL); - if(err!=0) - error(err,"pthread_join"); - } - - for (i = 0; i < PHILOSOPHES; i++) { - pthread_mutex_destroy(&baguette[i]); - if(err!=0) - error(err,"pthread_mutex_destroy"); - } - - return (EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S6-src/pthread-spin.c b/Theorie/Threads/S6-src/pthread-spin.c deleted file mode 100644 index b4839da..0000000 --- a/Theorie/Threads/S6-src/pthread-spin.c +++ /dev/null @@ -1,66 +0,0 @@ -/************************************** - * pthread-spin.c - * - * Programme d'exemple de pthread avec - * utilisation de spinlock pour éviter une - * violation de section critique - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -///AAA - -#define NTHREADS 4 - -long global=0; - -static pthread_spinlock_t spinlock_global; - - -int increment(int i) { - return i+1; -} - -void *func(void * param) { - for(int j=0;j<1000000;j++) { - pthread_spin_lock(&spinlock_global); - global=increment(global); - pthread_spin_unlock(&spinlock_global); - } - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - pthread_spin_init( &spinlock_global, 0); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&func,NULL); - if(err!=0) - error(err,"pthread_create"); - } - for(int i=0; i<1000000000;i++) { /*...*/ } - - for(int i=NTHREADS-1;i>=0;i--) { - err=pthread_join(thread[i],NULL); - if(err!=0) - error(err,"pthread_join"); - } - - printf("global: %ld\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S6-src/pthread-test-if.c b/Theorie/Threads/S6-src/pthread-test-if.c deleted file mode 100644 index f3fa8e2..0000000 --- a/Theorie/Threads/S6-src/pthread-test-if.c +++ /dev/null @@ -1,77 +0,0 @@ -/************************************** - * pthread-test.c - * - * Programme d'exemple de pthread avec condition de course - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA - -long global=0; -int even=0; -int odd=0; - -void test_even(int i) { - if((i%2)==0) - even++; -} - -int increment(int i) { - return i+1; -} - -void *inc(void * param) { - for(int j=0;j<1000000;j++) { - global=increment(global); - } - pthread_exit(NULL); -} - -void *is_even(void * param) { - for(int j=0;j<1000000;j++) { - test_even(global); - } - pthread_exit(NULL); -} -///BBB -int main (int argc, char *argv[]) { - pthread_t thread_inc; - pthread_t thread_even; - int err; - - err=pthread_create(&(thread_inc),NULL,&inc,NULL); - if(err!=0) { - error(err,"pthread_create"); - } - - err=pthread_create(&(thread_even),NULL,&is_even,NULL); - if(err!=0) { - error(err,"pthread_create"); - } - - err=pthread_join(thread_inc,NULL); - if(err!=0) { - error(err,"pthread_join"); - } - - err=pthread_join(thread_even,NULL); - if(err!=0) { - error(err,"pthread_join"); - } - - printf("global: %ld, even:%d\n",global,even); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S6-src/pthread.c b/Theorie/Threads/S6-src/pthread.c deleted file mode 100644 index 9f781d0..0000000 --- a/Theorie/Threads/S6-src/pthread.c +++ /dev/null @@ -1,71 +0,0 @@ -/************************************** - * pthread.c - * - * Programme d'exemple de pthread - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -int global=0; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -void *thread_first(void * param) { - global++; - return(NULL); -} - -void *thread_second(void * param) { - global++; - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - - ///AAA - pthread_t first; - pthread_attr_t attr_first; - size_t stacksize; - - int err; - - err= pthread_attr_init(&attr_first); - if(err!=0) - error(err,"pthread_attr_init"); - - err= pthread_attr_getstacksize(&attr_first,&stacksize); - if(err!=0) - error(err,"pthread_attr_getstacksize"); - - printf("Taille par défaut du stack : %ld\n",stacksize); - - stacksize=65536; - - err= pthread_attr_setstacksize(&attr_first,stacksize); - if(err!=0) - error(err,"pthread_attr_setstacksize"); - - err=pthread_create(&first,&attr_first,&thread_first,NULL); - if(err!=0) - error(err,"pthread_create"); - ///BBB - - for(int i=0; i<1000000000;i++) { /*...*/ } - - - err=pthread_join(first,NULL); - if(err!=0) - error(err,"pthread_join"); - - printf("global: %d\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S6-src/thread_crash.c b/Theorie/Threads/S6-src/thread_crash.c deleted file mode 100644 index b9f34e9..0000000 --- a/Theorie/Threads/S6-src/thread_crash.c +++ /dev/null @@ -1,34 +0,0 @@ -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> - -#define N_THREADS 3 - -pthread_mutex_t global_mutex; - -static void *thread_work(void *arg) -{ - pthread_mutex_lock(&global_mutex); - - /* Do some work here */ - - pthread_exit(NULL); - pthread_mutex_unlock(&global_mutex); -} - - -int main (int argc, char const *argv[]) -{ - int i; - pthread_t threads[N_THREADS]; - - pthread_mutex_init(&global_mutex, NULL); - - for (i = 0; i < N_THREADS; ++i) - pthread_create(&threads[i], NULL, thread_work, NULL); - - for (i = 0; i < N_THREADS; ++i) - pthread_join(threads[i], NULL); - - return 0; -} diff --git a/Theorie/Threads/S7-src/Makefile b/Theorie/Threads/S7-src/Makefile deleted file mode 100644 index 7a5a157..0000000 --- a/Theorie/Threads/S7-src/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# -# Makefile for source code -# -# Builds all .c files, assuming they are all independant and runs them -# to collect the output on stdout -# -# Automatically builds some of the examples to be included in the text -# - -GCC = gcc - -CFLAGS = -Wall -std=c99 -g -LDFLAGS = -lpthread - -ASMFLAGS = -Wall -std=c99 -O0 -fverbose-asm -fno-stack-protector -m32 -S - -CFILES := $(patsubst %.c,%.exe,$(wildcard *.c)) -ASMFILES := $(patsubst %.c,%.s,$(wildcard *.c)) -OUTPUT := $(patsubst %.c,%.out,$(wildcard *.c)) - - -all: ${CFILES} ${OUTPUT} - -%.s: %.c - @echo compiling $< - $(GCC) $(ASMFLAGS) $< - -%.exe: %.c - @echo compiling $< - $(GCC) $(CFLAGS) -o $@ $< $(LDFLAGS) - -%.out: %.exe - rm -f $@ - @echo executing $< - ./$< >$@ - diff --git a/Theorie/Threads/S7-src/pthread-barrier.c b/Theorie/Threads/S7-src/pthread-barrier.c deleted file mode 100644 index 0203391..0000000 --- a/Theorie/Threads/S7-src/pthread-barrier.c +++ /dev/null @@ -1,70 +0,0 @@ -/************************************** - * pthread-barrier.c - * - * Programme d'exemple de barrières - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - -void phase1(void) -{ - // - return; -} - - -void phase2(void) -{ - // - return; -} - -///AAA -#define NTHREADS 4 -pthread_barrier_t rendezvous; - -void *compute(void * param) { - phase1(); - pthread_barrier_wait(&rendezvous); - phase2(); - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - err=pthread_barrier_init(&rendezvous, NULL,NTHREADS); - if(err!=0) { - error(err,"pthread_barrier_init"); - } - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,func[i],NULL); - if(err!=0) { - error(err,"pthread_create"); - } - } - - for(int i=0;i<NTHREADS;i++) { - err=pthread_join(thread[i],NULL); - if(err!=0) { - error(err,"pthread_join"); - } - } - pthread_barrier_destroy(&srendezvous); - if(err!=0) { - error(err,"pthread_barrier_destroy); - } - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S7-src/pthread-id.c b/Theorie/Threads/S7-src/pthread-id.c deleted file mode 100644 index e72193f..0000000 --- a/Theorie/Threads/S7-src/pthread-id.c +++ /dev/null @@ -1,95 +0,0 @@ -/************************************** - * pthread-specific.c - * - * Programme d'exemple de pthread qui utilise une - * zone mémoire pour stocker des données - * spécifiques au thread - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -#define MAXNUM 1000 -#define NTHREADS 4 - -struct result { - long x; - long y; - long z; -}; - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -long power(long i, long j) { - long r=i; - while(j>0) { - r=r*i; - j--; - } - return r; -} - -void g(); - -void *f1( void* param) { - - printf("f1 a calculé %d" - return(NULL); -} - - -void *fermat (void * param) { - - struct result *r=(struct result *)malloc(sizeof(struct result)); - if(r==NULL) - error(-1,"malloc"); - - long n=(long) param; - for(long x=1;x<MAXNUM;x++) { - for(long y=1;y<MAXNUM;y++) { - for(int z=1;z<MAXNUM;z++) { - if( (power(x,n)+power(y,n))==power(z,n) ) { - r->x=x; - r->y=y; - r->z=z; - return((void *) r); - } - } - } - } - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t threads[NTHREADS]; - int err; - - err=pthread_create(&(threads[i]),NULL,&fermat,(void *)(long) i+2); - if(err!=0) - error(err,"pthread_create"); - - - - - for(int i=0;i<NTHREADS;i++) { - void *p; - err=pthread_join(threads[i],(void **)&(p)); - - if(err!=0) - error(err,"pthread_create"); - //if(p!=NULL) { - //struct result r; - // r=(struct result) p; - //printf("Trouvé pour %d : x=%ld, y=%ld, z=%ld\n",i+2,r[i].x,r[i].y, r[i].z); - } - - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S7-src/pthread-philo-sem.c b/Theorie/Threads/S7-src/pthread-philo-sem.c deleted file mode 100644 index 8d27d80..0000000 --- a/Theorie/Threads/S7-src/pthread-philo-sem.c +++ /dev/null @@ -1,69 +0,0 @@ -/************************************** - * pthread-philo-sem.c - * - * Programme d'exemple de pthread avec - * philosophes qui dinent et sémaphores - * - **************************************/ - -///AAA -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdbool.h> -#include <unistd.h> - -#define PHILOSOPHES 3 - -pthread_t phil[PHILOSOPHES]; -sem_t baguette[PHILOSOPHES]; - -void mange(int id) { - printf("Philosophe [%d] mange\n",id); - for(int i=0;i< rand(); i++) { - // philosophe mange - } -} - -void* philosophe ( void* arg ) -{ - int *id=(int *) arg; - int left = *id; - int right = (left + 1) % PHILOSOPHES; - while(true) { - printf("Philosophe [%d] pense\n",*id); - sem_wait(&baguette[left]); - printf("Philosophe [%d] possède baguette gauche [%d]\n",*id,left); - sem_wait(&baguette[right]); - printf("Philosophe [%d] possède baguette droite [%d]\n",*id,right); - mange(*id); - sem_post(&baguette[left]); - printf("Philosophe [%d] a libéré baguette gauche [%d]\n",*id,left); - sem_post(&baguette[right]); - printf("Philosophe [%d] a libéré baguette droite [%d]\n",*id,right); - } - return (NULL); -} -///BBB -int main ( int argc, char *argv[]) -{ - long i; - int id[PHILOSOPHES]; - - srand(getpid()); - - for (i = 0; i < PHILOSOPHES; i++) - id[i]=i; - - for (i = 0; i < PHILOSOPHES; i++) - sem_init( &baguette[i], 0 , 1); - - for (i = 0; i < PHILOSOPHES; i++) - pthread_create(&phil[i], NULL, philosophe, (void*)&(id[i]) ); - - for (i = 0; i < PHILOSOPHES; i++) - pthread_join(phil[i], NULL); - - return (EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S7-src/pthread-rw.c b/Theorie/Threads/S7-src/pthread-rw.c deleted file mode 100644 index 22ab932..0000000 --- a/Theorie/Threads/S7-src/pthread-rw.c +++ /dev/null @@ -1,76 +0,0 @@ -/************************************** - * pthread-rw.c - * - * Programme d'exemple de pthread avec - * readers-writers lock - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <stdbool.h> -#include <unistd.h> -#include <sys/types.h> - -#define SIZE 1000000 -#define READERS 10 -#define WRITERS 2 -#define LOOP 10000 - - -pthread_t p[READERS+WRITERS]; -pthread_rwlock_t lock; - -volatile int v[SIZE]; - -void *writer( void *arg) -{ - for(int i=0;i<SIZE;i++) { - pthread_rwlock_wrlock(&lock); - v[i]=rand()%SIZE; - pthread_rwlock_wrunlock(&lock); - } - // ... - printf ("Writer %d terminé\n",gettid()); - return(NULL); - - -} -void* reader ( void* arg ) -{ - int result; - for(int i=0;i<LOOP;i++) { - int id=rand()%SIZE; - pthread_rwlock_rdlock(&lock); - result=v[id]; - pthread_rwlock_rdunlock(&lock); - } - // ... - printf ("Reader %d terminé\n",gettid()); - return(NULL); -} - -///BBB -int main ( int argc, char *argv[]) -{ - int i; - - srand(getpid()); - - pthread_rwlock_init(&lock, 0); - - for (i = 0; i < READERS+WRITERS; i++) { - if(i<READERS) - pthread_create(&p[i], NULL, reader, NULL ); - else - pthread_create(&p[i], NULL, writer, NULL ); - } - - for (i = 0; i < READERS+WRITERS; i++) - pthread_join(p[i], NULL); - - pthread_rwlock_destroy(&lock); - - return (EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S7-src/pthread-sem-before.c b/Theorie/Threads/S7-src/pthread-sem-before.c deleted file mode 100644 index fd45675..0000000 --- a/Theorie/Threads/S7-src/pthread-sem-before.c +++ /dev/null @@ -1,70 +0,0 @@ -/************************************** - * pthread-sem-before.c - * - * Programme d'exemple de sémaphores - * La fonction after ne peut s'exécuter - * q'après la fonction before - **************************************/ - -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA -#define NTHREADS 2 -sem_t semaphore; - -void *before(void * param) { - // do something - for(int j=0;j<1000000;j++) { - } - sem_post(&semaphore); - return(NULL); -} - -void *after(void * param) { - sem_wait(&semaphore); - // do something - for(int j=0;j<1000000;j++) { - } - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - void * (* func[])(void *)={before, after}; - int err; - - err=sem_init(&semaphore, 0,0); - if(err!=0) { - error(err,"sem_init"); - } - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,func[i],NULL); - if(err!=0) { - error(err,"pthread_create"); - } - } - - for(int i=0;i<NTHREADS;i++) { - err=pthread_join(thread[i],NULL); - if(err!=0) { - error(err,"pthread_join"); - } - } - sem_destroy(&semaphore); - if(err!=0) { - error(err,"sem_destroy"); - } - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S7-src/pthread-sem-before.out b/Theorie/Threads/S7-src/pthread-sem-before.out deleted file mode 100644 index e69de29..0000000 diff --git a/Theorie/Threads/S7-src/pthread-sem.c b/Theorie/Threads/S7-src/pthread-sem.c deleted file mode 100644 index 2889055..0000000 --- a/Theorie/Threads/S7-src/pthread-sem.c +++ /dev/null @@ -1,64 +0,0 @@ -/************************************** - * pthread-semt.c - * - * Programme d'exemple de sémaphores - * - **************************************/ - -#include <pthread.h> -#include <semaphore.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -#define NTHREADS 4 - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA - -static sem_t semaphore; -long global=0; - -int increment(int i) { - return i+1; -} - -void *inc(void * param) { - for(int j=0;j<1000000;j++) { - sem_wait(&semaphore); - global=increment(global); - sem_post(&semaphore); - } - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - - sem_init(&semaphore, 0,1); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&inc,NULL); - if(err!=0) { - error(err,"pthread_create"); - } - } - - for(int i=0;i<NTHREADS;i++) { - err=pthread_join(thread[i],NULL); - if(err!=0) { - error(err,"pthread_join"); - } - } - sem_destroy(&semaphore); - printf("global: %ld\n",global); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S7-src/pthread-sem.out b/Theorie/Threads/S7-src/pthread-sem.out deleted file mode 100644 index cb6ea05..0000000 --- a/Theorie/Threads/S7-src/pthread-sem.out +++ /dev/null @@ -1 +0,0 @@ -global: 3837069 diff --git a/Theorie/Threads/S7-src/pthread-specific.c b/Theorie/Threads/S7-src/pthread-specific.c deleted file mode 100644 index 38a347a..0000000 --- a/Theorie/Threads/S7-src/pthread-specific.c +++ /dev/null @@ -1,56 +0,0 @@ -/************************************** - * pthread-specific.c - * - * Programme d'exemple de pthread qui utilise une - * zone mémoire pour stocker des données - * spécifiques au thread - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA -#define LOOP 1000000 -#define NTHREADS 4 - -__thread int count=0; -int global_count=0; - -void *f( void* param) { - for(int i=0;i<LOOP;i++) { - count++; - global_count=global_count-1; - } - printf("Valeurs : count=%d, global_count=%d\n",count, global_count); - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t threads[NTHREADS]; - int err; - - for(int i=0;i<NTHREADS;i++) { - count=i; // local au thread du programme principal - err=pthread_create(&(threads[i]),NULL,&f,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - for(int i=0;i<NTHREADS;i++) { - err=pthread_join(threads[i],NULL); - if(err!=0) - error(err,"pthread_create"); - } - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S7-src/pthread-specific.out b/Theorie/Threads/S7-src/pthread-specific.out deleted file mode 100644 index f0eb4d4..0000000 --- a/Theorie/Threads/S7-src/pthread-specific.out +++ /dev/null @@ -1,4 +0,0 @@ -Valeurs : count=1000000, global_count=-870754 -Valeurs : count=1000000, global_count=-880737 -Valeurs : count=1000000, global_count=-916383 -Valeurs : count=1000000, global_count=-923423 diff --git a/Theorie/Threads/S7-src/pthread-specific2.c b/Theorie/Threads/S7-src/pthread-specific2.c deleted file mode 100644 index 47cec02..0000000 --- a/Theorie/Threads/S7-src/pthread-specific2.c +++ /dev/null @@ -1,77 +0,0 @@ -/************************************** - * pthread-specific.c - * - * Programme d'exemple de pthread qui utilise une - * zone mémoire pour stocker des données - * spécifiques au thread - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <errno.h> - -void error(int err, char *msg) { - fprintf(stderr,"%s a retourné %d, message d'erreur : %s\n",msg,err,strerror(errno)); - exit(EXIT_FAILURE); -} - - -///AAA -#define LOOP 1000000 -#define NTHREADS 4 - -pthread_key_t count; -int global_count=0; - -void g(void ) { - void * data=pthread_getspecific(count); - if(data==NULL) - error(-1,"pthread_getspecific"); - int *count_ptr=(int *)data; - for(int i=0;i<LOOP;i++) { - *count_ptr=*(count_ptr)+1; - global_count=global_count-1; - } -} - -void *f( void* param) { - int err; - int *int_ptr=malloc(sizeof(int)); - *int_ptr=0; - err=pthread_setspecific(count, (void *)int_ptr); - if(err!=0) - error(err,"pthread_setspecific"); - g(); - printf("Valeurs : count=%d, global_count=%d\n",*int_ptr, global_count); - free(int_ptr); - return(NULL); -} - -int main (int argc, char *argv[]) { - pthread_t threads[NTHREADS]; - int err; - - err=pthread_key_create(&(count),NULL); - if(err!=0) - error(err,"pthread_key_create"); - - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(threads[i]),NULL,&f,NULL); - if(err!=0) - error(err,"pthread_create"); - } - - for(int i=0;i<NTHREADS;i++) { - err=pthread_join(threads[i],NULL); - if(err!=0) - error(err,"pthread_create"); - } - err=pthread_key_delete(count); - if(err!=0) - error(err,"pthread_key_delete"); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S7-src/pthread-specific2.out b/Theorie/Threads/S7-src/pthread-specific2.out deleted file mode 100644 index c717fae..0000000 --- a/Theorie/Threads/S7-src/pthread-specific2.out +++ /dev/null @@ -1,4 +0,0 @@ -Valeurs : count=1000000, global_count=-970217 -Valeurs : count=1000000, global_count=-2967957 -Valeurs : count=1000000, global_count=-2978745 -Valeurs : count=1000000, global_count=-3135210 diff --git a/Theorie/Threads/S7-src/reentrant.c b/Theorie/Threads/S7-src/reentrant.c deleted file mode 100644 index 8974344..0000000 --- a/Theorie/Threads/S7-src/reentrant.c +++ /dev/null @@ -1,63 +0,0 @@ -/************************************** - * reentrant.c - * - * Programme d'exemple de fonctions reentrantes - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <unistd.h> -#include <stdlib.h> - - -///AAA -#include <stdint.h> -#define SIZE 10000 - -int g_max=INT32_MIN; -int v[SIZE]; - -int max_vector(int n, int *v) { - int max=INT32_MIN; - for(int i=0;i<n;i++) { - if(v[i]>max) - max=v[i]; - } - return max; -} - -int max_global(int *v) { - if (*v>g_max) { - g_max=*v; - } - return(g_max); -} - -int max_static(int *v){ - static int s_max=INT32_MIN; - if (*v>s_max) { - s_max=*v; - } - return(s_max); -} - -///BBB - -int main (int argc, char *argv[]) { - srand((int) getpid()); - for (int i=0;i<SIZE;i++) { - v[i]=rand()%1000000; - } - printf("max_vector: %d\n",max_vector(SIZE,v)); - int max_g; - int max_s; - for(int i=0;i<SIZE;i++) { - max_g=max_global(&v[i]); - max_s=max_static(&v[i]); - } - printf("max_global: %d\n",max_g); - printf("max_static: %d\n",max_s); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S7-src/strerror.c b/Theorie/Threads/S7-src/strerror.c deleted file mode 100644 index a1571c5..0000000 --- a/Theorie/Threads/S7-src/strerror.c +++ /dev/null @@ -1,21 +0,0 @@ -/************************************** - * strerror.c - * - * Programme d'exemple strerror - * - **************************************/ - -#include <pthread.h> -#include <stdio.h> -#include <unistd.h> -#include <stdlib.h> -#include <string.h> - -int main (int argc, char *argv[]) { - - for(int i=0; i<999;i++) { - printf("strerror[%d] est à l'adresse %p\n",i,strerror(i)); - }; - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S8-src/Makefile b/Theorie/Threads/S8-src/Makefile deleted file mode 100644 index 7a5a157..0000000 --- a/Theorie/Threads/S8-src/Makefile +++ /dev/null @@ -1,36 +0,0 @@ -# -# Makefile for source code -# -# Builds all .c files, assuming they are all independant and runs them -# to collect the output on stdout -# -# Automatically builds some of the examples to be included in the text -# - -GCC = gcc - -CFLAGS = -Wall -std=c99 -g -LDFLAGS = -lpthread - -ASMFLAGS = -Wall -std=c99 -O0 -fverbose-asm -fno-stack-protector -m32 -S - -CFILES := $(patsubst %.c,%.exe,$(wildcard *.c)) -ASMFILES := $(patsubst %.c,%.s,$(wildcard *.c)) -OUTPUT := $(patsubst %.c,%.out,$(wildcard *.c)) - - -all: ${CFILES} ${OUTPUT} - -%.s: %.c - @echo compiling $< - $(GCC) $(ASMFLAGS) $< - -%.exe: %.c - @echo compiling $< - $(GCC) $(CFLAGS) -o $@ $< $(LDFLAGS) - -%.out: %.exe - rm -f $@ - @echo executing $< - ./$< >$@ - diff --git a/Theorie/Threads/S8-src/Makefile-lib b/Theorie/Threads/S8-src/Makefile-lib deleted file mode 100644 index 6cbf869..0000000 --- a/Theorie/Threads/S8-src/Makefile-lib +++ /dev/null @@ -1,30 +0,0 @@ -# -# Makefile for library imax and imath -# - -GCC = gcc -AR = ar -ARFLAGS = -cvq -CFLAGS = -Wall -std=c99 -g -c -LDFLAGS = --static -g - -all: imath - -imax.o: imax.c - @echo compiling imax - $(GCC) $(CFLAGS) imax.c - -libimax.a: imax.o - @echo building libimax - $(AR) $(ARFLAGS) libimax.a imax.o - -imath.o: imath.c imax.h - @echo compiling imath.o - $(GCC) $(CFLAGS) imath.c - -imath: imath.o libimax.a - @echo building imath - $(GCC) $(LDFLAGS) -o imath libimax.a imath.o - -clean: - rm imath libimax.a imax.o imath.o diff --git a/Theorie/Threads/S8-src/atexit.c b/Theorie/Threads/S8-src/atexit.c deleted file mode 100644 index deb7367..0000000 --- a/Theorie/Threads/S8-src/atexit.c +++ /dev/null @@ -1,27 +0,0 @@ -/************************************** - * atexit.c - * - * Programme d'exemple d'utilisation de - * atexit - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> - -void e1() { - printf("Exécution de la fonction e1\n"); -} - -int main (int argc, char *argv[]) { - - int err; - err=atexit(e1); - if(err==-1) { - perror("atexit"); - exit(EXIT_FAILURE); - } - return(EXIT_SUCCESS); - -} -///BBB diff --git a/Theorie/Threads/S8-src/execve-long.c b/Theorie/Threads/S8-src/execve-long.c deleted file mode 100644 index 0b5e791..0000000 --- a/Theorie/Threads/S8-src/execve-long.c +++ /dev/null @@ -1,32 +0,0 @@ -/************************************** - * execve-long.c - * - * Programme d'exemple pour execve - * - *************************************/ - -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <errno.h> -#include <string.h> - -extern char **environ; - -int main (int argc, char *argv[]) { - - if(argc==1) { - fprintf(stderr,"Erreur, nom de l'exécutable nécessaire\n"); - return(EXIT_FAILURE); - } - - int err=execve(argv[1], &(argv[1]), environ); - if(err!=0) { - fprintf(stderr,"Impossible d'exécuter %s, erreur %d %s\n",argv[1],err, strerror(errno)); - exit(EXIT_FAILURE); - } - return(EXIT_SUCCESS); - -} - diff --git a/Theorie/Threads/S8-src/execve.c b/Theorie/Threads/S8-src/execve.c deleted file mode 100644 index 64367f7..0000000 --- a/Theorie/Threads/S8-src/execve.c +++ /dev/null @@ -1,30 +0,0 @@ -/************************************** - * execve.c - * - * Programme d'exemple pour execve - * - *************************************/ - -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -int main (int argc, char *argv[]) { - - char *arguments[]={"expr", "1", "+", "2", NULL}; - char *environnement[]={"LANG=fr",NULL}; - - printf("Exécution du processus %d\n",getpid()); - printf("Exécution de /usr/bin/expr\n"); - int err=execve("/usr/bin/expr", arguments, environnement); - if(err!=0) { - perror("execve"); - exit(EXIT_FAILURE); - } - // jamais atteint - printf("Ce message ne sera jamais affiché\n"); - return(EXIT_SUCCESS); - -} - diff --git a/Theorie/Threads/S8-src/execve.out b/Theorie/Threads/S8-src/execve.out deleted file mode 100644 index 00750ed..0000000 --- a/Theorie/Threads/S8-src/execve.out +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/Theorie/Threads/S8-src/fork-buf.c b/Theorie/Threads/S8-src/fork-buf.c deleted file mode 100644 index 718004d..0000000 --- a/Theorie/Threads/S8-src/fork-buf.c +++ /dev/null @@ -1,58 +0,0 @@ -/************************************** - * fork.c - * - * Programme d'exemple d'utilisation de - * fork - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/types.h> -#include <time.h> - - -void output(char c) { - printf("Processus : %d\n",getpid()); - srand(getpid()+time(NULL)); - for(int i=0;i<60;i++) { - putchar(c); - int err=usleep((unsigned int) (rand()%10000)); - if(err<0) { - perror("usleep"); - exit(EXIT_FAILURE); - } - } -} - -int main (int argc, char *argv[]) { - - if(argc > 1) { - setbuf(stdout,NULL); - } - - pid_t pid; - - pid=fork(); - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - // processus fils - output('f'); - return(EXIT_SUCCESS); - } - else { - // processus père - output('P'); - printf("\n"); - sleep(1); - // ... - return(EXIT_SUCCESS); - } -} -///BBB diff --git a/Theorie/Threads/S8-src/fork-execve.c b/Theorie/Threads/S8-src/fork-execve.c deleted file mode 100644 index 52e771c..0000000 --- a/Theorie/Threads/S8-src/fork-execve.c +++ /dev/null @@ -1,57 +0,0 @@ -/************************************** - * fork-execve.c - * - * Programme d'exemple d'utilisation de - * fork et execve - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> - - -int main (int argc, char *argv[]) { - int status; - pid_t pid; - - pid=fork(); - - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - // fils - char *arguments[]={"expr", "1", "+", "2", NULL}; - char *environnement[]={"PATH=/bin:/usr/bin",NULL}; - int err=execve("/usr/bin/expr", arguments, environnement); - if(err!=0) { - perror("execve"); - return(EXIT_FAILURE); - } - } - else { - // processus père - int fils=waitpid(pid,&status,0); - if(fils==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(WIFEXITED(status)) { - printf("Le fils %d s'est terminé correctement et a retourné la valeur %d\n",fils,WEXITSTATUS(status)); - return(EXIT_SUCCESS); - } - else { - if( WIFSIGNALED(status)) { - printf("Le fils %d a été tué par le signal %d\n",fils,WTERMSIG(status)); - } - return(EXIT_FAILURE); - } - } -} -///BBB diff --git a/Theorie/Threads/S8-src/fork-manyexec.c b/Theorie/Threads/S8-src/fork-manyexec.c deleted file mode 100644 index b0742d4..0000000 --- a/Theorie/Threads/S8-src/fork-manyexec.c +++ /dev/null @@ -1,64 +0,0 @@ -/************************************** - * fork-manyexec.c - * - * Programme d'exemple d'utilisation de - * fork et execve - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> -#include <libgen.h> - -extern char **environ; - -int main (int argc, char *argv[]) { - int status; - pid_t pid; - - for(int i=1;i<argc;i++) { - // création du fils - pid=fork(); - if (pid==-1) { - perror("fork"); - exit(EXIT_FAILURE); - } - if (pid==0) { - // fils - printf ("Exécution de la commande %s [pid=%d]\n",argv[i],getpid()); - fflush(stdout); - char *arguments[2]; - arguments[0]=basename(argv[i]); - arguments[1]=NULL; - int err=execve(argv[i], arguments, environ); - if(err!=0) - return(127); - } // fils - else { - // processus père - int fils=waitpid(pid,&status,0); - if(fils==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(WIFEXITED(status)) { - if(WEXITSTATUS(status)==0) - printf("La commande %s [%d] s'est terminée correctement\n",argv[i],fils); - else - if (WEXITSTATUS(status)==127) - printf("La commande %s n'a pu être exécutée\n",argv[i]); - else - printf("La commande %s [%d] a retourné %d\n",argv[i],fils,WEXITSTATUS(status)); - } - else { - if( WIFSIGNALED(status)) - printf("La commande %s [%d] ne s'est pas terminée correctement\n",argv[i],fils); - } - fflush(stdout); - } // père - } // for loop - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S8-src/fork-manyexec.out b/Theorie/Threads/S8-src/fork-manyexec.out deleted file mode 100644 index 942f0cd..0000000 --- a/Theorie/Threads/S8-src/fork-manyexec.out +++ /dev/null @@ -1,7 +0,0 @@ -$./fork-manyexec /bin/true /bin/false /bin/none -Exécution de la commande /bin/true [pid=14217] -La commande /bin/true [14217] s'est terminée correctement -Exécution de la commande /bin/false [pid=14218] -La commande /bin/false [14218] a retourné 1 -Exécution de la commande /bin/none [pid=14219] -La commande /bin/none n'a pu être exécutée diff --git a/Theorie/Threads/S8-src/fork-nice.c b/Theorie/Threads/S8-src/fork-nice.c deleted file mode 100644 index e746a7d..0000000 --- a/Theorie/Threads/S8-src/fork-nice.c +++ /dev/null @@ -1,67 +0,0 @@ -/************************************** - * fork-zombie.c - * - * Programme d'exemple d'utilisation de - * fork qui crée un zombie - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> - -void usage() { - printf("Usage :\n"); - printf("prog -p num\navec num entier\n"); - -} - -int main (int argc, char *argv[]) { - pid_t pid; - char *endptr, *str; - int err; - int ch; - int priority; - while ((ch = getopt(argc, argv, "p:")) != -1) { - switch (ch) { - case 'p': - priority=(int) strtol(optarg, &endptr, 10); - if( (priority < 0) || (priority >20) ) { - printf("La priorité doit être comprise entre 0 et 20\n"); - } - return(EXIT_FAILURE); - break; - case '?': - default: - usage(); - return(EXIT_FAILURE); - } - } - pid=fork(); - - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - // fils - printf("pid du zombie: %d\n",getpid()); - return(EXIT_SUCCESS); - } - else { - // processus père - sleep(50); - err=wait(NULL); - if(err!=0) { - perror("fork"); - exit(EXIT_FAILURE); - } - printf("Fin du processus père [%d]\n",getpid()); - return(EXIT_SUCCESS); - } -} -///BBB diff --git a/Theorie/Threads/S8-src/fork-orphan.c b/Theorie/Threads/S8-src/fork-orphan.c deleted file mode 100644 index 751d5a1..0000000 --- a/Theorie/Threads/S8-src/fork-orphan.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************** - * fork-ophan.c - * - * Programme d'exemple d'utilisation de - * fork avec fils orphelin - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> - - -int main (int argc, char *argv[]) { - pid_t pid; - - pid=fork(); - - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - printf("Processus : %d, père : %d\n",getpid(),getppid()); - fflush(stdout); - sleep(3); - printf("Processus : %d, père : %d\n",getpid(),getppid()); - return(EXIT_SUCCESS); - } - else { - // processus père - sleep(1); - printf("Fin du processus père [%d]\n",getpid()); - return(EXIT_FAILURE); - } -} -///BBB diff --git a/Theorie/Threads/S8-src/fork-orphan.out b/Theorie/Threads/S8-src/fork-orphan.out deleted file mode 100644 index 6f5395e..0000000 --- a/Theorie/Threads/S8-src/fork-orphan.out +++ /dev/null @@ -1,3 +0,0 @@ -Processus : 28750, père : 28749 -Fin du processus père [28749] -Processus : 28750, père : 1 diff --git a/Theorie/Threads/S8-src/fork-perf.c b/Theorie/Threads/S8-src/fork-perf.c deleted file mode 100644 index 3c330d9..0000000 --- a/Theorie/Threads/S8-src/fork-perf.c +++ /dev/null @@ -1,47 +0,0 @@ -/************************************** - * fork-perf.c - * - * Programme d'exemple pour calculer le coût - * de fork - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> - -#define N 100000 - -int main (int argc, char *argv[]) { - int status; - pid_t pid; - - for(int i=0;i<N;i++) { - pid=fork(); - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - return(EXIT_SUCCESS); - } - else { - int fils=waitpid(pid,&status,0); - if(fils==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(!WIFEXITED(status)) { - fprintf(stderr,"Erreur de waitpid\n"); - exit(EXIT_FAILURE); - } - } - } - return(EXIT_SUCCESS); - -} - diff --git a/Theorie/Threads/S8-src/fork-pthread.c b/Theorie/Threads/S8-src/fork-pthread.c deleted file mode 100644 index ebb9b6d..0000000 --- a/Theorie/Threads/S8-src/fork-pthread.c +++ /dev/null @@ -1,78 +0,0 @@ -/************************************** - * fork-pthread.c - * - * Programme d'exemple pour voir le contenu de /proc - * - *************************************/ - -#define _GNU_SOURCE -#include <stdio.h> -#include <stdlib.h> -#include <pthread.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> -#include <sys/syscall.h> - -#define DELAY 600 - -pid_t gettid() { - pid_t tid; - tid = syscall(SYS_gettid); - return tid; -} - - -void *func(void * param) { - int slept=DELAY; - printf("thread : %d\n",gettid()); - fflush(stdout); - while((slept=sleep(slept))!=0) ; - pthread_exit(NULL); -} - -int main (int argc, char *argv[]) { - int err; - pid_t pid; - int status; - pthread_t thread; - int slept=DELAY; - printf("père : %d\n",getpid()); - fflush(stdout); - pid=fork(); - if (pid==-1) { - perror("fork"); - exit(EXIT_FAILURE); - } - if (pid==0) { - // fils - printf("fils : %d\n",getpid()); - fflush(stdout); - while((slept=sleep(slept))!=0) ; - return(EXIT_SUCCESS); - } - else { - // père - err=pthread_create(&(thread),NULL,&func,NULL); - if(err!=0) { - perror("pthread_create"); - exit(EXIT_FAILURE); - } - err=pthread_join(thread,NULL); - if(err!=0) { - perror("pthread_join"); - exit(EXIT_FAILURE); - } - int fils=waitpid(pid,&status,0); - if(fils==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(!WIFEXITED(status)) { - fprintf(stderr,"Erreur de waitpid\n"); - exit(EXIT_FAILURE); - } - } - return(EXIT_SUCCESS); -} - diff --git a/Theorie/Threads/S8-src/fork-wait.c b/Theorie/Threads/S8-src/fork-wait.c deleted file mode 100644 index 9d8fa3b..0000000 --- a/Theorie/Threads/S8-src/fork-wait.c +++ /dev/null @@ -1,51 +0,0 @@ -/************************************** - * fork-wait.c - * - * Programme d'exemple d'utilisation de - * fork - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> - - -int main (int argc, char *argv[]) { - int status; - pid_t pid; - - pid=fork(); - - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - sleep(8); - return(42); - } - else { - // processus père - int fils=waitpid(pid,&status,0); - if(fils==-1) { - perror("wait"); - exit(EXIT_FAILURE); - } - if(WIFEXITED(status)) { - printf("Le fils %d s'est terminé correctement et a retourné la valeur %d\n",fils,WEXITSTATUS(status)); - return(EXIT_SUCCESS); - } - else { - if( WIFSIGNALED(status)) { - printf("Le fils %d a été tué par le signal %d\n",fils,WTERMSIG(status)); - } - return(EXIT_FAILURE); - } - } -} -///BBB diff --git a/Theorie/Threads/S8-src/fork-zombie.c b/Theorie/Threads/S8-src/fork-zombie.c deleted file mode 100644 index 33959bf..0000000 --- a/Theorie/Threads/S8-src/fork-zombie.c +++ /dev/null @@ -1,45 +0,0 @@ -/************************************** - * fork-zombie.c - * - * Programme d'exemple d'utilisation de - * fork qui crée un zombie - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/wait.h> -#include <sys/types.h> - - -int main (int argc, char *argv[]) { - pid_t pid; - int err; - - pid=fork(); - - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - // fin du fils - printf("pid du zombie: %d\n",getpid()); - return(EXIT_SUCCESS); - } - else { - // processus père - sleep(50); - err=wait(NULL); - if(err!=0) { - perror("fork"); - exit(EXIT_FAILURE); - } - printf("Fin du processus père [%d]\n",getpid()); - return(EXIT_SUCCESS); - } -} -///BBB diff --git a/Theorie/Threads/S8-src/fork.c b/Theorie/Threads/S8-src/fork.c deleted file mode 100644 index 6cd78db..0000000 --- a/Theorie/Threads/S8-src/fork.c +++ /dev/null @@ -1,49 +0,0 @@ -/************************************** - * fork.c - * - * Programme d'exemple d'utilisation de - * fork - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> - -int g=0; // segment données - -int main (int argc, char *argv[]) { - int l=1252; // sur la pile - int *m; // sur le heap - m=(int *) malloc(sizeof(int)); - *m=-1; - - pid_t pid; - - pid=fork(); - - if (pid==-1) { - // erreur à l'exécution de fork - perror("fork"); - exit(EXIT_FAILURE); - } - // pas d'erreur - if (pid==0) { - // processus fils - l++; - g++; - *m=17; - printf("Dans le processus fils g=%d, l=%d et *m=%d\n",g,l,*m); - free(m); - return(EXIT_SUCCESS); - } - else { - // processus père - sleep(2); - printf("Dans le processus père g=%d, l=%d et *m=%d\n",g,l,*m); - free(m); - // ... - return(EXIT_SUCCESS); - } -} -///BBB diff --git a/Theorie/Threads/S8-src/fork.out b/Theorie/Threads/S8-src/fork.out deleted file mode 100644 index 1f71b89..0000000 --- a/Theorie/Threads/S8-src/fork.out +++ /dev/null @@ -1,2 +0,0 @@ -Dans le processus fils g=1, l=1253 et *m=17 -Dans le processus père g=0, l=1252 et *m=-1 diff --git a/Theorie/Threads/S8-src/getpid.c b/Theorie/Threads/S8-src/getpid.c deleted file mode 100644 index fddef73..0000000 --- a/Theorie/Threads/S8-src/getpid.c +++ /dev/null @@ -1,21 +0,0 @@ -/************************************** - * getpid.c - * - * Programme d'exemple de getpid - * - **************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/types.h> - - -int main (int argc, char *argv[]) { - int pid=getpid(); - int ppid=getppid(); - printf("Processus %d, parent:%d\n",pid,ppid); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S8-src/imath.c b/Theorie/Threads/S8-src/imath.c deleted file mode 100644 index 3c2887a..0000000 --- a/Theorie/Threads/S8-src/imath.c +++ /dev/null @@ -1,20 +0,0 @@ -/************************************** - * math.c - * - * Programme d'exemple d'utilisation de - * la librairie math - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include "imax.h" - -int main (int argc, char *argv[]) { - int n1=1; - int n2=-3; - printf("Maximum : %d\n",imax(n1,n2)); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S8-src/imax.c b/Theorie/Threads/S8-src/imax.c deleted file mode 100644 index 92b80fe..0000000 --- a/Theorie/Threads/S8-src/imax.c +++ /dev/null @@ -1,14 +0,0 @@ -/************************************** - * imax.c - * - * Programme d'exemple d'utilisation de - * librairie - * - *************************************/ -///AAA - -int imax(int i, int j) { - return ((i>j) ? i : j); - -} -///BBB diff --git a/Theorie/Threads/S8-src/imax.h b/Theorie/Threads/S8-src/imax.h deleted file mode 100644 index 444fb1a..0000000 --- a/Theorie/Threads/S8-src/imax.h +++ /dev/null @@ -1,12 +0,0 @@ -/************************************** - * imax.h - * - * Programme d'exemple d'utilisation de - * librairie - * - *************************************/ -///AAA - -int imax(int,int); - -///BBB diff --git a/Theorie/Threads/S8-src/math.c b/Theorie/Threads/S8-src/math.c deleted file mode 100644 index 55e2312..0000000 --- a/Theorie/Threads/S8-src/math.c +++ /dev/null @@ -1,21 +0,0 @@ -/************************************** - * math.c - * - * Programme d'exemple d'utilisation de - * la librairie math - * - *************************************/ -///AAA -#include <stdio.h> -#include <stdlib.h> -#include <math.h> - - -int main (int argc, char *argv[]) { - double n1=1.0; - double n2=-3.14; - printf("Maximum : %f\n",fmax(n1,n2)); - - return(EXIT_SUCCESS); -} -///BBB diff --git a/Theorie/Threads/S8-src/max.c b/Theorie/Threads/S8-src/max.c deleted file mode 100644 index bab2696..0000000 --- a/Theorie/Threads/S8-src/max.c +++ /dev/null @@ -1,20 +0,0 @@ -/************************************** - * math.c - * - * Programme d'exemple d'utilisation de - * la librairie math - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <math.h> - - -int main (int argc, char *argv[]) { - double n1=1.0; - double n2=-3.14; - printf("Maximum : %f\n",fmax(n1,n2)); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S8-src/mini8.c b/Theorie/Threads/S8-src/mini8.c deleted file mode 100644 index b69b1ae..0000000 --- a/Theorie/Threads/S8-src/mini8.c +++ /dev/null @@ -1,117 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <pthread.h> -#include <limits.h> -#include <time.h> - -/* Necessary for the correct compilation */ -#define _POSIX_C_SOURCE 199309L - -#define N_ITERATIONS (100) -#define N_CONSUMERS (4) -#define N_PRODUCERS (2) -#define N_RETRIEVES ((N_ITERATIONS) * (N_PRODUCERS) / (N_CONSUMERS)) -#define MIN(a, b) ((a) > (b) ? (b) : (a)) - -/* A COMPLETER */ - -/* - * Insert val in the bounded-buffer. Should wait if there are no empty spaces - * available. - */ -void insert(int val) -{ - /* A COMPLETER */ -} - -/* - * Returns and removes the next element from the bounded buffer. - */ -int retrieve(void) -{ - /* A COMPLETER */ - return -1; -} - - -void *producer(void *arg) -{ - int i, val; - - for (i = 0; i < N_ITERATIONS; ++i) { - /* sleep for few miliseconds */ - struct timespec sleep; - sleep.tv_sec = 0; - sleep.tv_nsec = (long) rand() % 100000000; - nanosleep(&sleep, NULL); - - /* generate a value and insert it in the buffer */ - val = abs(rand()); - insert(val); - } - return NULL; -} - -void *consumer(void *arg) -{ - int i, *min = (int *)arg; - - for (i = 0; i < N_RETRIEVES; ++i) { - /* sleep for few miliseconds */ - struct timespec sleep; - sleep.tv_sec = 0; - sleep.tv_nsec = (long) rand() % 100000000; - nanosleep(&sleep, NULL); - - /* maintain the minimum value up to now */ - *min = MIN(*min, retrieve()); - } - return (void *)min; -} - -int main (int argc, char const *argv[]) -{ - int i, min = INT_MAX, *ret; - pthread_t producers[N_PRODUCERS]; - pthread_t consumers[N_CONSUMERS]; - int returns[N_CONSUMERS]; - int err; - - /* seed the PRNG */ - srand(time(NULL)); - - /* A COMPLETER */ - - for (i = 0; i < N_PRODUCERS; ++i) { - err = pthread_create(&producers[i], NULL, producer, NULL); - if (err) - goto error; - } - - for (i = 0; i < N_CONSUMERS; ++i) { - err = pthread_create(&consumers[i], NULL, consumer, &returns[i]); - if (err) - goto error; - } - - for (i = 0; i < N_PRODUCERS; ++i) { - err = pthread_join(producers[i], NULL); - if (err) - goto error; - } - - for (i = 0; i < N_CONSUMERS; ++i) { - err = pthread_join(consumers[i], (void **)&ret); - if (err) - goto error; - min = MIN(min, *ret); - } - - printf("The minimal value generated is %d.\n", min); - - return (EXIT_SUCCESS); - -error: - perror("Error happened:\n"); - return (EXIT_FAILURE); -} diff --git a/Theorie/Threads/S8-src/pthread-perf.c b/Theorie/Threads/S8-src/pthread-perf.c deleted file mode 100644 index 07772a2..0000000 --- a/Theorie/Threads/S8-src/pthread-perf.c +++ /dev/null @@ -1,41 +0,0 @@ -/************************************** - * pthread-perf.c - * - * Programme d'exemple pour calculer le coût - * de pthread - * - *************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <pthread.h> - -#define N 100000 - -void *func(void * param) { - pthread_exit(NULL); -} - - -int main (int argc, char *argv[]) { - int err; - pthread_t thread; - - - for(int i=0;i<N;i++) { - - err=pthread_create(&(thread),NULL,&func,NULL); - if(err!=0) { - perror("pthread_create"); - exit(EXIT_FAILURE); - } - err=pthread_join(thread,NULL); - if(err!=0) { - perror("pthread_join"); - exit(EXIT_FAILURE); - } - } - return(EXIT_SUCCESS); - -} - diff --git a/Theorie/Threads/S8-src/script.sh b/Theorie/Threads/S8-src/script.sh deleted file mode 100755 index cfd6015..0000000 --- a/Theorie/Threads/S8-src/script.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -# script.sh -if [ $# -ne 1 ] -then - echo "Usage: `basename $0` fichier" - exit 1 -fi -if [ -x ${1} ] -then - head -1 $1 | grep "^#\!" >>/dev/null - if [ $? ] - then - echo "Script interprétable" - exit 0 - else - echo "Script non-interprétable" - exit 1 - fi -else - echo "Bit x non mis dans les métadonnées" - exit 1 -fi diff --git a/Theorie/Threads/S8-src/syscall.c b/Theorie/Threads/S8-src/syscall.c deleted file mode 100644 index f102291..0000000 --- a/Theorie/Threads/S8-src/syscall.c +++ /dev/null @@ -1,20 +0,0 @@ -/************************************** - * syscall.c - * - * Programme d'exemple d'utilisation de syscall - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <sys/syscall.h> - - -int main (int argc, char *argv[]) { - int pid=getpid(); - int pid2=syscall(SYS_getpgid); - printf("Processus %d, pid:%d\n",pid,pid2); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/Threads/S8-src/test.tail b/Theorie/Threads/S8-src/test.tail deleted file mode 100755 index 2429531..0000000 --- a/Theorie/Threads/S8-src/test.tail +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/tail -n +1 -Hello, world -SINF1252 diff --git a/Theorie/Threads/coordination.rst b/Theorie/Threads/coordination.rst deleted file mode 100644 index df08717..0000000 --- a/Theorie/Threads/coordination.rst +++ /dev/null @@ -1,419 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012, 2019 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -.. _coordinationthreads: - -Les sémaphores -============== - -Le problème de la coordination entre threads est un problème majeur. Outre les :term:`mutex` que nous avons présenté, d'autres solutions à ce problème ont été développées. Historiquement, une des premières propositions de coordination sont les sémaphores [Dijkstra1965b]_. Un :term:`sémaphore` est une structure de données qui est maintenue par le système d'exploitation et contient : - - - un entier qui stocke la valeur, positive ou nulle, du sémaphore. - - une queue qui contient les pointeurs vers les threads qui sont bloqués en attente sur ce sémaphore. - -Tout comme pour les :term:`mutex`, la queue associée à un sémaphore permet de bloquer les threads qui sont en attente d'une modification de la valeur du sémaphore. - -.. spelling:: - - décrémentée - s'implémenter - l'implémentation - -Une implémentation des sémaphores se compose en général de quatre fonctions : - - - une fonction d'initialisation qui permet de créer le sémaphore et de lui attribuer une valeur initiale nulle ou positive. - - une fonction permettant de détruire un sémaphore et de libérer les ressources qui lui sont associées. - - une fonction ``post`` qui est utilisée par les threads pour modifier la valeur du sémaphore. S'il n'y a pas de thread en attente dans la queue associée au sémaphore, sa valeur est incrémentée d'une unité. Sinon, un des threads en attente est libéré et passe à l'état `Ready`. - - une fonction ``wait`` qui est utilisée par les threads pour tester la valeur d'un sémaphore. Si la valeur du sémaphore est positive, elle est décrémentée d'une unité et la fonction réussit. Si le sémaphore a une valeur nulle, le thread est bloqué jusqu'à ce qu'un autre thread le débloque en appelant la fonction ``post``. - -.. [Dijkstra1965b]_ - -Les sémaphores sont utilisés pour résoudre de nombreux problèmes de coordination [Downey2008]_. Comme ils permettent de stocker une valeur entière, ils sont plus flexibles que les :term:`mutex` qui sont utiles surtout pour les problèmes d'exclusion mutuelle. - - -Sémaphores POSIX ----------------- - -La librairie POSIX comprend une implémentation des sémaphores [#fSysV]_ qui expose plusieurs fonctions aux utilisateurs. La page de manuel `sem_overview(7)`_ présente de façon sommaire les fonctions de la librairie relatives aux sémaphores. Les quatre principales sont les suivantes : - -.. code-block:: c - - #include <semaphore.h> - - int sem_init(sem_t *sem, int pshared, unsigned int value); - int sem_destroy(sem_t *sem); - int sem_wait(sem_t *sem); - int sem_post(sem_t *sem); - -Le fichier `semaphore.h`_ contient les différentes définitions de structures qui sont nécessaires au bon fonctionnement des sémaphores ainsi que les signatures des fonctions de cette API. Un sémaphore est représenté par une structure de données de type ``sem_t``. Toutes les fonctions de manipulation des sémaphores prennent comme argument un pointeur vers le sémaphore concerné. - -Pour pouvoir utiliser un sémaphore, il faut d'abord l'initialiser. Cela se fait en utilisant la fonction `sem_init(3)`_ qui prend comme argument un pointeur vers le sémaphore à initialiser. Nous n'utiliserons pas le second argument dans ce chapitre. Le troisième argument est la valeur initiale, positive ou nulle, du sémaphore. - -La fonction `sem_destroy(3)`_ permet de libérer un sémaphore qui a été initialisé avec `sem_init(3)`_. Les sémaphores consomment des ressources qui peuvent être limitées dans certains environnements. Il est important de détruire proprement les sémaphores dès qu'ils ne sont plus nécessaires. - -Les deux principales fonctions de manipulation des sémaphores sont `sem_wait(3)`_ et `sem_post(3)`_. Certains auteurs utilisent ``down`` ou ``P`` à la place de `sem_wait(3)`_ et ``up`` ou ``V`` à la place de `sem_post(3)`_ [Downey2008]_. Schématiquement, l'opération ``sem_wait`` peut s'implémenter en utilisant le pseudo-code suivant : - -.. code-block:: c - - int sem_wait(semaphore *s) - { - s->val=s->val-1; - if(s->val<0) - { - // Place this thread in s.queue; - // This thread is blocked; - } - } - -La fonction `sem_post(3)`_ quant à elle peut schématiquement s'implémenter comme suit : - - -.. code-block:: c - - int sem_post(semaphore *s) - { - s->val=s->val+1; - if(s.val<=0) - { - // Remove one thread(T) from s.queue; - // Mark Thread(T) as ready to run; - } - } - -Ces deux opérations sont bien entendu des opérations qui ne peuvent s'exécuter simultanément. Leur implémentation réelle comprend des sections critiques qui doivent être construites avec soin. Le pseudo-code ci-dessus ignore ces sections critiques. Des détails complémentaires sur l'implémentation des sémaphores peuvent être obtenus dans livre sur les systèmes d'exploitation [Stallings2011]_ [Tanenbaum+2009]_ . - -La meilleure façon de comprendre leur utilisation est d'analyser des problèmes classiques de coordination qui peuvent être résolus en utilisant des sémaphores. - -Exclusion mutuelle ------------------- - -Les sémaphores permettent de résoudre de nombreux problèmes classiques. Le premier est celui de l'exclusion mutuelle. Lorsqu'il est initialisé à ``1``, un sémaphore peut être utilisé de la même façon qu'un :term:`mutex`. En utilisant des sémaphores, une exclusion mutuelle peut être protégée comme suit : - - -.. code-block:: c - - #include <semaphore.h> - - //... - - sem_t semaphore; - - sem_init(&semaphore, 0, 1); - - sem_wait(&semaphore); - // section critique - sem_post(&semaphore); - - sem_destroy(&semaphore); - -Les sémaphores peuvent être utilisés pour d'autres types de synchronisation. Par exemple, considérons une application découpée en threads dans laquelle la fonction ``after`` ne peut jamais être exécutée avant la fin de l'exécution de la fonction ``before``. Ce problème de coordination peut facilement être résolu en utilisant un sémaphore qui est initialisé à la valeur ``0``. La fonction ``after`` doit démarrer par un appel à `sem_wait(3)`_ sur ce sémaphore tandis que la fonction ``before`` doit se terminer par un appel à la fonction `sem_post(3)`_ sur ce sémaphore. De cette façon, si le thread qui exécute la fonction ``after`` est trop rapide, il sera bloqué sur l'appel à `sem_wait(3)`_. S'il arrive à cette fonction après la fin de la fonction ``before`` dans l'autre thread, il pourra passer sans être bloqué. Le programme ci-dessous illustre cette utilisation des sémaphores POSIX. - -.. literalinclude:: /Threads/S7-src/pthread-sem-before.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Si un sémaphore initialisé à la valeur ``1`` est généralement utilisé comme un :term:`mutex`, il y a une différence importante entre les implémentations des sémaphores et des :term:`mutex`. Un sémaphore est conçu pour être manipulé par différents threads et il est fort possible qu'un thread exécute `sem_wait(3)`_ et qu'un autre exécute `sem_post(3)`_. Pour les mutex, certaines implémentations supposent que le même thread exécute `pthread_mutex_lock(3posix)`_ et `pthread_mutex_unlock(3posix)`_. Lorsque ces opérations doivent être effectuées dans des threads différents, il est préférable d'utiliser des sémaphores à la place de mutex. - - - -Problème des producteurs-consommateurs --------------------------------------- - -Le problème des producteurs-consommateurs est un problème extrêmement fréquent et important dans les applications découpées en plusieurs threads. Il est courant de structurer une telle application, notamment si elle réalise de longs calculs, en deux types de threads : - - - les `producteurs` : Ce sont des threads qui produisent des données et placent le résultat de leurs calculs dans une zone mémoire accessible aux consommateurs. - - les `consommateurs` : Ce sont des threads qui utilisent les valeurs calculées par les producteurs. - -Ces deux types de threads communiquent en utilisant un buffer qui a une capacité limitée à `N` places comme illustré dans la figure ci-dessous. - -.. figure:: /Threads/figures/figures-S7-001-c.png - :align: center - :scale: 80 - - Problème des producteurs-consommateurs - -La difficulté du problème est de trouver une solution qui permet aux producteurs et aux consommateurs d'avancer à leur rythme sans que les producteurs ne bloquent inutilement les consommateurs et inversement. Le nombre de producteurs et de consommateurs ne doit pas nécessairement être connu à l'avance et ne doit pas être fixe. Un producteur peut arrêter de produire à n'importe quel moment. - -Le buffer étant partagé entre les producteurs et les consommateurs, il doit nécessairement être protégé par un :term:`mutex`. Les producteurs doivent pouvoir ajouter de l'information dans le buffer partagé tant qu'il y a au moins une place de libre dans le buffer. Un producteur ne doit être bloqué que si tout le buffer est rempli. Inversement, les consommateurs doivent être bloqués uniquement si le buffer est entièrement vide. Dès qu'une donnée est ajoutée dans le buffer, un consommateur doit être réveillé pour traiter cette donnée. - -Ce problème peut être résolu en utilisant deux sémaphores et un mutex. L'accès au buffer, que ce soit par les consommateurs ou les producteurs est une section critique. Cet accès doit donc être protégé par l'utilisation d'un mutex. Quant aux sémaphores, le premier, baptisé ``empty`` dans l'exemple ci-dessous, sert à compter le nombre de places qui sont vides dans le buffer partagé. Ce sémaphore doit être initialisé à la taille du buffer puisque celui-ci est initialement vide. Le second sémaphore est baptisé ``full`` dans le pseudo-code ci-dessous. Sa valeur représente le nombre de places du buffer qui sont occupées. Il doit être initialisé à la valeur ``0``. - -.. code-block:: c - - // Initialisation - #define N 10 // places dans le buffer - pthread_mutex_t mutex; - sem_t empty; - sem_t full; - - pthread_mutex_init(&mutex, NULL); - sem_init(&empty, 0 , N); // buffer vide - sem_init(&full, 0 , 0); // buffer vide - -Le fonctionnement général d'un producteur est le suivant. Tout d'abord, le producteur est mis en attente sur le sémaphore ``empty``. Il ne pourra passer que si il y a au moins une place du buffer qui est vide. Lorsque la ligne ``sem_wait(&empty);`` réussit, le producteur s'approprie le ``mutex`` et modifie le buffer de façon à insérer l'élément produit (dans ce cas un entier). Il libère ensuite le ``mutex`` pour sortir de sa section critique. - -.. code-block:: c - - // Producteur - void producer(void) - { - int item; - while(true) - { - item=produce(item); - sem_wait(&empty); // attente d'une place libre - pthread_mutex_lock(&mutex); - // section critique - insert_item(); - pthread_mutex_unlock(&mutex); - sem_post(&full); // il y a une place remplie en plus - } - } - - -Le consommateur quant à lui essaie d'abord de prendre le sémaphore ``full``. Si celui-ci est positif, cela indique la présence d'au moins un élément dans le buffer partagé. Ensuite, il entre dans la section critique protégée par le ``mutex`` et récupère la donnée se trouvant dans le buffer. Puis, il incrémente la valeur du sémaphore ``empty`` de façon à indiquer à un producteur qu'une nouvelle place est disponible dans le buffer. - -.. code-block:: c - - // Consommateur - void consumer(void) - { - int item; - while(true) - { - sem_wait(&full); // attente d'une place remplie - pthread_mutex_lock(&mutex); - // section critique - item=remove(item); - pthread_mutex_unlock(&mutex); - sem_post(&empty); // il y a une place libre en plus - } - } - -De nombreux programmes découpés en threads fonctionnent avec un ensemble de producteurs et un ensemble de consommateurs. - -.. spelling:: - - Solaris - - -Compléments sur les threads POSIX -================================= - -Il existe différentes implémentations des threads POSIX. Les mécanismes de coordination utilisables varient parfois d'une implémentation à l'autre. Dans les sections précédentes, nous nous sommes focalisés sur les fonctions principales qui sont en général bien implémentées. Une discussion plus détaillée des fonctions implémentées sous Linux peut se trouver dans [Kerrisk2010]_. [Gove2011]_ présente de façon détaillée les mécanismes de coordination utilisables sous Linux, Windows et Oracle Solaris. [StevensRago2008]_ comprend également une description des threads POSIX mais présente des exemples sur des versions plus anciennes de Linux, FreeBSD, Solaris et MacOS. - -Il reste cependant quelques concepts qu'il est utile de connaître lorsque l'on développe des programmes découpés en threads en langage C. - - -Variables ``volatile`` ----------------------- - -Normalement, dans un programme C, lorsqu'une variable est définie, ses accès sont contrôlés entièrement par le compilateur. Si la variable est utilisée dans plusieurs calculs successifs, il peut être utile d'un point de vue des performances de stocker la valeur de cette variable dans un registre pendant au moins le temps correspondant à l'exécution de quelques instructions [#fregister]_. Cette optimisation peut éventuellement poser des difficultés dans certains programmes utilisant des threads puisqu'une variable peut être potentiellement modifiée ou lue par plusieurs threads simultanément. - -Les premiers compilateurs C avaient pris en compte un problème similaire. Lorsqu'un programme ou un système d'exploitation interagit avec des dispositifs d'entrée-sortie, cela se fait parfois en permettant au dispositif d'écrire directement en mémoire à une adresse connue par le système d'exploitation. La valeur présente à cette adresse peut donc être modifiée par le dispositif d'entrée-sortie sans que le programme ne soit responsable de cette modification. Face à ce problème, les inventeurs du langage C ont introduit le qualificatif ``volatile``. Lorsqu'une variable est ``volatile``, cela indique au compilateur qu'il doit recharger la variable de la mémoire chaque fois qu'elle est utilisée. - -Pour bien comprendre l'impact de ce qualificatif, il est intéressant d'analyser le code assembleur généré par un compilateur C dans l'exemple suivant. - -.. code-block:: c - - int x=1; - int v[2]; - - void f(void ) { - v[0]=x; - v[1]=x; - } - -Dans ce cas, la fonction ``f`` est traduite en la séquence d'instructions suivante : - -.. code-block:: nasm - - f: - movl x, %eax - movl %eax, v - movl %eax, v+4 - ret - -Si par contre la variable ``x`` est déclarée comme étant ``volatile``, le compilateur ajoute une instruction ``movl x, %eax`` qui permet de recharger la valeur de ``x`` dans un registre avant la seconde utilisation. - -.. code-block:: nasm - - f: - movl x, %eax - movl %eax, v - movl x, %eax - movl %eax, v+4 - ret - -Le qualificatif ``volatile`` force le compilateur à recharger la variable depuis la mémoire avant chaque utilisation. Ce qualificatif est utile lorsque le contenu stocké à une adresse mémoire peut être modifié par une autre source que le programme lui-même. C'est le cas dans les threads, mais marquer les variables partagées par des threads comme ``volatile`` ne suffit pas. Si ces variables sont modifiées par certains threads, il est nécessaire d'utiliser des :term:`mutex` ou d'autres techniques de coordination pour réguler l'accès en ces variables partagées. En pratique, la documentation du programme devra spécifier quelles variables sont partagées entre les threads et la technique de coordination éventuelle qui est utilisée pour en réguler les accès. L'utilisation du qualificatif ``volatile`` permet de forcer le compilateur à recharger le contenu de la variable depuis la mémoire avant toute utilisation. C'est une règle de bonne pratique qu'il est utile de suivre. Il faut cependant noter que dans l'exemple ci-dessus, l'utilisation du qualificatif ``volatile`` augmente le nombre d'accès à la mémoire et peut donc dans certains cas réduire les performances. - - -Variables spécifiques à un thread ---------------------------------- - -Dans un programme C séquentiel, on doit souvent combiner les variables globales, les variables locales et les arguments de fonctions. Lorsque le programme est découpé en threads, les variables globales restent utilisables, mais il faut faire attention aux problèmes d'accès concurrent. En pratique, il est parfois utile de pouvoir disposer dans chaque thread de variables qui tout en étant accessibles depuis toutes les fonctions du thread ne sont pas accessibles aux autres threads. Il y a différentes solutions pour résoudre ce problème. - -Une première solution serait d'utiliser une zone mémoire qui est spécifique au thread et d'y placer par exemple une structure contenant toutes les variables auxquelles on souhaite pouvoir accéder depuis toutes les fonctions du thread. Cette zone mémoire pourrait être créée avant l'appel à `pthread_create(3)`_ et un pointeur vers cette zone pourrait être passé comme argument à la fonction qui démarre le thread. Malheureusement l'argument qui est passé à cette fonction n'est pas équivalent à une variable globale et n'est pas accessible à toutes les fonctions du thread. - -Une deuxième solution serait d'avoir un tableau global qui contiendrait des pointeurs vers des zones de mémoires qui ont été allouées pour chaque thread. Chaque thread pourrait alors accéder à ce tableau sur base de son identifiant. Cette solution pourrait fonctionner si le nombre de threads est fixe et que les identifiants de threads sont des entiers croissants. Malheureusement la librairie threads POSIX ne fournit pas de tels identifiants croissants. Officiellement, la fonction `pthread_self(3)`_ retourne un identifiant unique d'un thread qui a été créé. Malheureusement cet identifiant est de type ``pthread_t`` et ne peut pas être utilisé comme index dans un tableau. Sous Linux, l'appel système non-standard `gettid(2)`_ retourne l'identifiant du thread, mais il ne peut pas non plus être utilisé comme index dans un tableau. - -Pour résoudre ce problème, deux solutions sont possibles. La première combine une extension au langage C qui est supportée par `gcc(1)`_ avec la librairie threads POSIX. Il s'agit du qualificatif ``__thread`` qui peut être utilisé avant une déclaration de variable. Lorsqu'il est utilisé dans la déclaration d'une variable globale, il indique au compilateur et à la libraire POSIX qu'une copie de cette variable doit être créée pour chaque thread. Cette variable est initialisée au démarrage du thread et est utilisable uniquement à l'intérieur de ce thread. Le programme ci-dessous illustre cette utilisation du qualificatif ``__thread``. - -.. literalinclude:: /Threads/S7-src/pthread-specific.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lors de son exécution, ce programme affiche la sortie suivante sur :term:`stdout`. Cette sortie illustre bien que les variables dont la déclaration est précédée du qualificatif ``__thread`` sont utilisables uniquement à l'intérieur d'un thread. - -.. literalinclude:: /Threads/S7-src/pthread-specific.out - :encoding: utf-8 - :language: console - - -La seconde solution proposée par la librairie POSIX est plus complexe. Elle nécessite l'utilisation des fonctions `pthread_key_create(3posix)`_, `pthread_setspecific(3posix)`_, `pthread_getspecific(3posix)`_ et `pthread_key_delete(3posix)`_. Cette API est malheureusement plus difficile à utiliser que le qualificatif ``__thread``, mais elle illustre ce qu'il se passe en pratique lorsque ce qualificatif est utilisé. - -Pour avoir une variable accessible depuis toutes les fonctions d'un thread, il faut tout d'abord créer une clé qui identifie cette variable. Cette clé est de type ``pthread_key_t`` et c'est l'adresse de cette structure en mémoire qui est utilisée comme identifiant pour la variable spécifique à chaque thread. Cette clé ne doit être créée qu'une seule fois. Cela peut se faire dans le programme qui lance les threads ou alors dans le premier thread lancé en utilisant la fonction `pthread_once(3posix)`_. Une clé est créée grâce à la fonction `pthread_key_create(3posix)`_. Cette fonction prend deux arguments. Le premier est un pointeur vers une structure de type ``pthread_key_t``. Le second est la fonction optionnelle à appeler lorsque le thread utilisant la clé se termine. - -Il faut noter que la fonction `pthread_key_create(3posix)`_ associe en pratique le pointeur ``NULL`` à la clé qui a été créée dans chaque thread. Le thread qui veut utiliser la variable correspondant à cette clé doit réserver la zone mémoire correspondante. Cela se fait en général en utilisant `malloc(3)`_ puis en appelant la fonction `pthread_setspecific(3posix)`_. Celle-ci prend deux arguments. Le premier est une clé de type ``pthread_key_t`` qui a été préalablement créée. Le second est un pointeur (de type ``void *``) vers la zone mémoire correspondant à la variable spécifique. Une fois que le lien entre la clé et le pointeur a été fait, la fonction `pthread_getspecific(3posix)`_ peut être utilisée pour récupérer le pointeur depuis n'importe quelle fonction du thread. L'implémentation des fonctions `pthread_setspecific(3posix)`_ et `pthread_getspecific(3posix)`_ garantit que chaque thread aura sa variable qui lui est propre. - -.. spelling:: - - L'implémentation - -L'exemple ci-dessous illustre l'utilisation de cette API. Elle est nettement plus lourde à utiliser que le qualificatif ``__thread``. Dans ce code, chaque thread démarre par la fonction ``f``. Celle-ci crée une variable spécifique de type ``int`` qui joue le même rôle que la variable ``__thread int count;`` dans l'exemple précédent. La fonction ``g`` qui est appelée sans argument peut accéder à la zone mémoire créée en appelant ``pthread_getspecific(count)``. Elle peut ensuite exécuter ses calculs en utilisant le pointeur ``count_ptr``. Avant de se terminer, la fonction ``f`` libère la zone mémoire qui avait été allouée par `malloc(3)`_. Une alternative à l'appel explicite à `free(3)`_ aurait été de passer ``free`` comme second argument à `pthread_key_create(3posix)`_ lors de la création de la clé ``count``. En effet, ce second argument est la fonction à appeler à la fin du thread pour libérer la mémoire correspondant à cette clé. - -.. literalinclude:: /Threads/S7-src/pthread-specific2.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -En pratique, on préférera évidemment d'utiliser le qualificatif ``__thread`` plutôt que d'utiliser une API explicite lorsque c'est possible. Cependant, il ne faut pas oublier que lorsque ce qualificatif est utilisé, le compilateur doit introduire dans le programme du code permettant de faire le même genre d'opérations que les fonctions explicites de la librairie. - -.. spelling:: - - thread-safe - -Fonctions ``thread-safe`` -------------------------- - -Dans un programme séquentiel, il n'y a qu'un thread d'exécution et de nombreux programmeurs, y compris ceux qui ont développé la librairie standard, utilisent cette hypothèse lors de l'écriture de fonctions. Lorsqu'un programme est découpé en threads, chaque fonction peut être appelée par plusieurs threads simultanément. Cette exécution simultanée d'une fonction peut poser des difficultés notamment lorsque la fonction utilise des variables globales ou des variables statiques. - -Pour comprendre le problème, il est intéressant de comparer plusieurs implémentations d'une fonction simple. Considérons le problème de déterminer l'élément maximum d'une structure de données contenant des entiers. Si la structure de données est un tableau, une solution simple est de le parcourir entièrement pour déterminer l'élément maximum. C'est ce que fait la fonction ``max_vector`` dans le programme ci-dessous. Dans un programme purement séquentiel dans lequel le tableau peut être modifié de temps en temps, parcourir tout le tableau pour déterminer son maximum n'est pas nécessairement la solution la plus efficace. Une alternative est de mettre à jour la valeur du maximum chaque fois qu'un élément du tableau est modifié. Les fonctions ``max_global`` et ``max_static`` sont deux solutions possibles. Chacune de ces fonctions doit être appelée chaque fois qu'un élément du tableau est modifié. ``max_global`` stocke dans une variable globale la valeur actuelle du maximum du tableau et met à jour cette valeur à chaque appel. La fonction ``max_static`` fait de même en utilisant une variable statique. Ces deux solutions sont équivalentes et elles pourraient très bien être intégrées à une librairie utilisée par de nombreux programmes. - - -.. literalinclude:: /Threads/S7-src/reentrant.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Considérons maintenant un programme découpé en plusieurs threads qui chacun maintient un tableau d'entiers dont il faut connaître le maximum. Ces tableaux d'entiers sont distincts et ne sont pas partagés entre les threads. La fonction ``max_vector`` peut être utilisée par chaque thread pour déterminer le maximum du tableau. Par contre, les fonctions ``max_global`` et ``max_static`` ne peuvent pas être utilisées. En effet, chacune de ces fonctions maintient *un* état (dans ce cas le maximum calculé) alors qu'elle peut être appelée par différents threads qui auraient chacun besoin d'un état qui leur est propre. Pour que ces fonctions soient utilisables, il faudrait que les variables ``s_max`` et ``g_max`` soient spécifiques à chaque thread. - -En pratique, ce problème de l'accès concurrent à des fonctions se pose pour de nombreuses fonctions et notamment celles de la librairie standard. Lorsque l'on développe une fonction qui peut être réutilisée, il est important de s'assurer que cette fonction peut être exécutée par plusieurs threads simultanément sans que cela ne pose de problèmes à l'exécution. - -Ce problème affecte certaines fonctions de la librairie standard et plusieurs d'entre elles ont dû être modifiées pour pouvoir supporter les threads. A titre d'exemple, considérons la fonction `strerror(3)`_. Cette fonction prend comme argument le numéro de l'erreur et retourne une chaîne de caractères décrivant cette erreur. Cette fonction ne peut pas être utilisée telle quelle par des threads qui pourraient l'appeler simultanément. Pour s'en convaincre, regardons une version simplifiée d'une implémentation de cette fonction [#fstrerror]_. Cette fonction utilise le tableau `sys_errlist(3)`_ qui contient les messages d'erreur associés aux principaux codes numériques d'erreur. Lorsque l'erreur est une erreur standard, tout se passe bien et la fonction retourne simplement un pointeur vers l'entrée du tableau ``sys_errlist`` correspondante. Par contre, si le code d'erreur n'est pas connu, un message est généré dans le tableau ``buf[32]`` qui est déclaré de façon statique. Si plusieurs threads exécutent ``strerror``, ce sera le même tableau qui sera utilisé dans les différents threads. On pourrait remplacer le tableau statique par une allocation de zone mémoire faite via `malloc(3)`_, mais alors la zone mémoire créée risque de ne jamais être libérée par `free(3)`_ car l'utilisateur de `strerror(3)`_ ne doit pas libérer le pointeur qu'il a reçu, ce qui pose d'autres problèmes en pratique. - -.. code-block:: c - - char * strerror (int errnoval) - { - char * msg; - static char buf[32]; - if ((errnoval < 0) || (errnoval >= sys_nerr)) - { // Out of range, just return NULL - msg = NULL; - } - else if ((sys_errlist == NULL) || (sys_errlist[errnoval] == NULL)) - { // In range, but no sys_errlist or no entry at this index. - sprintf (buf, "Error %d", errnoval); - msg = buf; - } - else - { // In range, and a valid message. Just return the message. - msg = (char *) sys_errlist[errnoval]; - } - return (msg); - } - - -La fonction `strerror_r(3)`_ évite ce problème de tableau statique en utilisant trois arguments : le code d'erreur, un pointeur ``char *`` vers la zone devant stocker le message d'erreur et la taille de cette zone. Cela permet à `strerror_r(3)`_ d'utiliser une zone mémoire qui lui est passée par le thread qu'il appelle et garantit que chaque thread disposera de son message d'erreur. Voici une implémentation possible de `strerror_r(3)`_ [#fstrerror_r]_. - - -.. code-block:: c - - strerror_r(int num, char *buf, size_t buflen) - { - #define UPREFIX "Unknown error: %u" - unsigned int errnum = num; - int retval = 0; - size_t slen; - if (errnum < (unsigned int) sys_nerr) { - slen = strlcpy(buf, sys_errlist[errnum], buflen); - } else { - slen = snprintf(buf, buflen, UPREFIX, errnum); - retval = EINVAL; - } - if (slen >= buflen) - retval = ERANGE; - return retval; - } - -Lorsque l'on intègre des fonctions provenant de la librairie standard ou d'une autre librairie dans un programme découpé en threads, il est important de vérifier que les fonctions utilisées sont bien :term:`thread-safe`. La page de manuel `pthreads(7)`_ liste les fonctions qui ne sont pas :term:`thread-safe` dans la librairie standard. - -.. spelling:: - - Gene - Amdahl - -Loi de Amdahl -============= - -En découpant un programme en threads, il est théoriquement possible d'améliorer les performances du programme en lui permettant d'exécuter plusieurs threads d'exécution simultanément. Dans certains cas, la découpe d'un programme en différents threads est naturelle et relativement facile à réaliser. Dans d'autres cas, elle est nettement plus compliquée. Pour s'en convaincre, il suffit de considérer un grand tableau contenant plusieurs centaines de millions de nombres. Considérons un programme simple qui doit trouver dans ce tableau quel est l'élément du tableau pour lequel l'application d'une fonction complexe ``f`` donne le résultat minimal. Une implémentation purement séquentielle se contenterait de parcourir l'entièreté du tableau et d'appliquer la fonction ``f`` à chacun des éléments. A la fin de son exécution, le programme retournera l'élément qui donne la valeur minimale. Un tel problème est très facile à découper en threads. Il suffit de découper le tableau en ``N`` sous-tableaux, de lancer un thread de calcul sur chaque sous-tableau et ensuite de fusionner les résultats de chaque thread. - -Un autre problème est de trier le contenu d'un tel tableau dans l'ordre croissant. De nombreux algorithmes séquentiels de tri existent pour ordonner un tableau. La découpe de ce problème en thread est nettement moins évidente que dans le problème précédent et les algorithmes de tri adaptés à une utilisation dans plusieurs threads ne sont pas une simple extension des algorithmes séquentiels. - -Dans les années 1960s, à l'époque des premières réflexions sur l'utilisation de plusieurs processeurs pour résoudre un problème, Gene Amdahl [Amdahl1967]_ a analysé quelles étaient les gains que l'on pouvait attendre de l'utilisation de plusieurs processeurs. Dans sa réflexion, il considère un programme ``P`` qui peut être découpé en deux parties : - - - une partie purement séquentielle. Il s'agit par exemple de l'initialisation de l'algorithme utilisé, de la collecte des résultats, ... - - une partie qui est peut être parallélisée. Il s'agit en général du coeur de l'algorithme. - -Plus les opérations réalisées à l'intérieur d'un programme sont indépendantes entre elles, plus le programme fonction en parallèle et inversement. Pour Amdahl, si le temps d'exécution d'un programme séquentiel est `T` et qu'une fraction `f` de ce programme peut être parallélisée, alors le gain qui peut être obtenu de la parallélisation est :math:`\frac{T}{T \times( (1-f)+\frac{f}{N})}=\frac{1}{ (1-f)+\frac{f}{N}}` lorsque le programme est découpé en `N` threads. Cette formule, connue sous le nom de la :term:`loi de Amdahl` fixe une limite théorique sur le gain que l'on peut obtenir en parallélisant un programme. La figure ci-dessous [#famdahl]_ illustre le gain théorique que l'on peut obtenir en parallélisant un programme en fonction du nombre de processeur et pour différentes fractions parallélisées. - -.. figure:: /Threads/figures/500px-AmdahlsLaw.png - :align: center - :scale: 80 - - Loi de Amdahl (source `wikipedia <http://en.wikipedia.org/wiki/Amdahl's_law>`_) - -.. spelling:: - - profiling - -La loi de Amdahl doit être considérée comme un maximum théorique qui est difficile d'atteindre. Elle suppose que la parallélisation est parfaite, c'est-à -dire que la création et la terminaison de threads n'ont pas de coût en terme de performance. En pratique, c'est loin d'être le cas et il peut être difficile d'estimer a priori le gain qu'une parallélisation permettra d'obtenir. En pratique, avant de découper un programme séquentiel en threads, il est important de bien identifier la partie séquentielle et la partie du programme pouvant être parallélisée. Si la partie séquentielle est trop importante, le gain dû à la parallélisation risque d'être faible. Si par contre la partie purement séquentielle est faible, il est possible d'obtenir théoriquement des gains élevés. Le tout sera de trouver des solutions efficaces qui permettront aux threads de fonctionner le plus indépendamment possible. - -En pratique, avant de s'attaquer à la découpe d'un programme séquentiel en threads, il est important de bien comprendre quelles sont les parties du programme qui sont les plus consommatrices de temps CPU. Ce seront souvent les boucles ou les grandes structures de données. Si le programme séquentiel existe, il est utile d'analyser son exécution avec des outils de `profiling` tels que `gprof(1)`_ [Graham+1982]_ ou `oprofile <http://oprofile.sourceforge.net/>`_. Un profiler est un logiciel qui permet d'analyser l'exécution d'un autre logiciel de façon à pouvoir déterminer notamment quelles sont les fonctions ou parties du programmes les plus exécutées. Ces parties de programme sont celles sur lesquelles l'effort de parallélisation devra porter en pratique. - -Dans un programme découpé en threads, toute utilisation de fonctions de coordination comme des sémaphores ou des mutex, bien qu'elle soit nécessaire pour la correction du programme, risque d'avoir un impact négatif sur les performances. Pour s'en convaincre, il est intéressant de réfléchir au problème des producteurs-consommateurs. Il correspond à de nombreux programmes réels. Les performances d'une implémentation du problème des producteurs consommateurs dépendront fortement de la taille du buffer entre les producteurs et les consommateurs et de leur nombre et/ou vitesses relatives. Idéalement, il faudrait que le buffer soit en moyenne rempli à moitié. De cette façon, chaque producteur pourra déposer de l'information dans le buffer et chaque consommateur pourra en retirer. Si le buffer est souvent vide, cela indique que les consommateurs sont plus rapides que les producteurs. Ces consommateurs risquent d'être inutilement bloqués, ce qui affectera les performances. Il en va de même si le buffer était plein. Dans ce cas, les producteurs seraient souvent bloqués. - -.. rubric:: Footnotes - -.. [#fSysV] Les systèmes Unix supportent également des sémaphores dits `System V` du nom de la version de Unix dans laquelle ils ont été introduits. Dans ces notes, nous nous focalisons sur les sémaphores POSIX qui ont une API un peu plus simple que les es sémaphores `System V`. Les principales fonctions pour les sémaphores `System V` sont `semget(3posix)`_, `semctl(3posix)`_ et `semop(3posix)`_. - - -.. [#fregister] Les premiers compilateurs C permettaient au programmeur de donner des indications au compilateur en faisant précéder les déclarations de certaines variables avec le qualificatif ``register`` [KernighanRitchie1998]_. Ce qualificatif indiquait que la variable était utilisée fréquemment et que le compilateur devrait en placer le contenu dans un registre. Les compilateurs actuels sont nettement plus performants et ils sont capables de détecter quelles sont les variables qu'il faut placer dans un registre. Il est inutile de chercher à influencer le compilateur en utilisant le qualificatif ``register``. Les compilateurs actuels, dont `gcc(1)`_ supportent de nombreuses `options <http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html>`_ permettant d'optimiser les performances des programmes compilés. Certaines ont comme objectif d'accélérer l'exécution du programme, d'autres visent à réduire sa taille. Pour les programmes qui consomment beaucoup de temps CPU, il est utile d'activer l'optimisation du compilateur. - -.. [#fstrerror] Cette implémentation est adaptée de http://opensource.apple.com/source/gcc/gcc-926/libiberty/strerror.c et est dans le domaine public. - -.. [#fstrerror_r] Cette implémentation est adaptée de https://www-asim.lip6.fr/trac/netbsdtsar/browser/vendor/netbsd/5/src/lib/libc/string/strerror_r.c?rev=2 et est `Copyright (c) 1988 Regents of the University of California.` - -.. [#famdahl] Source : http://en.wikipedia.org/wiki/Amdahl's_law - - diff --git a/Theorie/Threads/figures/188px-Matrix_multiplication_diagram.png b/Theorie/Threads/figures/188px-Matrix_multiplication_diagram.png deleted file mode 100644 index dab4d022d19e7ec9a5c5e319624e06b83c4b8e6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6131 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 diff --git a/Theorie/Threads/figures/500px-AmdahlsLaw.png b/Theorie/Threads/figures/500px-AmdahlsLaw.png deleted file mode 100644 index 88f5ca4a67c9ef54f4524406af8be2c6e0b4de03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31597 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 diff --git a/Theorie/Threads/figures/534px-Transistor_Count_and_Moore's_Law_-_2011.png b/Theorie/Threads/figures/534px-Transistor_Count_and_Moore's_Law_-_2011.png deleted file mode 100644 index 59e3a76c16693c6ab9b23408b80a0684f83344a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35537 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 diff --git a/Theorie/Threads/figures/figures-001-c.png b/Theorie/Threads/figures/figures-001-c.png deleted file mode 100644 index a0ff019643f3ca8dc37280af260db5b8705ad6b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45399 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 diff --git a/Theorie/Threads/figures/figures-002-c.png b/Theorie/Threads/figures/figures-002-c.png deleted file mode 100644 index 688d0bcf532749b37b71add50e6c7e2f3a25ae4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41333 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	G!*2&sm2 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 diff --git a/Theorie/Threads/figures/figures-S7-001-c.png b/Theorie/Threads/figures/figures-S7-001-c.png deleted file mode 100644 index 974e4c0f84ef855d882f4814f0458baefa3ee289..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16404 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%0DSNoG; z#1a?2Nu!a+`&R^k|BVPPtf3y-1#Or&PH1Ey4?`cMe%PX+$LKj=(TOSqB<3+r3>VA- zq8F2=vcsd6aU@qxPA-nx<;r)vbIX%^>)TEqupmqZmsmfvBDn0d+_JAYdS}>%9agjd z+YVXu+fWA(nTpnba&YH>O&Mm{?xpwWP8ps?c1;mwTtIOSa^l#a?!{7dlRWCq{dsYj zxLDE~x9O?POV`BK<rVvKZBBaA!h*_=^4ONgEU(~TD#04_GX8WU{%aqh3d60KadS(= z>o<ewnor`WMz(lBI*Nc{#>6xSP4vov?+E&sUP+RHw>F+p>0UoK{^7&Qx)Ufij;6`4 zB+^x~y-JmB|Ig<^a?IitZ9fRU7dYp~VII9C(r}n*=sC$3<lY^z)w8x;wx#5b|7+Bx zqfOY5k=<bBhtieCMHy0U>b2d?ZGv_65iv`AVB+MZ;*+?5!~)JnS&bbDTbu3bKCXL< z!PtL$i+>J><gtpv-YJkVj|WYFE}b7fwbd~kwCqh2_MXP)qPR(uU-2#Ox%mDd{sigI zggCi+e;LFlk)nQp|6wm$Hn5cgxn*yTx7F=gChcIiR^k7XtyJB$cxyH3IoYV&FU(DJ z@J=dZ&y^^??AuO3XLNRJ-MlDgWLj({dU`tD<DpTnT_6vG#%d0JY3LpqV||f>QuSac zH|~wvmD0M~xpL0OQsjbp$HrRQzH<R>-CUPl8!|H6ZN3-5u4EZ_{Ua&UYjNGlhW|VJ z_^%$#nKkc{LLBTiXE{f@;F&v-(M3VcL(>tGd+uqhb+Nt%1v}iB_7odV;Ot^d*fkSZ zBmD1^gA7Q@>0PDGyxb?;JQNc@wYCs5)2O-q^e^VVp)=g?@(w1J`~XLjeMW=>H}*Fk zO?=2?eZ~1-O&$1>+i4vlH^=J7+OP%Ig?K&?%~)Mlr#+VFLPtM%0F$B$-*VFr*TP>` zyhN5-jf67jgKJL!S62X#F?onr{W^tDa(}l>rms!S0Dxox@cg;ttlMbzz=q3^W<aY- zi1G>st6wwvKem42Pi~p`n}NXsAVnEB-6@pliH3iFWP0%5*;rbEH5>7D?kYTP|9_#M z^CzC;SC7=^#??K|j>}BUr$bloulMEBd)I#ng)e{cM=B#e#+|VEC%PlpK%c{|CNGvg Qv7){8Zo6Igb`s<N7bhhes{jB1 diff --git a/Theorie/Threads/figures/figures-S7.001.png b/Theorie/Threads/figures/figures-S7.001.png deleted file mode 100644 index c4d7204a604b7051abdbae8a0ffca652e5bfc145..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32436 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 P0KN{o`|PLh4Ndzyn18wP diff --git a/Theorie/Threads/figures/figures.001.png b/Theorie/Threads/figures/figures.001.png deleted file mode 100644 index 1eafaaf6424b4e487ecc5bade3da7fbbc379ece0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58759 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 A%m4rY diff --git a/Theorie/Threads/figures/figures.002.png b/Theorie/Threads/figures/figures.002.png deleted file mode 100644 index c628b10544100f2505b2442139dcc5da9acc23cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55346 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 W;ZCrP7db(|kGis!Qo(i8hyMlDh;V2C diff --git a/Theorie/Threads/figures/figures.003.png b/Theorie/Threads/figures/figures.003.png deleted file mode 100644 index b82cd30a4334bc15f26d27da2e9e245beb5ca91b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38500 zcmeEuRalkZ`t71i1O-JJ6iERkq)S?*OIiu(?k*(+1WD;dcXxxdNOvpU-L=kKsK5W- z`#k63+??lJ>>FGx*ZRKs&H2vv9b>#>5+Exrj*Ur#34uVcB_%}UArNHn5($Ei3jV37 zxrYsbU^*HJ3(HCh3scBiTf8?i)rUYF5k{h%IF;1NJH}=W5?`-`PCV;l`QY<oK`17G zx`T_P!;<@Rj97KefLSP2L|}o$K>n?2dZYfInD?;P!x$peiDa{<-5jg<`YvW+vmUc^ z2YKZJ7q#vem1DCe`739Lg66sy$W}$jkiAQ)<i=V&Hz~shq#O_m2ompG2wPwRt>xj- z5h{#m$W7w;-IH6Q<=5<6jW`n45Ah}-f(@OP$TVL_Lw21$2$Z6Hqk{ZoMR&-g#=sRb z6aPvrLhWzq<zJ1Z!8q@aVxG{4ap)jsU4zgRuKI+M05S+k8B!S6NV~m;^{w6Yb_fn+ z0`iW>o-NR)$Z#8VZ!b<n<3o{jtAkzD+_S)Y#fsr=^Gti+Dk)?hGTZ-pj5+^i?SKQ; z&BV_{c&2?o`SDQCecE_n(%&(t#d=RoPiXowwrAtZCDc<ifxLLq;7jTU^XtGT64vLR z-H-^5f(%zi0!d<4YZPgGm*~_=&(6Q;!JwkjuQ4n&7lT%tLPeKFYM!jg@p3Gu^uE$z zs%Nkd9~&g`Wc`W2?~lCaiL%;+R0RpekMYeThxEoFue~7S;11aK->i~A;tub7&H{}i ziu?M>7iRIocJw~=#r3aCLT|lYm|+Y7g5?j9Ue7TBwIVVIduKz2*`@f9qt7%4q(8Pz z`hLcfVc|fg2ZG4+o~VnSEV5|aO}JkXvECw)crxrF^Hbn{@W%GUPWj^T1UdUH>o|h7 zAlW$1Z7&^JRC*zHPV8Q9>VC`uPvW1qS5a}A@SdWJH8DKJ$Y_3oEX3)LC`ZX9fin2v zkW#@PVM3@Nlw%R+<BMOo1oOgO{qGHFBG8tE+hn;Ek*+W`JqrXYp=7If*pP#Tcc6Vw zF{xYF-e8P+N4MM>zjN%3^y}y;fi##7Q%7bEWR<4OpJJz&u4wKMoNt9c>F@==$g<EX zMNoe7vKBjoev_4>r8H)sCs6Xw5gbWYlO@e^$r2hyUdJN}%t%=?6fVP_L?Zq0J{7ND zeZZx^ZPnQJ(K*pMnKL?Hz_oAkTl{C|4@_?1m7=z^rRi8d{rHvsHPSNoGQxXg*5EcB z{i4Y?ukz5I;}iSzv~D+(wT<dd74eO~+r+=^7v8eAU~0wBd7lX*+K0!R=VNWqMqBVt z{&`8qdv$cP*yO$|3#GdsPs2}NooZdux<^q6^;5mUb44e4!TpZ>7iaQE%jl;szCM0= zw>+StRZ!=a6<V?X8}T}65{d?zFA~O73}NH};*-+!4-+V7sIb5Ae@X9j)-%}Wwq|i+ zK0~e!zVyFLe35J@M?(89g6g~0OY9~3CBmiD2TDIAg6P`sOi?R89Hkv)I97|ND4^S> zZ4lxWu9LltKh@mB!0`SM^`R8`l}@fmKr2dsdjOqePFg@(h+f?ySyy;iB~?e7rM#Ma zfjmjJY4*$PT=^D7e5Hi-*ZK+$@*xU^3gU)uVxI>~1|}~JNDtK*h7ZaQGNk#W52d|I zV}6PA9jaHR_m#zp<wCFb`(c->Rz}$mE7ir4neO$dBc`}7N}+b4!4W-?`O$6^7pk9` zR_F;B90Us_x3hWGv}9&w_?51|UfP{upu~CyBdSxX{L1^LEBZ!GW<dLyLa}_Yg4Ih& z)h<m*sIACa&ftfVpb{VJAZxGv$4gfCay}(s%A^Y}m3)6y!#4AUOq@AIJ5?r!KF2wW zIyWlUKD#%^C>JGLKYJvXPl+anbvShxYj|pehFy_O*~oM>Ys4{6vR}_o%!F)ovp;@d za1?W3GJPbCJ%cf~XSlb&V1%qcd3Ah)YE^M{daP}o#a7oYWZizF*?HM{!1=MW!_hl8 zEVsmKxhpcHAg@S-Ip{a&T&U@);a8nECY*Xyx{GEJ`onsM&eiSvMN4Q=4o_h3P0dLR zT&GV10wMx3C8Hz*yLc4%6e^4Y*4$V>#l%fKFMVHH$#AG5Qova;pUgGl8hOTaV1H0} zKkELAK<+@RSJ>T_-SXY;sKLLw$6Kn5J{DV-Ouip6KI)qM#@%(EcSKAq9QP(J{JAbe zxr$f;Z-e!?a!-`Lx;c-bcqLZl#e{jk)<~kh_B+_L(2UoD?9$Wqtc?c?j^Fpn!;8cF zvzv|DCnlW&ZQ`)Lx6M2rOYc_t&fZx*eiRcIOFWi8YBo4C%{NrvgS7B#$*L(eDZ5pV z)#Ph<VpO6!Z=utddc?X<^@%PUPFVHo%FVgFDx@0hMQS$e9(Lh4yYJ3P4xQF>x8i<Y z#F3BojTN@;d~6JWy@!2<7&o<hh9eAlNqb!&CLymOKSnD@3q&i#D!@p@u)^rVA=D^! z?TKP{c(Ekxl-%>Ks_17?PEmGwfeB7Nsj5K(lY!=(^VX5khJ{(^9B$>Wd9l6Vyx^5@ z&wf$<qG@R?a(#0zFB|>6h*2xmRE*o#t4|9}bU%Z{C&iY<KZ{L>Er|zPnN_1zFAN+H zd>p{zHPCvtV-_U-TJ^{4Jekda@#?D3s&hwISI0|~27G}i53}(7j4~-cL^q+&Z=W`E z|C0Td*8l2FB>Lk58B^&L%8U$FRhl!u#bo^2h_Hx|?B?v1L8_rsql7i*wb~(Z)@c^^ zE)jzg)+vr$^Vwo2!@z~8{rvt>|NO0~;YxiA;)(5sdS^5%@y*Y3r9q|prTm+>CMLr2 zBkK8FPSH-tjcr=3KX6^un%YNR`CorI(H%1{oe{V9=w4c!?Pcv{_;FF<SHE&BLoIOc zimj5v*kX)7(5>TG_vGN@gtSONHi0=N>5G7?<w$coqO*{Bv!5_A&J4YV+#CC^j+|$^ zZ@)Om9oz|ibP?i8_nFCEc3x3lJLgSJt?e@His8;PKV3Whm-<fnNgm5rmqpX{b;U1o zQ;P1Y$H<?}JMQj%)_%}9tk|Wpq~yleEb#2jmbP1ddr8J}+I*K=xuu!))@im~W{pg3 zym<j@9z$Vtb{`K?FIAG$naOFPn?ZeVMUrlOE>EFTLz&lP=oC7828Z->Q4Z|qe$P)d zcI*0Qb%q9a;|45f)Rfd;F}>8Db_j5!yBM5a3hGuc^R5VBm}Y3%BA!ap(6l+aW^Xjn z9IG#wtNUfYVC<*cu@qOqp>Cl%S7RAxRlD}NEumfdpx1Y<$HQW^WYxIN#Hq4+DyKHx zK))|t>tdGSL}PoVs;|ytrFk8V&rQe;=VI&#hkucm#0CFkb!#D_qg18>=Pjyr(o0@O z*NoG=d7K%6bu>m)=G)b`?D%mUul2t2U9R`F3N!}kHA3rXNt6il30X-^NF9iG+^dh5 zIvJXCCj#OdsbKVO`3L8h#C{wJ;U?7LvzT+e^-~90+gAZN4E$v>XVQFepOX?3x~^zX ziqG*D6gpNy`%+7@wJo(jHLSavoh=`ky=8JYmu|XSvRn_rT>F(p3z<!Tc;3Z?+}pzu zDMn%DO+sKib@(94?>^fNqhUT>I&;N>&`&|og<@$2KXXB#0c`Y;CW2~IZpio#(`?Ed z+PkSg?*AYZF@BLJ`D=RGrImQz7U6VKfP-U-jpL*ob8j;Q!7xs1_h(9G(Ot+Q!#6=4 z=nPbgLcSrS5h0atHKM3qRTu)0pQMP8q9elQ494{E!ZmD9hR#J)@>5!beY$AH3sKr{ z$=~|IG$pw%8TDy8D8Ea_ON&(4#wSVV(o(*PdP)58d0AGc{0GD9xf470IWC(%zLS|B zZhb$l63!Y5Iu@R@&K=bxj#bqb_MNDG7p>EyLdF$@ApGl(P7|+vCrxflKL{c^h3CKi zkoJT?w2}Yyv+%FJpb&&mAV<EwbLT%UL;-1X`1eZ-LcDO%alsTmRuK8m%b-JcN&n*l zf)vPz$dDJZUHEtYZG_-sh!9t_{~S2F7X-l*SCK_j<Uj5ThCTP67x?e6|2y0N7J~l` zlK*bWze(c1ndCn*=zsI}f6L9khs1x2`+qUX--!7C6#-HVA*xrHb{#TS@&AFc5%Qi8 zK{^C3(wj{0RfHAqv>c<H{_-BNfV=BB-JsTWzIvq^)m_Q88js68Kew}`=;Mo>#!Oo+ zquWe@E>YBt@qqvle^3IKd1I1j{pbcChf;fe#3GnH-kLI78%#H<(V6egqP*<kn4_AF zp;2GrbU8My-6*KdbGtZJuC~@E=5w}{Pj@*QQQ2Be4XJn;Nw1o~ZD$IQdfAXPPfx?? zeBi@A*iy9i=HZY`Webi#UB67N{nlnioH_lz#ujZCUtm22&kfpUp_iphRau!wr@-a( zvR?X*!X%@I?&avEnB>@=)VH#UX}dPqmhn19$84&iXEm7I{q$Y!cFl(A()URFpI&J1 z54H5|_Gar{riNq$w#>DQbwp3_Vc>!1-q{z_tkYjy%)!igcIrwKoY%AM`-RXZs;m}F z2h${vkEbl+yxGu5ECrJ{@>EOPsb7DUHLPuX7p-Z(H+SEeag7g4(;xeWKd9nC(F8}c zs_*<>gEP9PI<4sH<;IbA+tXaBC>oXK2^&U5I&GhVW;35K7l<8Y$)#?F%kUTfYVoVh zqr$5qWqlu{l&jpsehfP*^q2^x6xK+HcbIiLo^hC)U?0;^FfA@<I5)mHTS>yY`Vq^X z+j;QPrSBp0kK1s7=M{v}k3^wcrt!e*E!OS__VFXU(doxS{TR7Y4N)#r6=vIXC+4+V zQMPy3XX~DXQFBilWhOj{tjmb)d-R#}+hOYAsJg{tw{x(ZrUprF73{{tw9cRRohS68 zCjh%Lu&CP;vvo<~ST_qbt_JrNIeSYCe^SBsDCiKq(dgViF%pf4!*>|UcQmZ99Z-jv zRj|^>dl1BKHp%wR=}1KFg1uc+raFXoU!wMS(q!xEWUg|~{h}w9-Q+!Z)1UZ+%)={~ zm}AlxoA`C%OCrP~$G!R0cbFvE-4|pon|EfSK65x*yTh(drfPQ@Op-jVtFzI(J($_u znd=YbPq>b?;+~t8^zmOju~+!Ab24dCh=_gs5a+c{M}FmO>~5BFzFPH`z|~<mR+(Z} zXoJAjpp}dp`TO4ZwRII?0yYl>4ETnjut8kAP@%AKTKxWp8R9-g;L}uIkP?XfDidte z!>g?b5!CHETD)Ee5wH(lFE<&RY`EAqA?3C$0t?m=EH{RWxK*g#=w4RFT(|3;VAIPr z(C3_*Ik_ikgNV;Dp?SI2<qE!0Yqr{-T<~SC&dG-7Y%$!dH=c{BFk0KaIxa!GuvpS* zq}8#DI%cFmlV_qufqy$aTFZLH(7I`!2$mD_uElqv&gnoyaJgR?r#z9*WwIHKJigdv z{hL9&m9JDh=fF&=@kma=ZFVQh-;c$LxKwA}l%3BQ9^-1MgpAu6<~i3E3p*-B?lqIY z`|~2^uFBinqd`YtNowma_q*)}C28)(6h3|x^(LHJYWn*6>Y`TA)A_dPY~959;hHX( z=R8fPrO4xP-4M~jV)rZOO3l)d#{KUM1?qLw-vceaRu~R^tFha-&&Nz^fgjXA<k1tR zUGIFf`k4J!@^-ow+Ilc<+#%Zqh`FE{#YLARNdLGiio)G=kIMye`?h;3<32e2h91`k zNqD64o6k|+<5!)YZxqhpdg_MoRrK%0%21BVdl4OV_BY;Hm)iqbW)g)!Lw2<;<vEp& z3{2ywsJ{-S7)BOM$}{SGw7x|Cjo~I_V^LNSLf^|W{iXhGSZwCg<7^+Gu4k|xqIu?X z#-|JrXxEO8LNF2g^bgqNF<9psh$nT$#&EX6<~u^C!r5EyA*e^TvM28BpGNQm>j{Pz z1o2k3z?u$RIBbp&94d@T2A{I_@eZ+H-_w&AK2;$z8O>Wmgsi(4X70s${2bHvu*17! z{I%tAw1y65!K#5c-Gs~e*o4bYeZJksXo1Sd3c3fj(^eg4wN9e&3e@QdX#Xv!wd5Z< zN2?}i(t8o?0i$K-b(pbJ;fQaVQywiOIw*`eWxw_AXniCD11s`)&I7ipV2y&Jg9KS0 zY&0B5Nh>KJgRI9UZ6AUJ80SqDD<X^S(bFiaIN0jZ9mU8{q>gQM#3@Vh_Ggoq{ghed zy;?=6wDeM9F$X9fb#ZC3!V+w*I*nJyfipcWH<^bG3l}26N*gWwyHI+~qYO6%$*iL$ z8M<6rO`O-g?;$c7D@a&VlDS|n6Y|1Zk`pGpzS{Aq&1<#S9z&J7#p!l_m{yvtg&f;R zp(%-N#hzA<5A~)8LC4aws~whBLJN87usy9K!`#D%!}$|ZyVp(}SkM2vHVo1LUB)d+ z<0i(z2udiRs0JC~L=DE5Cgwgo+f}LkTWq6l`-@#4l@a<|y@(!$zLv*<uzL<g9=2-X zok)Fs+Kj@?Mk8$Weq=1oHI`Ghp5)WZwFU#ZlXpBf;o^*p4oU0ylKV#`67)s6EI0;f z%glF2&)n&S)JvxsyRmyU(TV4|1cE7PT1e+z_Jg}01g_R(GB7YlwzQiA275CaEq}cj zD~A=e+<x^Y-ga8ShBk<Z{X2Gc=!qzSrryP7sm!;F;v299Jw$}XxMd!W{lfgKObLpi zu)Rx=zkG6`rX@SGUCs+t#*`2r9CBhmywX3sG%>ELBbw}vW_F01_k)~v=pQKI;U~Im zR~PKfrN1JmBoa1VfR&GF*>p3m8@ag-Vj`%0q~tf7sTnDg_X$%L@|Q`kHrOm@Lu>Lx zK-%;rHn+67XBZ}W_vZ1Jk>8*`wW-h`^b*7@`k_XV`|<Tv5@fD#`jp;qqH&z&XCMLd z^Q+aa(m4qgNw)XbAnV$F9DH*~ljJ%${Bx+pCf4p6><d;#p31k)h#V8MU!Unte{kk= zJ}lZOY@8)}Zu$ly@(OX?sEm5WWTGTJ!ErtyBXd|SM}`5J7MqlNn4K0Y{*5;dyg(dn zjP)@Nj5WBq@GOQ3zs5FVzZ{Xs*Q~8z)T|k1|2$P@r0au<P2a4EnZ#nfC=ti!QW57V zb8^1hf}<IupDcNo-3Z#g+(Dh6XnB3MQY&S*K1|0J?d{88*u^I$o8{V(0rCV_-)&Ov zD#9~jcH_m*0L7H4&ldq;(W@eiprc^4P3S@zxfDQ?Xc>2XKGs+xD7fi9dsF<<RGR`d z!a@BIL7XiN^>>#*N0#&4F~BuRf16lG(|D)w*}8kk>5<ZK?wIB0#7z{$hgzOA&WV+E z+Im})<>rlJyCIIH1L7x21sYr|R`ac^)x{QdVpgpiI^=uQ6@g?s`H#uhW@;T4gE?mX z`N|Y`lzP?8s~^v!(59RWTx`$Oii7%gZ*Md=#4%W>vJcBpq;7jRy(Y<{r1F;5p?iQv zJ=D*`@KDKVul=0BC6Qy`ZEGA4rSoT4J65L%5u2eb)ZA9vBGT8N021Knbr05$SO^b` zk9Cj_-IbM8Z@-*;;!8Za3CVN-c05lCNie*gVgRu5x;()}f9WE|#ZFn7Yc%#?{c~aY zV!3TRY(~<--Tm|z+Srtk%p9oAYV(9gLkWep+B=y^?$&%ndTP1Kj4H}fh+n%7M^v;$ zRRsIxeLx8{ptk5Jzkz<da19h27d^%kCSF3ob4#_0&YTH-_v*(-wTB_-Y2rU)3=)g6 zn5vqjl(Uv_SxGG=WD2S=LEwf?A-+cZI&~zz{a3K{ipSseHLY^h1~rTA+NK1xiwzNd zF-5SMP}8~?d6Dq1EFws;g51l!@ni@WOX^hO#ZB`43=xKuEd0>KMGt~#<{>HE)1&eN zdjOf%^ydHJitZp)6RszlkTv0-1pSZ7>-_{|sLpcX+5c2>CBi{U|NrD0op-z#)hiYy zq`Ro$yB>o0>mCIJceW;T@pleN6aD#vwXcj`DQEn2Z(+!~zNDcO)G#yVhSL;)*n0V| z4u@EJdPnos8Se%}7?D+R-6W4|po4cN)ud7VzDh(u)3=XUW*5g>6#%ja&1z%+vS>J? zPCe;wvuM1s-xx^s1BI*Gy#8o3XpZ?9)jA&RV31ukN5PiQ)u=8BCgbBi#{IqDC}ed& za6Haf_^arJ3Pv+&=1C`Tk5-sX1$pyc?zSkWieX>ucQdm(CxLX>k?6cm=YYfBSsLSf zvTY_#Y8Qd^q7HU_0cSr`CvzT2Jx?r|Z;Bf4eF{iuN93!4-;37i+vI=ek?BZ|(rC5K zO3<wNOpRSZX7i_e3@pw`>m#|fP+xQT0*&gRS%&L*6-~QHfE>Q_pDp4M^Sf3}C2aAw zt_1Ym%)!|sSxS#jFC_m21H~9J80>PQ^-jf<xun5Wh`_bP`M3tpuK%OYPp@dfM5tFs zx$VR07zM5+cwU4;ijv>JMGzN-%z2e^Olo%LVdFtB&lG?gx>9k^rM}Kk3j0=Faclh# z)Rvl=_PE&M02m~OZ@=@A`LxR=%5(E+L*nPAPwVOPHL3^iGi#CXy_V_3;a;Vf0{ALr zYVb^KW;e-k9)sh#b~qwf*)eQ~DuC`7`7Mi$hNwZw>I<v6(sJ3-2M_yleO&Rjyi7n> zI87~Yh3N!KqypFd8#LVq2*RQhiURNNeZfLm1n6J&_Nj5di4H$|FZ=VxEJzbm?WT^i zHEgegd<u{P3xF5O-A-o4xNTS8?$jN8HhL(8P1%2aezYN8dif2Dd7Nt{9`7oT1Mo0a zufB6jK=LLDv|Z&4U5q&Lv>Ru+?Kf8w+oPGaXY=iMXI*wC#*1~giaW?kSCTwtC(DfR z>Vx;s*K-TS1a?+~e;AJy)Tg$D%?cRwlE9HlE^z{z<L+BxPRqB0D>f82f$R=IPUp^f zy6x{k))Rqxz^*gMANRZ|j5!D-&YdmP78q-?7)%Q=$=c9BK^(Sud$8Oynkhr>ay((M z1+cj-wu!({2f0UG_DK_S<E2hv-To&Nf0L9t0CL9#TI&H=PH9@Pb(7_A<;xy>eaYu? zTn4D$%;ASC5E`Z6o72()SGELY{Ve`3Ic6Po%dlXd_n{l3IZ7tte(7bf>XpR6=ht@g zfaFR+C>{&l76VynUmb9G_c7-5-{_3O5)tgy=U_7N?9u@xkEt2@4RyocUo`^CJe@)A zaXEkj>E+qs{R4L03SI5CCfS`s086V0ICsA~QsKxGYK9Y#>Z^4|Xi~|`b<tldqE4K9 zt$5w^4ATTR%kBw!T8MAx^nT+qFW38=U^}J;do;$!o|=zoI@q;fT$%|vn$6ZZd9{0( zCJvWt9gx*spKlEG{06G4EAz8iXiWp+<eJlzbUQpt5en0%9v-(nOZ)hFmP{-We<v7B zur6~o>3YA{1zBEj=6WG~8DFA|@4Cv=!+gBx-Iq$!eyA6g-V=Zk9)9sBMzmT>kDfeS z8w%v5arawh?7u`=dr9P*Jd0V(cYn~%tiT7p*+MVC16ViSrbB?=2ZES<w?FT4;w9KY zbo<KM9#`eW7L5P|imnJ$0V21x7%s!KA3sjIj$qk@fYxe0&-eRlgdmNE%4souhF=q0 zX6<f2vg=DYdaPlpZrS*ez%v&0L{%rYl7im|1(FUbxTu2>s{2)hKA7$(buBq3SsY)m zVe+4pw$$HLGDND~qzMPa2+9)gKi5R3y4%0#@)Bgy_g*vq0uT+(w<_nRH(~3`<Z)WA zd!m*5LT#V!&3u9sUwl8mf)fvpX-l6A)dp85RRh0^8xVsm0gdN)&v+Ml8F~+pjv~*- z*95Q)g9owQ(Gmd61dNxshecftDOd?GYSoP&+H4kg#Lh{K@k<>$Y?Y7Iv`|aM>dEk* zr3I4<%rgFRSkKO!1RL3)cC#dq@l8>aFAll6ZhMeb_vX>+Kuba6we!j0WTT(fSfRFs zAF2IUb>Bk$?kIEL3%Jq*=lE)rf<}NOKY!Z<IcZ3P#c<hVsLxw$ju$JJ8!IV1f~z<V zGUrPC`HE0aPvvL*B_Gr4wN3fOKa&`h8uUHSe+q5C@FRC${hmj27E2`;j%u9fl`;r2 zcE0`Ar1=T|#inkqa()Tl@px)h%f!tp;XX$|fk=RKONOxH5by2&i|*;;9y)}Eq~^kc zt*J`!y7sIKzWFf~xkB(;$o)<%WRW_E%ptFZQ)B03xyg)s;V<$Dv&xy23wo6Tk{C`a zox|yI4y{zqdAni&&GuLKKp6=<+@9gtZzr~BB~zO}fkPg)!r67?FOdu?Vs*X_hl#Tv zKHe#u@>m4Q1^pi1C+@wfh0lRe3}139^R(qMYqn%SE;zgdMJ;n&cOn2D3Ap?S&Jagf zO&BhEI7H@6i{ezZigH6zwTgj$q^@0$c7<uoR{hEBeI5*L>VwqGeFo*cBA?sbopqj~ z)D}wfCb<`|)q&I=tdy@&RC)60F9QnO0&ZgVjHZdo^Gqc(0{sRedDRj0hj~fGvUM4A zv1?Ec=y|I4wB9yfKJvB{Kiry%Zin5@8xIB}`XJ{?26>lf_npKTA+gA}<{U}eu_4K; z@FB~Cw_b$}=ihJJ5tv>>{&)d+cLg~@yxXr;3bpu}svn!&+*+Sf5XZAbb|vxVH}FF+ z76m9r%o}r!jU)N$(d{0wX4NF%;X|1b4<Vh=v1ugeRCG;vqg2V9d9RUA-J>vgIBxhe zkjO&OBXA_S=>7nlzgGlX8`OH-_4Ul%|9R`?)w?_3{ixWC`2TqS|MBP3#NPs9zE+K^ zA_T{xH(DP^dJh;0;0Ye^4H86yM5hd;Z27kK5OVU*hzc)%ms)E@ko!L?lT7^i94#Ui z0aF<W+Nr_xSFEw=5>z^Kt_M<LJI!ssF><E?02pT)wGr6A@ACv5F08H(XY1Ywt21Ok zSk0A7^@R(@g!M8hfsH4#F7_bby@6d{;ceX>t^m67<Z@3OQX~z_O%}zy1+Lhfg=Xz_ zldA-KF@qjF`v$U{egcm}uOT5o6)Vm}d2fmzrk+UJ?g2bC3G&`1K$cQvJh)SEhyoZ- zCEv;P5ZFwnq&)UzjaOS1UcELHKRc1(LH`ikfHKGQ)2H7z=!e6p_s%*AFVBH!BhOXW z+R<>f99N;&b=TqA{bFlHYXnJ1(&>6d0A@rKg&Q$k>tGSbX_W#rm!2cV{?H%<B-C*r zKZf<Dd@nT`%18@Y5xkl6>AP8>>JyJE|HJ|=vX>v3b0-{7o``6jO*pM2Y{98WhEyE& zk69qzPP_Nqvm8-UnfM}3W;CYdl3x$UnNt>xs-^FHHo=?4Ku9Ox)|ROl@gK<@{2s|* zwm084umD~dppn{!!r{t**_xxxQl!cxU`xg{iH<2pTT^42@_Z0;pvJmf?saGit9p6C z*{a)|+et!#RXd@1qPM2Q%m@&}=VwF6_~46S&<MM(EeBE@;I{f5BsQ<Tp5zQ%O&BEI z8&@9ot3RIXCSo^Me0u^1B|{lfr2v4<NwvQLRlx<|s@L_80Y1|FIev-*wrox?3D@9^ z$3%&KhDn$FlKXBmT0X$Sdztv>d9#G!G&1%rf@&3}s)ho@Hvre0Qnokn5S7N3^cJ4A zm!KBbDvti+>#@EK<KBsHdsjaaa)ul)<x<6}fx5P=u;2<}&3?a&hUQ7@?ynZjM+b0$ z^#CPLvvw57;MxRF9aj<@HsRb+2>C`}JtX=cfmO7gYqtq$E0DQ?*4W|u)Dh2qLG5-) z<*aiz3Y|_gm*PT=WH`0`u$(wtO~=D_Hk@_?Gc>)2i3+el2axD|oHG;bSsGWo8&+ap z2@2gYQyJvNH1?;7W5ao2+M;!)^j1*F7oN9rl=EYU(<A!ez`qWjQ|%82#HY4vcg(>Y zmc)rewd$QSxa9;>v)Fz^N=>#0e-WjeU+GO-26_wN;s{FqN-^jYWW%?SAGuFnD}xGK zBHzp{jlBc{Wrm$dhI=jTA#3LLp)n^zHi9b<zH7xAiF%En2mth*k+~hhcl_p%Xk)C< zVQR$R9Yl(TkA~(94*%)T)o0GBG#l&Zi2-S1cA3%%rlWbP1(bOh2zHGrVc(%N>n}UV zT=HD*7A`1B^F4+`zfEvUyQxA@k{zah#IQ;U-wu;BUS-(*iH37&qeoi{C)w>mgbNn4 zzjF6;5{WSlX{(ac5^vL&db6&tS^fG*aNmjaXz>Bib8J0Ye6d*@9*P{kue-@v5>icp z5B^9a7U)Ok7;*u0#!MK1#-~r7TWA4@FMZ<D=3;y~7mP9M1_EHasy&!kye{(>%4f%m zt;!kxLLN7-tzvTXs$ZxMKY|EZbvO(zub@Ic({4Ke_xhhi@Xn(=dpH|@@NmZkD92R` z>XqiCd&``(w$q^eKggC%exX-6V;|_qM~S(`yyhz!c)$8$9rnn=-TSU)`^FmXp6{co z^F3#?stqS$vQPC<1jGKbDks|jm=t%E;=%JFbQAe2Qqx8Brw=!&27)+&cY|qVVy|k+ ztXl7EuhsbCA=9m`Ro0YM8jpN82Y5_@!>I?&a#Yoz`q_z=a6{+jtnH9gl%WUELh=CB zc>eAi^2JXdoarA|>w`P&KLhKOH*X(7WL2)lsVc{l@4|ZlU8>!z`~X^;vowLgpX`yt zbxE9+0o9i+P51!cP{MN%kf*z(Iz_46TmU0$^r8O7$Wxj=up7w|Sq8f5QSKeBV*PjE zP83iKq=oRBQkqFJ4~+@|lQ*B*TTQ%Q*oCN^xJyB@B=_0aDCCgl`clV+nmyE4l`ilh z{in{1GY)@{GZv}JFlvtj)CuR(cG4)bI^fQ|w0>7iwd<W}n?Ac1Og2KO>pf0?8HZ^r zKPNs;4X#)Y3v)nd*zA6d#os21f=VLPuPE+i-aCEr2!-uX_(nuQuK;q$+cBK#zd|x6 z0()I)B-=5N7Gx@c@=&EtkG=~a(;Lv&bNKpkBv(b820ci?5%iDDhX9gW(Aoh)<3k$R zAORKZGo;&`6g8^#Xz%+Hw-6CQp(<2Y64E^ZiBc2v`VOXFq7r3-?q`R1-vDtwF0{ST z8N=`zp}su>5d2tYhEp4x*6oEG6fbBFCmB7?kH&r{{}0lFGV_saURuw?=T1*{VqPz3 zcNjn9@7X3#DoaaNel5En{bT6K`8l2Bp!}zoYGJaHd~_h3S9}>AZ4j!=00(Vw3BC&P zC8ssw6n0(Eo~q{}J`7VFL=JH0ANCRCy9>Z4pbE`+r+tcr&D{iC|7c8@=)-xcLvEjw z7`3}MvM(<6qcxY6F=;L33Edy?*yqgv!G2i^`9aUe#F`{f44C|re|omBML$0iMi_>| zK!ap@sqCe<GLr1zU3WF>XZ&Zvh-~<j6)J6@4oh`2Yq=ebY)6n{BlHVJYgh+3g|pQp zEp<nC%zgT;T_D_fOW5S8h&&-kp^oUT(yMn3?N&~#!a;0+%*kj!94}NmmU(r4W&{eE z`DJxf-2w61WM+GQO(KI)N;O;$2KZzrYL^Fe2jQ&}oA4euC#WM_nZdK+TiOBYkC78E zpX6sLwY$4OC@%#?xteALUicU_s`~Bh;QGK!vasK6JG|Mp#OSS)YZgx;ZfJWs(Ikk0 zQqcEpuBM}~?4<PjS{W;3n^HfxXa%&U3`zX@5tQjS?i0o=0@zCZ;~ppyK<|7DnucNB zejdyg?H(tp2N+qiY%xi`jI>QD`UE3a9-tYg44~-7baknbj*x{u66|m_w>KMz%@=u; z*nl)x+fa$%{KSUyIzdb1@8$@I+d&XSeafF#$5!3!k!|(WG>AN)uU7pixnypK{rMxU zmb#`A3-|iA#tMr${@8cSxVU?WyaNZu!&!GU5&JgiccNMk`c7)b#i^y^AMkM;2cOt- z&D%wWDCWI+=9~|@d7?nJBHbgZEB1?;aPc4%WPW;gV9;O7hj%`BBE+#d*nceR^R#t0 z<DDHk7qx>G_L@gP<5C=MjmxE&4~7BqaUlU}!9y(yih1@;teGLK29Y}G%R}A~ud%No zpdUd$e}w7ph=)|;rdF{_4m%Z3J}7Ti*Q9W6h<Zsy31Si*Sp{JF*+yF`<Zn~}W<MRV z-;RvjG1wkaRb4s-okJVeVG~vUV7HS-9{tFq@r!dl$S`XP08+)ZEZ15xbL>7Ipsy3= zj#)^COcV<ZzyK<{o|Ywbx@*o2{g`R>j}3k5-uoefslEAT8xY=md$%cQ-`eUosKxF4 z;7MJh@F-eQ_9xWmHp^97SXqhC)%nqk4E@SkhjEsd{9J>Z(IpSYH5`G0@k&B`)HxP! z-9TCdWa~Fg8<5zRY8j>tZMUPy4L)c!@#Ps=7*BZW4PyEJ0z9C8axdQ>*_dJnxvWkb zG|;7Hen!^q9SpD-FMCLRi?)!&BRSrgn_C~vHvyTbuX0|F42%$b9LQaok@6IOhD(d( z1$34PNt%SksMEkkkB-lz3mi*r29ZucnsAc4j|oS{AB4atTV%T<?sz>w@JPvfYAY2? z_uRrp1OS51iue<MtiC|OetX+9KJPgToL=1|_dh=bje%Mre=u+O=dS;V&(?4&h_o_s z%x@0xn?T&K26h0Pvz@Gf2L7)Xf*^9y0lAtcH~97Mjy`<Re}5n}7UbvQI!>ZLGkG&z za5@r?4>XSO5wVQlQ-&VZ6ve3S9Z6|@Ljk}AK7u*HfA|jR&y~_1S}w;Js72B%nO>gm zWyiM{|Gk4g7?UdMiv9237vug-Exr$w<#CQV*YE)s%e@l3)3wZ`&2Hw#ABL#lcJD#G z?^)%m;sp1=)dQCiDj?nWy&1dU?SG>&hURd82%s@y?Zg2An0s(}5CM(k?bXGJOj+%? z8C-V*G=3^aDfbf}Q?x^lT)or5@?C;oxrGfSfEi2*z|Q*aYCnp>^8;c=zFK(+s5(qB zEnKKzUOIWet({cT@&8ce%^SYMZqDPd9X~)^s9xE7#P$aGPsDb@SLg3BD3`IDjE)1$ z6>I2FJmr3UW}sg0T)tJaQP4&f9mvD+f1p2fTvyi@JEOTO%tPfssjCZO(Xbs5Ey(;1 z+%$;;7nbm?LXia`!ds1X5$k5TfFs>>s)BKeX#&(dab>+(K>XB8^a5(f{vky&bw_1t zEqCX`kAXzUG>JZ14RU`a9ODWTFskX<EdK})V5AW^*`ApK`N<F{;5PM-*ly{8reOsT z1Jk-$?Kj`JoXj{#@jW&MLi3^1W3HPt4v5Ya?0N?_d3kp5${M2=4hgN*pf99X5`R4M z6jVlTxH?uJB8LMaJAw4I<(SA@nS0bAJWABcjjNLYg#kXAkwHg0rjLT#n7oJm!pFl3 zGSxKu^ljkjP5*J2B>UbXoIf@x@XRf!`TqI;WHK>{Z_^f(@g0E<{}1bG`M+XaW`HGS zw7dD;CdHhV#@68*P%aW2lf6Ekb+L$h`p(;hyP)YCs8klL2EDc`**xcj2Jyd^Ib@l= z=oB)lPEy4~DnLNRB!*T3PNsSARrfQUWg$T0KMo&_0jtf}lG$*U+;fxBC($Q>u}%E) zBj4U{1R5g&r^*=&i0+uC4C^g_WOw?a3xE-U9G@`(B4UTyQ!#YG3ytjQQGb7^pWaY^ zvhYmucMrL2wxyuP_euP2n?Oz~0p6%?E$6lL(-~3ssN(h4b8QMTd?SZDNN}yTlikZ& zYq7?1m3!=^koz4$3L}Io%AB%P*wK++#r0`CuTzQ1<wl51BW0d>;yX!!>r-8}-D1$$ zRlpULsbK=PuGOKsqBnY}@m=l$rC$iP<?1}!7jl!c#lBE45A6hHD`ZY~(Imz1iUik_ zaapIi0SIQ^071bAf%Avpy~b;z^M_u6W^ahr!bbwFBH*8)Ij_#*KqGU6y6v?Qh;B(c z)w+x4cxCyfc;gp$ljI~%rAgxPtY@We#+nq+;UD(9BGBh18h3CM-9zV`_kW}zD<tzh z5?^r(V2s)jZv<oL`bi<tIL}sD_!%GBA<S=?LiVZXRAeG(cZBD=3#`>}zdzobFxTF! zW^n_pVyquSpiTgMq~u`A0vkYfE5>#qq<ad5d~DxU$yZ~K>Bi?=J{r?@XhB^p0Zy19 z*+7w-Nl$by+yR0$(;T_m;TNoeR`T%GQeSS`s?@ZS^^1&T94h!$jfU3@d9yDn$b%F` zsi;wj=tjIdMekZP9A5J+^;gZNT+_Z1j<R09yPm_V+kPvK%_wYRHdkQwNU?~@<8b+P za%ubkshdD)JgIqfnkUise{=9SMb!-D{>n@9-2}vbhv>=}k~;wJ-PF)5J5O%Vuw#~M z2LDpga%yAm9ND@AWaJpfst{A2o-;Zi4b>dLg=qylzGM|7?UPs3bbXkgvWoL)rs)G= zd?5nb^(gq9vfRJ`G&5v7BhHW6t_7?p8Dy%?-$9#TOk4&A>^iBMD<fDsyFZ(^Pb!J3 z*TX!3sid0b&{@6^5*THwI5=c_Bql+fom}|VkKA#$Pp&?@fvM^zA~CSTHFB+~1fQwA zePNda6}QSxTY7CPbp>~h6;3pHAtk7!=;~C`JxwKhTik4ettl&m19vQhDj?1>vw&A0 zB$_Tz(zOIIUTp?T20MCCh}C79-6_N}_@+C4N{(>WDXC@sC|w*{wPWDC-K4}qX$i!I znmGn72z0#L<6lVVB+6&E|BZwO5%>qr#P6K|zk&5h{Ys(>AfN001g-v#*xyKJ$6R#C z_S(zD0XiVwBih_1f}M5<eB#~t#86<_QD#2FJ&!_yMS24Ewivx)7A{;aeyD}>Y1Q4r zTErm{9EYkY6R+%O*h|!^)varKwYe<cc;f3Py0g_25W0T^6qdDK7;r5%wAc)(N;4ZS zZMy)DxwYGHjbJue77#VEk$+bX7!Uw5Ex>pRZ`D5rd;7<5PX#cgZ7a#tNVH)&di2+3 zDm!~GUdgQ{QW+hafGOL2Bd9w#63qWR`=TbXz=TsMG;Em*w2Bx>9S(XpYKt$|&lcE8 zW=<Ung%Y3EIvdZGo2U$ZM}b|RG-^h}KnHH%$d+>z>a+O)Pg=q;@%atgU9CCSOf@lP z@&dX<Q%?iA%blJ^Xf^WPbYRYDNg%jr)z&;`Z+yif$p`t&f4++7ms6nQXJGi=Z6rVH zgJQJXQJC}jT4vynaHi$LRVd~At_;O)aHjtHimgMq#0VgWV?a8qe=*Tl3Ov&*S+Rl3 z!9bpCg&Ctz8Z06JOAs~G9D1%Rrb}6$`AoIef`3|~ISkJ7PFj0cZ^z=Wza%W7gce`# zNoscEnS}^2O(l(JYKN~FdA~qm9G23?gXHAa`=U}AXEB7tj>~Fpu~WU!?TBQXNLa=h zuuPc`8xv0HoSDpoc-HL0PXf*kIB`q2Jgv)AGJo(5nD&f^GG$I==6>b2*O?Tc2qf4~ z8kw_*p@^~h`9#5no}!@;vb`3v%V`pllSDuc?oa{dAw7j05bT;B<zAp2BFcA{l%RIY z6X~{P_>*??8&Vo-0&h>{w|6ol8r_#&7_n#_JY^;<NW4Ywm_p->O~hu|>=~vRPztgO z;SG&us@r|R1DJH`!ty<2$Aw^y>DZIDC832jyZ9*N!|=r3+{{n`)VVn_SPiH;FYvI= zJK&Dj`jOM?)3k$6FRz_qOIwqCegc(?$$GH;bR&zh5Va_2*hMfLo1VgQr~ahI(~sI_ zxYdtntdM3yZAmDX6h9I`nw8ap(|edHJa_9P%i}SaemTb()-Ff&f4{x%_5x09zrhdI z-70@gc!&0dAl~&FMi_O4!lNifYXlS-wxAb@K(p4<X$n)YrbZOSJPj6+`VifNKlfI~ z{xLouLP*kM{%f^>@5x<<Y{DL{gZnmWMnZIQP09$Gj3HT%?=6J;ve33A0s)g}NJcVD zSxk1nwmJ8t9T<G48z0YVK+NZWpLRzp@H_+&)7UZhPC*yhLNwu%^*VTrajSiNAt{Uy zW_HQ&HaU`cxK>ywB9N)3GoLzi_1qLLQ+U(MT0*pBZ6q7OL_b1|-O}DrVO<vBtFw;C z)Q|+p$Q_|^%6^m6enzx=F`MDyH({56C6u~|V$%%%xGEM#VN=%PL&v|AwG`CdS_uCP zm-fuAFV6-v*SF!6eNy{+pMc{-b6o$^nnE^<%VbDwpdcSKqKw4{5PA7jwQk<~(Zg}y zwD;v$FKOZi<)j<MMJ|o+g2lCg7-}I|u)M6qPxbW*g+p}>xJ$WU<iVLJg%qM%srsuc zC)V-IwNDyih_O#z<JlR-TLJ@ykPrnkO4(*od)S4fOhP1B@&?3L&Dmda%zwUA<39l9 z+jfV2$G>9ZRMUQ<E&p9%`R36FrJ351&@mPVY~ts(9TzY;9Ac^WD?MpD)Xh9Vz0wRJ zw&OYJ2s81n5|Qb<GFkkV>r3LuaJ$M0?T`%yBs$Ak<5M#0PReaM+Z1aO=hfs2{qFlG zJQ5uvS#m82nVB2LrW>()cxR7mq*<mWE6hyJ_mrtEo6#8wbJO?PHih`e4;8g%VD(BE zcaJ4@camM#FH*U%!=%<|SAgKMZ65s+@)H#3koS9i9@nK#xz9ud4sH-Tp_hhwh3Dl% zPr)_hI&Eol!bdweJDo}@no2c+R`xFts=r4^)Of<KUSGZL?Tl&yU=|R0-WrlvZG!-< zsY(m-o~W^(A&xT{sVh#wL#y)kTG0-bWeFbGg@JB*^Q{2`Ho9|9v>SNm?bLr0c}9ym zw^ns={&{wOU7Vh3xQL<U!<q8<UcH!I>jpLXo-e;h8S)Hc<@DXXWqeviCJ!fGMxzxJ ztcO|)Z1e2Bk7gB4C4gh>5kTO9jtfUv2`ZCtJ>nCI-LTw%^RD-;I~JE7t#MDD&L8=I za`f`_A5%{qpW;3J>9g%>@j$J(!^oiK`&tj>ojqros*C&OraCD<h5?05NKL1x_f$v` z9)}YrWG!gC_3D++s~7Oj*=e|dlgHQE^bBbrGN!#Ops~3=ol2A5y*)TYQCR#o_7(%N z<c#M?zJe}yU~CKz@!9URr9-$5+`lqWrKvU30(0M&QP5H{5yMQi8jo$BF$t=+TD^9l zdBo8@C^}+exY+q+JD|#$g(_~?O{?Wm8C!A`(GUB5L<DoAI?z<E8o481-RS(pP*o`( z9Xd<imX8`*V4V}~?M$<}1_O?DWkbpDB4;pQ>PTUrFm!BBaF~r*eOdt*ExZT-Yi?4x zLnuPQiWr+!P-U0JJ`pj>GfE|X?(?L9!CbCdUS-6jpt?ODDSsk^U7?)Xd9YQojeVWX zE3qacr`z&UW~Da)E66Cg@dU8I_1=8N?6BHG>Y2fPMYWO~HpvagjgY<h{e;!??}ekI zy~iT@0sG&cBkwB-hWCO){=OFcz;ITbcpG?YI7pyWy7NaD=YZtdw0Qt?Na?rTLXWHN z8S#ZPcD9ExX;81Q{i#L|kCVh3{kEDmblRd`;|ZaY7{p5lMXk*6ofg65hYq-%fp6_J z33f(4M6Tz&z7OCX4exXNRO-aRC%r`7xdO;X;$cMdT9s0@z|B3=Dp}mo(U8QV|4E(y z<$~mb2V28fQW4!T3CP@2wR;V*-GcRmhkj}8vnF+W@BB!Y6KUI$N>lsPDoi><DYvsD zz9$$jyeQaL!u5pf$Z7PU#{JJmHqf?C!IVrM;kzt;5q~oDig(@N92k)n5Qk=qzNFDz zLOh*~Xse{)ncf<Ho}^%u<V*}2fp~2?8Nig9$rVds2@E*}#EsNpFEj4s(d=Q~*Rbw- zY%b5Nsr&5%2IyI2KAC;fr<1hEz>Im{uu5n%g!*J15cHJ18jKFM)}O%R@SJZ%u0?Z3 zuKaenFGUu|ixNrAPweUyH6O1VVJEQZ-H-fk=Tt7vUJGounzi5OG~MQhD;ida>sCsc z(xhVx616~|-gaMEKiLL7JVFQC=8#zY0phsr=j#s8-hmMBqS-2#HyRo!lQ|m>g^2Z{ z*zY7%xWq%qwyxde3QHA1TspQTT_4hLaOn#YcHM`=&<IE_gsQDo2t6X-GZ8iWSzK@C zZDZ*D$THXPMC-IzY3?<u6Ti&&JD;&1WW^OkbqwL*GtS+sy=`~N$JQrE&&mLLvpwb$ zx#LHv>`3MB?~LK1!m_0<-E;&@wjq3X2ER(9;9L#^+tE;wcNi5g!pSX=Ab+ES&as|f z#Tbsu0--5T)M%!r94oZ_gh+OwqH6E3O{?sd{V{M}plAlhHa^x|iYWJ<$}aG=1ZX$z z4_<^DosNj8U``Cs%rzp90*p^=1CddRgXFeq$1i0D*^T6l<RytK+GZ49v98g`?Z0=l z54P&L6WVLLkzYw&7r&he<a&W>ru2a8tYPvW&XZ{v32=8H;uzf)r;NpYn;{a!fUugX z?NxE108&zg>1&Y{lc^@JJHGC#f4u-msj8nWo{Bi^f(%_k4~1sB&qY%io$*~Q3Ijbt z<x3lw{d*+T@Xh@W-n?I)%-r<4*FWSQY@p&J#j0T<&&5YLwz<F15#lhjQU1Opad_p$ z;N%FrL8;2OUA6G3r{w!7T=@a)c`Z@P>D6o1zC=E(Lt5HnL|CPQi44OUolHu5<Ng9; z_R<sBP6Q&evvr05exQjSL8Xk>?R?K&;3*a_q(n1g$c@<4Q_+tU*uF98fgyp#R|PUq z%+b<1dW3{v@b#TXVqc@Y<dMcLs;&SdTF%cmg}d6|zDWSfzTMRnn4-A?hkoq%2!~I{ zWIaW?$XR|0Ajn$^*ORd&LzQu5oyt=LStPq9XF&UCyB~Dw>YM0*yig|OgIY}?>_z&F z9RI0oi07#m!ZSarD`h-P)W?zfyOgx3i%5UfI`mQ?-#s1U*T*Sqx~HOXrzfeV*u=XA z^i{qRbz(xEsFqOG2y|Mo)ix6Sa@i`6<^xq*^u3ZW8rW+q%Vhmu$H0rYDEbH=qOI7V zog~<$!IzZ_p2alDQZ~Y5Y6vf&fmfQ_O00*uF78&6GRLfu_^Yy>$$9SEK<j^fFL>kO z&D_9$AZq}Z5h~l=UEVN0<QH^M{mo%FSKtIQM--&oEa_${c$de8z%~RwUz1o83`@HL zl&>80+i9~8*pp{~-1oY4FEfmdwUJtCFx)jC75WZ4n;P5CaJs5EAK3p?4UIsTlW2P- z-sZD9wjefaZ77qVdN?@>n}pY~s9PmP+b330_Ttr~tctKY1EXQW+PKMSJ=Z6C;f%_Q zqrwX+dWVdi#?+0AGc281`v`~Qf22?$0)U_TP5duE$_sXr8i_fxla!N0v^Q~>j`stz z!fK)~14MQbRX!s+>wp-xj#xNx`fBi0Wyyr|LzLFwT{)YT-trVgNO3R>e(DNeaA4>< zMIJN*r(H2)U;P3BX(xP(ZN)n&ib->wT61$SJ+P53T_vA=roruk^!T~NS_%p1G5nEB zJq782a1enQqHw44Llf{$Xe?-(yfEqFt#7Ah_a1RPN{VRTezkN3j^N01@uusJ=)=I# zI~$qnB;Z;gXp&e%v_jhf*v`BgxEAJ*FIQ5R#biT8>Tj_H3F2W;*M9d}R+aUfhj-C| z{M47|es07u{X%7w%Ih&Ugtke3T0Rg1>zmlWNX{&@viv?{%Y*0?vWPcyFToD*(tF@2 zMh9sB$b0AB=htucM#)fJ8%h{H-I*-Ut*xNmz5q2WNq+7{3q=Gle<-i2(fc@~XYCc5 z!&u+{usp!V=e9&6zRiF7mSf`Q{!;hMG=f^xs}|(4^%pskPGN=47I0|$PndrKVGbQe zJ`?;2LuOM=3?nKl4j;&7xWZztd#j@DRz9UYNePLymC;=sih=hA6E8PnjX87Qk;NUV z@*&QLzt2=@;gOS9xemaiiFHOW6#X!scF@arqA?`m14IiN81P&f9EJi*M^8RClnk*e z19Tdjdg^!E2(+srk%0yowm;~G`66pi8;HYt7Ts2VmkTVMo`$C+gjM<nHm-z}VEERW zWF-+aRzzBN1-PEJe31-U`0QX~;cI|_sRG2Y1)R&3pfyM1hUc;BSyQ_~Mx;)j#CA&v z57)RC0fp%16wTWY&W~4J+1uFz-fr$92PeTjsOsA?!In#W&)2wPYk$rMGBcGCdDhIB zNVcG26O98$r5Rkd1_)__EyS~C<-%zd9FE+4yahZV<p+HNb7l%!w$i49)}FB<yFg*L z4W|KdbX?!QZ!+INnool3!k7OBdN~bPWN{qQ-fW?Veny#4+H3sIK5g8CsDOQIslPEn z5eH~$Np?>?t_0XHbDBV=J_h#}?dvab1nu~^BOoSAeE>q}Lk>wO(JtK2dsszUzeoHA z?o95nEqwa|pj@o@=ime(&q5IE^n+_ep6eZ-nvRVwSD;O$)E=>2cRmVX^FSB26`zj# z@<_Y}D!Tcey=0_R$P1Ox=|SB3SfK^C_$#D#nj?Q%h#qj|?$xFw;Q+gtf}k!ie0(zR zUW@~_yBdmM>N|PBxdF^@DJCEdg!_zl9v=|2)<vSnhyRT*F9-(s%Pz9|z#XZBG7MF2 zu>+mQf@G~!vEcEU$L{1)O@s1wucDq5!@In#W3N^Mj1NIqRmD8f2OL+NIHHv;^fYCk z9g@3`EeXtuz@1{k%@loXa(YyVg;xA!YlYe0>6MGVrO-b!*bSe-TfJMjv?gBTs8QgQ zk_H4=DCu_D8uJdm=AMkjBN2Uvl97P3qu6@SF3(k#z5k3GrQ}5y{@-K~>J15pWO%kE zqc6sJ5@pAl7J-m^?s0wT%Alp(of?VBM&rZlGkMxakIwO@0S~qmdOX-oO-dMqFDPme zV+AcwcYm2{A$U~RZ!S}u>}325AQ?fTh{PbYX<Ur>XAAzTpvgi7C4;yxC>5qHqAc2d z!=M=lR%|?J#jlr<oOl23SwKvGU_M0?eD7Axjp&6(YaVnoU2P-vYRhi5zZn&WOvBL5 zv*}*OE!MPЫ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 Q=y5UoHFWkSs+s%z4>)xQy#N3J diff --git a/Theorie/Threads/figures/figures.004.png b/Theorie/Threads/figures/figures.004.png deleted file mode 100644 index 3445a331b7c406b02d4d801708041982a18afcac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39800 zcmeFZWmr}3`Yt+|G)PDobR!`s-62Q_0)hxAq0-XbOfU#ZX{3=9oOHLMq%=&rySrhY zccQ=lUTa-vU+3G|`@{Nz3d}Ly@y7k!@eBjiROAWpDDWT<2!W!4tU3gO0se{(!NCH5 zR9BM|Kp=Ro<}xyBiZU{EYW6lJ=9b0~h%4G)jGK_=3)&XMq-nD9QuxUIZl3q=I_IS0 z16f*xsakABLgVGCs(Y=%nWBQ=3ccU1Rk54*OyiLgtVVD|y`WIb9rtpr6z@KpL{7pc zr}py8B+qKR&ngg;7T=ampi<U`xEOYY7?7QFrnH6{Qm@Bmx2OdnbP#m0mk_?7q&v3z z2M1V4iheHz0g|I@56dq3HyVf(>={T$AX4?Mwiv9RsKd71-b<EXerJMA^WwN<v)~fT zS;@z-$g%|3`UX_t>)xFWz_d>4#@%<3v#&;LjMU+zzX|Dsr1xtK>t+zH;D7(+Nf<^1 z8G*bKb><6tS7^40wX>5TtNXrCrP;-)a_W8%dC}9zpR-&$-z(@;8MvKinDJ({SM~&v z9b6Jzw@(cA=s)Zmd5^#89Sv{|{$aoK+(>%-{PXX%Pv@yV50hw%Mom9`d2f9g#HnC^ z8tR39^B~x4X)uT?e!2Q7tKS0K^OBR(??%YfhbqdrwtDly%Z=d=7iFtCSDuIoE~a-W zz2>UpaE?UuQTgyrqe%o{?D$|VH=<WU!pY+O@@XMm2^cF6Xaq$9Hv`ry70^W@y9Ibs z6DShmKKdbT9yku&U^%;-IlukZXd7u3e-q8NQ?|<oA^E(J2EyN3pJjC}-|zZvToBUp z`KQW_EY1O$Ag)_d7_&ZD^FBOk*dmR@aZvo1=u|!&+ZYmb#P8n{_z<Ljf^lNxzT_Q7 zvzMY7CL;8Gt%k)e%`ZgI^_Hav5AH)bO}LCj)JS>{N3N0M9&T0>Cx*080Q3pHumWb^ z`+a(i0JITlc(~v^(T4{!#5ZSU+ImdPSfj8PWPYj%KSjU5)ANB#Rix4^U+2RJk=aV^ zzK6&1gHIcG=xyweYs1$M-=fbP+`Fj)ro+;eTNgvCF?(9>7|#>i8$$HGV496g>XRDJ z9nC2EkG}SDC#m1np4_2-!@+)2GvKS#VA^vv>Ku<8=>d#YQi`Cg^c6FiQi4%*>h~sJ zNPAxNdi4BUe&fh^N^wf#jw2p;>6iAB?EdL3i)*AMSU-MdytcphA&y-ceNki)%>;ut z<mYSS!clFdd~5+S%6Gq;H=AgF4jGOWiVwe9CnNNa{IN1;X(u6cg9|tIo#<Q94>iGS zKSQP^W))q@YuP3VX#JMvO13{7M;<F3>!088j-iw8VbUh`#G!g1@``pwDD8u7?7atZ z%#TRQ0?V7FUSG4rE(*|=uT`O<t7rYB@P>⁡LcoRE3=(iGG5K;FH9s%vN_J(_ImJ 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 z%0AACDtZ)XqqTP*$d8UKEl-Ot|F#3Yy@{7pedL}De{Z~RGj1;m=p3)9oO}dT{HRMI zDs?J)y|Fs$*&AWHtEwZm*wL@iYH6rNZrRjdSLJm4dOo!NL9Mp5bo|_$CH~0BumTD* zO4nq{)uauw!d>7r(XelWrHP)`$h!(8FSk+2*FG3dU20)kd_|g1b50tUqTHsN<&{~; z{rgvWY^Y+xMwH#%dr=g0PX+c2>vR2c$Ux((GG!6^&RWo%e>x^kKRepi!uoNy=Nrap zajsX|(=YUzYr-fhq4V&6##S$bW1_o8jbpm`%Yc@ff%tKW<2xeS3>b<ipvQRXyQb>K zo`ebIDIwh$lcBbqXY!yaN`+20X{0?b6Nc3(I&t#ZK3wInDfMgaVt$Oh?c>i_mNpZ- zc9+B{I092FX2GRI43*dQ6Uu4U(7kqqb(3wcf!@;=r3=3u00?3+Xjl_OCO-I65u{%@ zI-Yho_^;bsP%F!N7*xAOz*yV%^oY=HjUfo13Q!v)-olm6%VD4I3SG1FI0d6bRr+Gx z&DQ+wA1KuhGG}aGFJe}2i-0MW+x#G$flc#l#5Tg_q1g19%}B9QGydQ23OhSWAD$G% zCGrvhJuvO|=G8{6Ov_v;2956NuxyU?B)OVle(0Bqqh>yin_~9TE<$y>_qBuizXc`s zI>8i$Wfu6~zo`^SL{&a|8TX&7gOlMPDQ$jq(*m0o*tEc=1vV|PX@N}(Y+7K`0{_oh zKr*721BGI~r+NIS$@-{grBvRmkT)%`X@N}(Y+7K`0-F}tw7{kXHZ8DeflUi+T42)x jn-<u#!2e$sm{S%|cvjc9Blijlel%6}j=w!-ef|Fc(lWEP diff --git a/Theorie/Threads/figures/figures.005.png b/Theorie/Threads/figures/figures.005.png deleted file mode 100644 index 27881b8978fbc2b348e172c99ff3e45936ff4b0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41523 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 diff --git a/Theorie/Threads/figures/figures.006.png b/Theorie/Threads/figures/figures.006.png deleted file mode 100644 index 32116684e932b767b2fcab2a87a5d6304b3a29ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50146 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 diff --git a/Theorie/Threads/figures/figures.007.png b/Theorie/Threads/figures/figures.007.png deleted file mode 100644 index d1bb346e918b4b94f3b67bde3dc0a9ebcad16be3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71209 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 diff --git a/Theorie/Threads/processus.rst b/Theorie/Threads/processus.rst deleted file mode 100644 index 57e8657..0000000 --- a/Theorie/Threads/processus.rst +++ /dev/null @@ -1,646 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _processus: - - -Les processus -============= - -Un système d'exploitation multitâche et multi-utilisateurs tel que Unix ou Linux permet d'exécuter de nombreux programmes simultanément. Sous Unix, les programmes sont exécutés sous la forme de :term:`processus`. Un processus peut être défini comme étant une instance de programme qui est en train d'être exécutée sur un ou plusieurs processeurs sous le contrôle d'un système d'exploitation. Un processus comprend donc un ensemble d'instructions pour le processeur, mais aussi des données qui sont stockées en mémoire et un contexte (si le processus utilise un seul thread d'exécution, plusieurs contextes sinon). En outre, le système d'exploitation maintient un certain nombre de structures de données qui sont nécessaires au bon fonctionnement du processus. Ces structures de données sont créées au démarrage du processus, mises à jour durant la vie du processus et supprimées lorsque le processus se termine. - - -Les librairies --------------- - -Lorsqu'un programme s'exécute à l'intérieur d'un processus, il exécute des instructions qui ont différentes `origines`. Il y a bien entendu les instructions qui proviennent du code source du programme qui a été converti en assembleur par le compilateur. Ces instructions correspondent au code source développé par le programmeur. Il s'agit notamment de toutes les opérations mathématiques et logiques, les boucles et les appels de fonctions internes au programme. Comme nous l'avons vu précédemment, ces instructions peuvent provenir d'un seul module ou de plusieurs modules. Dans ce dernier cas, le linker intervient pour combiner différents modules en un exécutable complet. - -A côté des instructions qui correspondent aux lignes de code écrites par le développeur du programme, un processus va également exécuter de nombreuses fonctions qui font partie d'une des librairies standard du système. Tout environnement de développement comprend des librairies qui permettent de faciliter le travail des programmeurs en leur fournissant des fonctions permettant de résoudre de nombreux problèmes classiques. Un système d'exploitation tel que Unix ou Linux contient de nombreuses librairies de ce type. Nous avons déjà eu l'occasion de discuter des fonctions provenant de la librairie standard comme `printf(3)`_ ou `malloc(3)`_ et celles de la librairie `pthreads(7)`_. Ce ne sont que deux librairies parmi d'autres. Un système Linux contient plusieurs centaines de librairies utilisables par le programmeur. - -A titre d'exemple, considérons la librairie `math.h(7posix)`_. Cette librairie contient de nombreuses fonctions mathématiques. Pour les utiliser dans un programme, il faut non seulement y inclure le fichier header `math.h`_ qui contient les prototypes et constantes utilisées par la librairie, mais aussi indiquer au linker que l'exécutable doit être lié avec la librairie `math.h(7posix)`_. Cela se fait en utilisant le flag ``-l`` de `gcc(1)`_. - -.. literalinclude:: /Threads/S8-src/math.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Le programme :download:`/Threads/S8-src/math.c` ci-dessus doit être compilé en utilisant la commande ``gcc -Wall -Werror math.c -o math -lm``. Le paramètre ``-lm`` indique au compilateur qu'il doit charger la librairie ``m``. Cette librairie, est une des librairies standard du système, elle réside généralement dans le répertoire ``/usr/lib`` [#flib]_. En pratique, `gcc(1)`_ charge automatiquement la librairie ``C`` standard lors de la compilation de tout programme. Cela revient à utiliser implicitement le paramètre ``-lc``. - -Lors de l'utilisation de telles librairies, on s'attendrait à ce que toutes les instructions correspondant aux fonctions de la librairie utilisée soient présentes à l'intérieur de l'exécutable. En pratique, ce n'est pas exactement le cas. Même si notre programme d'exemple utilise `fmax(3)`_ de la librairie `math.h(7posix)`_ et `printf(3)`_ de la librairie standard, son exécutable ne contient que quelques milliers d'octets. - -.. code-block:: console - - $ ls -l math* - -rwxr-xr-x 1 obo stafinfo 6764 Mar 15 2012 math - -rw-r--r-- 1 obo stafinfo 373 Mar 15 2012 math.c - -Une analyse plus détaillée de l'exécutable avec `objdump(1)`_ révèle que si l'exécutable contient bien des appels à ces fonctions, leur code n'y est pas entièrement inclus. - -.. code-block:: console - - $gcc -g -lm math.c -o math - $objdump -S -d math - math: file format elf64-x86-64 - ... - 0000000000400468 <fmax@plt>: - 400468: ff 25 fa 04 20 00 jmpq *0x2004fa(%rip) # 600968 < - _GLOBAL_OFFSET_TABLE_+0x28> - 40046e: 68 02 00 00 00 pushq $0x2 - 400473: e9 c0 ff ff ff jmpq 400438 <_init+0x18> - ... - #include <stdio.h> - #include <stdlib.h> - #include <math.h> - int main (int argc, char *argv[]) { - 400564: 55 push %rbp - 400565: 48 89 e5 mov %rsp,%rbp - 400568: 48 83 ec 20 sub $0x20,%rsp - 40056c: 89 7d ec mov %edi,-0x14(%rbp) - 40056f: 48 89 75 e0 mov %rsi,-0x20(%rbp) - double n1=1.0; - 400573: 48 b8 00 00 00 00 00 mov $0x3ff0000000000000,%rax - 40057a: 00 f0 3f - 40057d: 48 89 45 f0 mov %rax,-0x10(%rbp) - double n2=-3.14; - 400581: 48 b8 1f 85 eb 51 b8 mov $0xc0091eb851eb851f,%rax - 400588: 1e 09 c0 - 40058b: 48 89 45 f8 mov %rax,-0x8(%rbp) - printf("Maximum : %f\n",fmax(n1,n2)); - 40058f: f2 0f 10 4d f8 movsd -0x8(%rbp),%xmm1 - 400594: f2 0f 10 45 f0 movsd -0x10(%rbp),%xmm0 - 400599: e8 ca fe ff ff callq 400468 <fmax@plt> - 40059e: b8 b8 06 40 00 mov $0x4006b8,%eax - 4005a3: 48 89 c7 mov %rax,%rdi - 4005a6: b8 01 00 00 00 mov $0x1,%eax - 4005ab: e8 98 fe ff ff callq 400448 <printf@plt> - return(EXIT_SUCCESS); - 4005b0: b8 00 00 00 00 mov $0x0,%eax - } - -La taille réduite des exécutables sous Linux et de nombreuses variantes de Unix s'explique par l'utilisation de librairies partagées. Un programme peut utiliser deux types de librairies : des librairies statiques et des librairies partagées. Une :term:`librairie statique` (ou :term:`static library` en anglais) est une librairie de fonctions qui est intégrée directement avec le programme. Elle fait entièrement partie de l'exécutable. C'est la première solution pour intégrer des librairies dans un programme. Son avantage principal est que l'exécutable est complet et comprend toutes les instructions qui sont nécessaires au fonctionnement du programme. Malheureusement, tous les programmes qui utilisent des fonctions d'une librairie courante, comme par exemple la librairie standard, doivent inclure le code relatif à toutes les fonctions qu'ils utilisent. Sachant que chaque programme ou presque utilise des fonctions comme `printf(3)`_, cela conduit à sauvegarder de très nombreuses copies du même code. Ce problème peut être résolu en utilisant des librairies partagées [#fdynamic]_ . Une :term:`librairie partagée` (ou :term:`shared library` en anglais) est un ensemble de fonctions qui peuvent être appelées par un programme mais sont stockées dans un seul fichier sur disque. Ce fichier unique est utilisé automatiquement par tous les programmes qui utilisent des fonctions de la librairie. - -Il est parfois intéressant de pouvoir créer une librairie qui peut être liée de façon statique avec des programmes, par exemple lorsque ceux-ci doivent être exécutés sur d'autres ordinateurs que ceux sur lesquels ils ont été compilés. A titre d'illustration, considérons une librairie minuscule contenant une seule fonction ``imax`` qui calcule le maximum entre deux entiers. L'implémentation de cette fonction est très simple. - -.. literalinclude:: /Threads/S8-src/imax.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Cette fonction est déclarée dans le fichier header ``imax.h`` et peut être utilisée dans un programme comme ci-dessous. - -.. literalinclude:: /Threads/S8-src/imath.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -En pratique, la construction d'une librairie se fait en deux étapes principales. Tout d'abord, il faut compiler les fichiers objet correspondant aux différents modules de la librairie. Cela peut se faire avec `gcc(1)`_ comme pour un programme C classique. Ensuite, il faut regrouper les différents modules dans une archive qui constituera la librairie qui peut être utilisée par des programmes. Par convention, toutes les librairies ont un nom qui commence par ``lib`` et se termine par l'extension ``.a``. Sous Linux, cette opération est réalisée par l'utilitaire `ar(1)`_. La page de manuel de `ar(1)`_ décrit plus en détails son utilisation. En pratique, les opérations les plus fréquentes avec `ar(1)`_ sont : - - - ajout d'un module objet à une librairie : ``ar r libname.a module.o`` - - suppression d'un module objet d'une librairie : ``ar d libname.a module.o`` - -Il est aussi possible de lister le contenu de la librairie ``libname.a`` avec la commande ``ar tv libname.a``. - -L'archive contenant la librairie peut être liée en utilisant le linker à n'importe quel programme qui en utilise une ou plusieurs fonctions. Le linker de `gcc(1)`_ peut effectuer cette opération comme illustré par le ``Makefile`` ci-dessous. Il faut noter que l'argument ``--static`` permet de forcer le compilateur à inclure le code de la librairie dans l'exécutable. - -.. literalinclude:: /Threads/S8-src/Makefile-lib - :encoding: utf-8 - :language: makefile - -Ce ``Makefile`` est un petit peu plus long que ceux que nous avons utilisés jusque maintenant. Il illustre une structure courante pour de nombreux fichiers ``Makefile``. La première partie définit des constantes qui sont utilisées dans le reste du ``Makefile``. Il s'agit tout d'abord du compilateur et du programme de construction de librairies qui sont utilisés. Définir ces programmes comme des constantes dans le ``Makefile`` permet de facilement en changer lorsque c'est nécessaire. Ensuite, trois constantes sont définies avec les arguments de base du compilateur et de ``ar``. A nouveau, définir ces constantes une fois pour toutes facilite leur modification. Ensuite, la première cible est la cible ``all:``. Comme c'est la première, c'est la cible par défaut qui sera utilisée lorsque `make(1)`_ est appelé sans argument. Elle dépend de l'exécutable ``imath`` qui est une des cibles du ``Makefile``. La cible ``clean:`` permet d'effacer les fichiers objet et exécutables construites par le ``Makefile``. Il est utile d'avoir une telle cible lorsque l'on doit diffuser un projet en C ou le rendre dans le cadre d'un cours. Enfin, les autres cibles correspondent aux fichiers objet, à la librairie et à l'exécutable qui sont construits. La commande ``@echo`` affiche ses arguments sur la sortie standard. Enfin, la chaîne de caractères ``$(GCC)`` est remplacée par le constante définie au début du fichier. Des compléments d'information sur `make(1)`_ peuvent être obtenus dans divers documents dont `make(1)`_, [Mecklenburg+2004]_ ou [GNUMake]_. - -Lorsqu'un programme est compilé de façon à utiliser une librairie dynamique, c'est le système d'exploitation qui analyse le programme lors de son chargement et intègre automatiquement les fonctions des librairies qui sont nécessaires à son exécution. L'entête de l'exécutable contient de l'information générée par le compilateur qui permet de localiser les librairies dynamiques qui doivent être intégrées de cette façon. L'utilitaire `ldd(1)`_ permet de visualiser quelles sont les librairies partagées utilisées par un programme. - -.. code-block:: console - - $ ldd imath - linux-vdso.so.1 => (0x00007fffe41ff000) - libc.so.6 => /lib64/libc.so.6 (0x0000003eb2400000) - /lib64/ld-linux-x86-64.so.2 (0x0000003eb2000000) - - -Appels Système ---------------- -.. index:: kernel - -Outre l'utilisation de fonctions de librairies, les programmes doivent interagir avec le système d'exploitation. Un système d'exploitation tel que Unix comprend à la fois des utilitaires comme `grep(1)`_, `ls(1)`_, ... qui sont directement exécutables depuis le shell et un noyau ou :term:`kernel` en anglais. Le :term:`kernel` contient les fonctions de base du système d'exploitation qui lui permettent à la fois d'interagir avec le matériel mais aussi de gérer les processus des utilisateurs. En pratique, le kernel peut être vu comme étant un programme spécial qui est toujours présent en mémoire. Parmi l'ensemble des fonctions contenues dans le :term:`kernel`, il y en a un petit nombre, typiquement de quelques dizaines à quelques centaines, qui sont utilisables par les processus lancés par les utilisateurs. Ce sont les appels système. Un :term:`appel système` est une fonction du :term:`kernel` qui peut être appelée par n'importe quel processus. Comme nous l'avons vu lorsque nous avons décrit le fonctionnement du langage d'assemblage, l'exécution d'une fonction dans un programme comprend plusieurs étapes : - - 1. Placer les arguments de la fonction à un endroit (la pile) où la fonction peut y accéder - 2. Sauvegarder sur la pile l'adresse de retour - 3. Modifier le registre ``%eip`` de façon à ce que la prochaine instruction à exécuter soit celle de la fonction à exécuter - 4. La fonction récupère ses arguments (sur la pile) et réalise son calcul - 5. La fonction sauve son résultat à un endroit (``%eax``) convenu avec la fonction appelante - 6. La fonction récupère l'adresse de retour sur la pile et modifie ``%eip`` de façon à retourner à la fonction appelante - -L'exécution d'un appel système comprend les mêmes étapes avec une différence importante c'est que le flux d'exécution des instructions doit passer du programme utilisateur au noyau du système d'exploitation. Pour comprendre le fonctionnement et l'exécution d'un appel système, il est utile d'analyser les six points mentionnés ci-dessus. - -Le premier problème à résoudre pour exécuter un appel système est de pouvoir placer les arguments de l'appel système dans un endroit auquel le :term:`kernel` pourra facilement accéder. Il existe de nombreux appels systèmes avec différents arguments. La liste complète des appels systèmes est reprise dans la page de manuel `syscalls(2)`_. La table ci-dessous illustre quelques appels systèmes et leurs arguments. - -============== ===================== -Appel système Arguments -============== ===================== -`getpid(2)`_ ``void`` -`fork(2)`_ ``void`` -`read(2)`_ ``int fildes, void *buf, size_t nbyte`` -`kill(2)`_ ``pid_t pid, int sig`` -`brk(2)`_ ``const void *addr`` -============== ===================== - -Sous Linux, les arguments d'un appel système sont placés par convention dans des registres. Sur [IA32]_, le premier argument est placé dans le registre ``%ebx``, le second dans ``%ecx``, ... Le :term:`kernel` peut donc facilement récupérer les arguments d'un appel système en lisant le contenu des registres. - -Le second problème à résoudre est celui de l'adresse de retour. Celle-ci est automatiquement sauvegardée lors de l'exécution de l'instruction qui fait appel au kernel, tout comme l'instruction ``calll`` sauvegarde directement l'adresse de retour d'une fonction appelée sur la pile. - -.. index:: mode utilisateur, mode protégé - -Le troisième problème à résoudre est de passer de l'exécution du processus utilisateur à l'exécution du :term:`kernel`. Les processeurs actuels peuvent fonctionner dans au minimum deux modes : le :term:`mode utilisateur` et le :term:`mode protégé`. Lorsque le processeur fonctionne en mode protégé, toutes les instructions du processeur et toutes les adresses mémoire sont utilisables. Lorsqu'il fonctionne en mode utilisateur, quelques instructions spécifiques de manipulation du matériel et certaines adresses mémoire ne sont pas utilisables. Cette division en deux modes de fonctionnement permet d'avoir une séparation claire entre le système d'exploitation et les processus lancés par les utilisateurs. Le noyau du système d'exploitation s'exécute en mode protégé et peut donc utiliser entièrement le processeur et les dispositifs matériels de l'ordinateur. Les processus utilisateurs par contre s'exécutent en mode utilisateur. Ils ne peuvent donc pas directement exécuter les instructions permettant une interaction avec des dispositifs matériel. Cette interaction doit passer par le noyau du système d'exploitation qui sert de médiateur et vérifie la validité des demandes faites par un processus utilisateur. - -.. index:: init - -Les transitions entre les modes protégé et utilisateur sont importantes car elles rythment le fonctionnement du système d'exploitation. Lorsque l'ordinateur démarre, le processeur est placé en mode protégé et le :term:`kernel` se charge. Il initialise différentes structures de données et lance `init(8)`_ le premier processus du système. Dès que `init(8)`_ a été lancé, le processeur passe en mode utilisateur et exécute les instructions de ce processus. Après cette phase de démarrage, les instructions du :term:`kernel` seront exécutées lorsque soit une interruption matérielle surviendra ou qu'un processus utilisateur exécutera un appel système. L'interruption matérielle place automatiquement le processeur en mode protégé et le :term:`kernel` exécute la routine de traitement d'interruption correspondant à l'interruption qui est apparue. Un appel système démarre par l'exécution d'une instruction spéciale (parfois appelée interruption logicielle) qui place le processeur en mode protégé et puis démarre l'exécution d'une instruction placée à une adresse spéciale en mémoire. Sur certains processeurs de la famille [IA32]_, l'instruction ``int 0x80`` permet ce passage du mode utilisateur au mode protégé. Sur d'autres processeurs, c'est l'instruction ``syscall`` qui joue ce rôle. L'exécution de cette instruction est la seule possibilité pour un programme d'exécuter des instructions du :term:`kernel`. En pratique, cette instruction fait passer le processeur en mode protégé et démarre l'exécution d'une routine du :term:`kernel`. Cette routine commence par sauvegarder le contexte du processus qui exécute l'appel système demandé. Chaque appel système est identifié par un nombre entier et le :term:`kernel` contient une table avec pour chaque appel système l'adresse de la fonction à exécuter pour cet appel système. En pratique, le numéro de l'appel système à exécuter est placé par le processus appelant dans le registre ``%eax``. - -L'appel système peut donc s'exécuter en utilisant les arguments qui se trouvent dans les différents registres. Lorsque l'appel système se termine, le résultat est placé dans le registre ``%eax`` et une instruction spéciale permet de retourner en mode utilisateur et d'exécuter dans le processus appelant l'instruction qui suit celle qui a provoqué l'exécution de l'appel système. Si l'appel système a échoué, le :term:`kernel` doit aussi mettre à jour le contenu de ``errno`` avant de retourner au processus appelant. - -Ces opérations sont importantes pour comprendre le fonctionnement d'un système informatique et la différence entre un appel système et une fonction de la librairie. En pratique, la librairie cache cette complexité au programmeur en lui permettant d'utiliser des fonctions de plus haut niveau [#fsyscall]_ . Cependant, il faut être conscient que ces fonctions s'appuient elles-même sur des appels systèmes pour s'exécuter. Ainsi par exemple, la fonction `printf(3)`_ utilise l'appel système `write(2)`_ pour écrire sur la sortie standard. La commande `strace(1)`_ permet de tracer l'ensemble des appels systèmes faits par un processus. A titre d'exemple, voici les appels systèmes effectués par le programme ``imath`` présenté plus haut. - -.. code-block:: console - - $ strace ./imath - execve("./imath", ["./imath"], [/* 34 vars */]) = 0 - uname({sys="Linux", node="baluran.info.ucl.ac.be", ...}) = 0 - brk(0) = 0xa31000 - brk(0xa32180) = 0xa32180 - arch_prctl(ARCH_SET_FS, 0xa31860) = 0 - brk(0xa53180) = 0xa53180 - brk(0xa54000) = 0xa54000 - fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 - mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1f8fd44000 - write(1, "Maximum : 1\n", 12Maximum : 1 - ) = 12 - exit_group(0) = ? - - -.. Ces opérations sont réalisées en utilisant des appels systèmes. Lors de son exécution un programme exécute non seulement des instructions qui ont été compilées sur base du code source du programme, mais aussi des fonctions faisant partie d'une des librairies standard du système. Certaines librairies contiennent des fonctions indépendantes, comme la librairie mathématique, d'autres font appel au système d'exploitation directement ou indirectement. font partie du programme, ce sont les peut faire appels à trois petits de fonctions prin Dans les chapitres précédents, nous avons développé des programmes qui d'abord utilisaient des fonctions faisant partie Jusque maintenant, nous - - -.. index:: fork - -Création d'un processus ------------------------ - -Pour comprendre le fonctionnement de Unix, il est utile d'analyser plus en détails toutes les opérations qui sont effectuées à chaque fois que l'on lance un programme depuis un shell tel que `bash(1)`_. Considérons l'exécution de la commande ``/bin/true`` depuis le shell. - -Schématiquement, l'exécution de ce programme se déroule comme suit. Le shell va d'abord localiser [#fpath]_ l'exécutable ``/bin/true`` qui est stocké dans le système de fichiers. Ensuite, il va créer un processus et y exécuter l'exécutable. Le shell va ensuite attendre la fin de l'exécution du programme ``true`` et récupérer sa valeur de retour (retournée par `exit(2)`_) pour ensuite poursuivre son exécution. - - -.. todo:: figure à ajouter plus tard pour illustrer ce fonctionnement - -Comme nous l'avons expliqué plus haut, le :term:`kernel` Linux gère l'ensemble des processus qui sont utilisés à un moment. Il intervient pour toutes les opérations de création et de fin d'un processus. La création d'un processus est un événément important dans un système d'exploitation. Elle permet notamment l'exécution de programmes. Ces opérations nécessitent une interaction avec le :term:`kernel` et se font donc en utilisant des appels systèmes. Avant d'analyser en détails comment Linux supporte précisément la création de processus, il est intéressant de réfléchir aux opérations qui doivent être effectuées lors de l'exécution d'un programme. Considérons par exemple un utilisateur qui exécute la commande ``/usr/bin/expr 1 + 2`` depuis un shell `bash(1)`_ interactif. Pour exécuter cette commande, il va falloir exécuter un nouveau processus contenant les instructions assembleur se trouvant dans l'exécutable ``/usr/bin/expr``, lui passer les arguments ``1 + 2``, l'exécuter, récupérer sa valeur de retour et la retourner au shell qui pourra l'utiliser et poursuivre son exécution. - -.. index:: processus père, processus fils - -Les designers de Unix ont choisi de construire un appel système pour chacune de ces opérations. Le premier est l'appel système `fork(2)`_. C'est l'appel système qui permet de créer un processus. Schématiquement, cet appel système crée une copie complète du processus qui l'a exécuté. Après exécution de `fork(2)`_, il y a deux copies du même processus en mémoire. Le processus qui a exécuté `fork(2)`_ est considéré comme étant le :term:`processus père` tandis que celui qui a été créé par l'exécution de `fork(2)`_ est le :term:`processus fils`. - -.. code-block:: c - - #include <unistd.h> - - pid_t fork(void); - - -L'appel système `fork(2)`_ est atypique car il est exécuté par un processus mais provoque la création d'un second processus qui est identique au premier. Après l'exécution de l'appel système `fork(2)`_, il y a donc deux séquences d'instructions qui vont s'exécuter, l'une dans le processus père et l'autre dans le processus fils. Le processus fils démarre son exécution à la récupération du résultat de l'appel système `fork(2)`_ effectué par son père. Le processus père et le processus fils récupèrent une valeur de retour différente pour cet appel système. Cette valeur de retour est d'ailleurs la seule façon de distinguer le :term:`processus père` du :term:`processus fils` lorsque celui-ci démarre. - - - l'appel système `fork(2)`_ retourne la valeur ``-1`` en cas d'erreur et met à jour la variable ``errno``. En cas d'erreur, aucun processus n'est créé. - - l'appel système `fork(2)`_ retourne la valeur ``0`` dans le processus fils. - - l'appel système `fork(2)`_ retourne une valeur positive dans le processus père. Cette valeur est l'identifiant du processus fils créé. - -Pour bien comprendre le fonctionnement de `fork(2)`_, analysons l'exemple :download:`/Threads/S8-src/fork.c` ci-dessous : - -.. literalinclude:: /Threads/S8-src/fork.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lors de son exécution, ce programme affiche les deux lignes suivantes sur sa sortie standard : - -.. literalinclude:: /Threads/S8-src/fork.out - :encoding: utf-8 - :language: console - -Lors de l'exécution de ce programme, deux variables sont initialisées en mémoire. La variable globale ``g`` est initialisée à la valeur ``0`` tandis que le variable locale ``l`` est initialisée à la valeur ``1252``. `malloc(3)`_ est utilisé pour réserver une zone mémoire sur le :term:`heap` et son contenu est initialisé à ``-1``. Lorsque le processus père fait appel à `fork(2)`_ le noyau du système d'exploitation crée une copie identique à celui-ci en mémoire. Cette copie contient tous les segments du processus père (code, données, heap et stack) dans l'état exact dans lequel ils étaient au moment de l'exécution de l'appel système `fork(2)`_. Le contexte du processus père est copié et devient le contexte du processus fils. A cet instant, les deux processus sont complètement identiques à l'exception de certaines données qui sont maintenues par le système d'exploitation, comme l'identifiant de processus. Chaque processus qui s'exécute sur un système Unix a un identifiant unique et est retourné par l'appel système `getpid(2)`_. Le processus père et le processus fils ont un identifiant différent. - -Les deux processus vont se différencier dès la fin de l'exécution de l'appel système `fork(2)`_. Comme tout appel système, `fork(2)`_ place sa valeur de retour dans le registre ``%eax``. Comme indiqué plus haut, cette valeur sera positive dans le processus père. Celui-ci exécute ``sleep(2);`` et reste donc bloqué pendant deux secondes avant d'afficher un message sur sa sortie standard. Le processus fils de son côté incrémente les variables ``l`` et ``g`` et modifie la zone mémoire pointée par ``*m`` puis affiche leur contenu sur sa sortie standard puis se termine. - -L'exécution de ce programme illustre bien que le processus fils démarre avec une copie du processus père lorsque l'appel système `fork(2)`_ se termine. Le processus fils peut modifier les variables qui ont été initialisées par le processus mais ces modifications n'ont aucun impact sur les variables utilisées dans le processus père. Même si le processus père et le processus fils sont identiques au moment de la création du processus fils, ils sont complètement indépendants par après. C'est une différence importante avec les threads. Contrairement à ce qu'il se passe avec les threads, un processus père et un processus fils ne partagent ni le segment de données, ni le heap ni le stack. Ces zones mémoires ne peuvent pas être utilisées directement pour permettre à un processus père de communiquer avec son fils. - - -.. note:: Quel est le processus qui s'exécute en premier après `fork(2)`_ ? - - Après l'exécution de l'appel système `fork(2)`_ et la création du processus fils, le :term:`kernel` se trouve face à deux processus qui sont dans l'état `Ready`. Si il y a deux processeurs libres, le :term:`kernel` pourra les démarrer quasi simultanément. Par contre, si un seul processeur est disponible, le :term:`kernel` devra exécuter l'un des deux processus en premier. En pratique, rien ne permet de contrôler si le :term:`kernel` commencera d'abord l'exécution du processus père ou l'exécution du processus fils. Tout programme utilisant `fork(2)`_ doit pouvoir fonctionner correctement quel que soit l'ordre d'exécution des processus père et fils. - -Le :term:`kernel` gère les processus et attribue un identifiant à chaque processus. Le type ``pid_t`` est utilisé pour les identifiants de processus sous Unix. Ce type correspond à un nombre entier généralement non-signé. Le nombre maximum de processus qui peuvent être lancés sur un système Linux est un des paramètres fixés à la compilation ou au démarrage du kernel. L'appel système `getpid(2)`_ retourne l'identifiant du processus courant tandis que l'appel système `getppid(2)`_ retourne l'identifiant du processus père. - -.. literalinclude:: /Threads/S8-src/getpid.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Après l'exécution de `fork(2)`_ le processus père et le processus fils ont un identifiant de processus différent mais ils partagent certaines ressources qui sont gérées par le :term:`kernel`. C'est le cas notamment des flux standard :term:`stdin`, :term:`stdout` et :term:`stderr`. Lorsque le :term:`kernel` crée un processus fils, il conserve la même sortie standard que le processus père. C'est ce qui nous permet de visualiser le résultat de l'exemple précédent. Cependant, le processus père et le processus fils sont en concurrence pour écrire sur la sortie standard. Si aucune précaution n'est prise, ces deux processus risquent d'écrire de façon désordonnée sur la sortie standard. - -Pour mieux comprendre le problème, analysons l'exécution du programme ci-dessous. Il crée un processus fils puis le père et le fils écrivent sur :term:`stdout`. - -.. literalinclude:: /Threads/S8-src/fork-buf.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Lors de son exécution, il affiche les lignes suivantes sur :term:`stdout`. - -.. code-block:: console - - $ ./fork-buf - Processus : 852 - Processus : 853 - PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP - ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff - -A première vue, on pourrait penser qu'il n'y a pas de problèmes d'accès concurrents à :term:`stdout` puisque la sortie produite par ce programme semble claire. Cependant, la fonction ``output`` utilisée par le père et le fils pour afficher les caractères ``P`` et ``f`` devrait permettre aux deux processus d'afficher des caractères ``P`` et ``f`` avec une certaine alternance. Il n'en est rien et la sortie standard semble indiquer que le processus père a affiché tous les caractères ``P`` simultanément. Ce n'est pas possible si l'on regarde le code source de la fonction ``output``. - -L'utilitaire `strace(1)`_ qui permet de tracer tous les appels systèmes effectués par un processus nous permet d'analyser comment le processus père et le processus fils écrivent sur :term:`stdout`. Lorsqu'ils utilisent les fonctions `printf(3)`_ et `putchar(3)`_ de la librairie standard, ils utilisent des fonctions qui finalement utilisent l'appel système `write(2)`_ qui est le seul permettant d'écrire sur un flux tel que :term:`stdout`. L'exécution de `strace(1)`_ montre que chaque processus effectue deux appels systèmes `write(2)`_. Le premier correspond à l'appel à `printf(3)`_ et le second à tous les appels à `putchar(3)`_ fait par le processus. - -.. code-block:: console - - strace -f -e trace=write ./fork-buf - Process 1398 attached - [pid 1398] write(1, "Processus : 1398\n", 17 <unfinished ...> - [pid 1397] write(1, "Processus : 1397\n", 17Processus : 1397 - ) = 17 - Processus : 1398 - [pid 1398] <... write resumed> ) = 17 - [pid 1398] write(1, "ffffffffffffffffffffffffffffffff"..., 60ffffffffff ffffffffffffffffffffffffffffffffffffffffffffffffff) = 60 - Process 1398 detached - --- SIGCHLD (Child exited) @ 0 (0) --- - write(1, "PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP"..., 61PPPPPPPPPPPPPPPPPPPPPP PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP - ) = 61 - -L'exécution d'un appel système tel que `write(2)`_ peut être couteux au niveau des performances. Une règle de bonne pratique est d'essayer de minimiser le nombre d'appels systèmes effectués par un programme. La librairie standard prend en compte cette règle et utilise un buffer dans lequel elle stocke temporairement les données produites par les fonctions telles que `printf(3)`_ ou `putchar(3)`_ avant de les écrire via `write(2)`_. Ce buffer peut être contrôlé via les fonctions `setvbuf(3)`_ et `setbuf(3)`_. Ces fonctions permettent de fixer la taille du buffer utilisé par la librairie standard. - -Lorsque le buffer de la librairie `stdio(3)`_ est désactivé en faisant ``setbuf(stdout,NULL);``, le processus père et le processus fils écrivent bien de façon entrelacée sur la sortie standard. - -.. code-block:: console - - $ ./fork-buf 1 - Processus : 1419 - PProcessus : 1420 - fffPffPffPffPfPfffPPfPPPfPfffPfPfPPfffPfPffPPfPPPPfPPfPPfPfPPfPfPffPfPfPffffPPfPPffPffPPfPfPfPPfPfPfPfPfPPffPPfffPfPPPP - -L'utilisation de `strace(1)` lors de cette exécution montre effectivement que chaque appel à la fonction `putchar(3)`_ provoque une exécution de l'appel système `write(2)`_ : - -.. code-block:: console - - [pid 1420] write(1, "f", 1f) = 1 - [pid 1419] write(1, "P", 1P) = 1 - [pid 1419] write(1, "P", 1P) = 1 - [pid 1420] write(1, "f", 1f) = 1 - - -.. note:: Faut-il modifier le buffer de la librairie `stdio(3)`_ ? - - En pratique, il est préférable de ne pas désactiver le buffer utilisé par la librairie `stdio(3)`_ car cela peut avoir des conséquences négatives sur les performances des programmes. Par contre, lorsque l'on développe des programmes qui utilisent plusieurs processus il est important de se souvenir de l'existence de ce buffer car il peut expliquer certains comportements qui pourraient apparaître comme étant bizarres lorsque l'on observe l'exécution de processus via les messages qu'ils affichent sur :term:`stderr` ou :term:`stdout`. Lorsque l'on soupçonne un comportement bizarre qui pourrait être expliqué par des interactions avec ce buffer, il est possible d'ajouter dans le programme des appels explicites à la fonction `fflush(3)`_ qui a pour effet de vider immédiatement le buffer de `stdio(3)`_. - - -.. note:: Génération de nombres aléatoires - - Le programme :download:`/Threads/S8-src/fork-buf.c` présenté ci-dessus est un exemple d'utilisation de nombres aléatoires. Ceux-ci sont générés avec la fonction `rand(3)`_ de la librairie standard. Cette fonction utilise un générateur de nombres aléatoires qui génère toujours la même séquence de nombres aléatoires lorsqu'elle est initialisée avec la même semence par la fonction `srand(3)`_. Souvent, les programmeurs qui utilisent des nombres aléatoires cherchent à ce que la séquence générée diffère d'une exécution du programme à l'autre. Une façon simple de procéder est d'utiliser comme semence la somme entre le temps courant retourné par `time(3posix)`_ et l'identifiant du processus obtenu via `getpid(2)`_. Une telle semence n'est cependant pas suffisante pour toutes les applications. Certaines applications cryptographiques notamment nécessitent des nombres aléatoires qui ne peuvent pas être facilement prédits. Pour ces applications, il est nécessaire d'utiliser des semences qui sont parfaitement aléatoires, comme `random(4)`_. - -.. index:: atexit, exit, wait, waitpid - -Fin d'un processus ------------------- - -Il y a deux événements importants dans la vie d'un processus sous Unix. Sa création avec l'appel système `fork(2)`_ et sa terminaison. Nous avons déjà vu qu'un programme C (et donc un processus) pouvait se terminer de deux façons principales [#fthread]_ : - - - par l'exécution de ``return(...)`` dans la fonction ``main`` - - par un appel explicite à la fonction `exit(3)`_ dans la fonction ``main`` ou n'importe quelle fonction du processus - -Ces fonctions appellent en fait la fonction de la librairie `exit(3)`_. Cette fonction permet de faire plus que simplement terminer le processus en cours d'exécution et retourner sa valeur de retour. Il est en effet possible d'associer une ou plusieurs fonctions de terminaison à `exit(3)`_ via la fonction `atexit(3)`_. Lorsque `exit(3)`_ est appelée, elle lance d'abord les fonctions enregistrées par `atexit(3)`_ puis termine correctement le processus. Ces fonctions de terminaison d'un processus sont utilisées lorsque par exemple un processus utilise des services particuliers du système d'exploitation comme par exemple une mémoire partagée entre plusieurs processus. Ces services consomment des ressources et il est nécessaire de les libérer correctement lorsqu'un processus se termine comme nous le verrons ultérieurement. - -L'exemple ci-dessous illustre brièvement l'utilisation de `atexit(3)`_. - -.. literalinclude:: /Threads/S8-src/atexit.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -.. index:: _exit - -Après avoir exécuté les fonctions de terminaison, la fonction `exit(3)`_ appelle `fflush(3)`_ sur tous les flux existants puis les ferme proprement. Ensuite, la fonction `exit(3)`_ exécute l'appel système `exit(2)`_. Cet appel système est particulier. C'est le seul appel système qui n'a pas de valeur de retour, et pour cause ! Il ferme tous les fichiers qui étaient encore ouverts (normalement un processus devrait fermer proprement tous ses fichiers avant de s'arrêter) et libère les ressources qui étaient associées au processus. - -.. code-block:: c - - #include <unistd.h> - - void _exit(int status); - -L'appel système `exit(2)`_ permet au processus qui se termine de retourner un statut à son processus père. Pour récupérer le statut de son fils, un processus père doit utiliser l'appel système `waitpid(2)`_. - - -.. code-block:: c - - #include <sys/types.h> - #include <sys/wait.h> - - pid_t waitpid(pid_t pid, int *status, int options); - -L'appel système `waitpid(2)`_ prend trois arguments. C'est un appel système bloquant. Le premier argument permet de spécifier quel est le processus fils dont la terminaison est attendue. Un premier argument négatif indique que `waitpid(2)`_ attend la terminaison de n'importe quel processus fils. Si le premier argument est positif, alors il contient un identifiant de processus fils et `waitpid(2)`_ attendra la terminaison de ce processus [#fwaitpid]_. Le second argument est un pointeur vers un entier qui après le retour de `waitpid(2)`_ contiendra le statut retourné par le processus fils. Le troisième argument permet de spécifier des options à `waitpid(2)`_ que nous n'utiliserons pas. La fonction `wait(2)`_ est une simplification de `waitpid(2)`_ qui permet d'attendre n'importe quel processus fils. ``wait(p)`` est en pratique équivalent à ``waitpid(-1,p,0)``. - -Un processus qui lance un processus fils avec `fork(2)`_ *doit* attendre la terminaison de son processus fils en utilisant `waitpid(2)`_. Le programme ci-dessous illustre l'utilisation de `waitpid(2)`_. - -.. literalinclude:: /Threads/S8-src/fork-wait.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Dans ce programme, le processus père récupère la valeur retournée par le fils qu'il a créé. Lors de l'exécution de ``waitpid(pid,&status,0);``, la valeur de retour du fils est placée dans l'entier dont l'adresse est ``status``. Cet entier contient non-seulement la valeur de retour du processus fils (dans les 8 bits de poids faible), mais aussi une information permettant de déterminer si le processus fils s'est terminé correctement ou a été terminé de façon abrupte via l'utilisation de `kill(1)`_. Les macros ``WEXITSTATUS`` et ``WTERMSIG`` utilisées pour extraire la valeur de retour et la raison de la terminaison abrupte sont décrites dans `waitpid(2)`_. - -Même si un processus *doit* attendre la terminaison de tout processus fils qu'il a lancé, il arrive parfois qu'un processus n'attende pas ses fils. Cela peut arriver lorsqu'un processus s'arrête suite à une erreur avant de pouvoir récupérer ses fils. Ce cas est illustré par l'exemple ci-dessous dans lequel le processus père se termine sans attendre son fils. - -.. literalinclude:: /Threads/S8-src/fork-orphan.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -Du point de vue du :term:`kernel` cette situation est ennuyeuse car il maintient pour chaque processus non seulement son identifiant de processus mais également l'identifiant de son processus père qui est retourné par `getpid(2)`_. Lorsque le père se termine avant son fils, le processus fils est dit `orphelin` et le kernel modifie ses structures de données pour que le père de ce :term:`processus orphelin` soit le processus dont l'identifiant est ``1``. Ce processus est le processus `init(8)`_ qui est lancé au démarrage du système et n'est jamais arrêté. - -.. literalinclude:: /Threads/S8-src/fork-orphan.out - :encoding: utf-8 - :language: console - -A côté des processus orphelins dont nous venons de parler, un système Unix peut également héberger des :term:`processus zombie`. Un :term:`processus zombie` est un processus qui s'est terminé mais dont la valeur de retour n'a pas encore été récupérée par son père. Dans ce cas, le :term:`kernel` libère l'ensemble des ressources associées au processus fils et ne conserve de ce processus qu'une petite structure de données contenant notamment son identifiant, l'identifiant de son processus père et sa valeur de retour. En pratique, il est préférable d'éviter les processus zombie car ils consomment quand même un peu de ressources. - -.. index:: execve - -Exécution d'un programme ------------------------- - -`fork(2)`_ et `waitpid(2)`_ permettent respectivement de créer et de terminer des processus. Pour comprendre la façon dont les programmes sont exécutés, il nous reste à expliquer le fonctionnement de l'appel système `execve(2)`_. Cet appel système permet l'exécution d'un programme. Lors de son exécution, l'image en mémoire du processus qui effectue `execve(2)`_ est remplacée par l'image de l'exécutable passé en argument à `execve(2)`_ et son exécution démarre à sa fonction ``main``. - -.. code-block:: c - - #include <unistd.h> - - int execve(const char *path, char *const argv[], char *const envp[]); - -`execve(2)`_ prend trois arguments. Le premier est le nom complet du fichier exécutable qui doit être lancé. Le second est un pointeur vers un tableau de chaines de caractères contenant les arguments à passer à l'exécutable. Le troisième est un pointeur vers l'environnement qui sera nécessaire à l'exécution du programme. Comme `execve(2)`_ remplace l'image mémoire du programme en cours d'exécution, il ne retourne une valeur de retour que si l'appel système échoue. Cela peut être le cas si son premier argument n'est pas un fichier exécutable accessible par exemple. - -`execve(2)`_ s'utilise souvent juste après l'exécution de `fork(2)`_, mais il est aussi possible de l'utiliser directement dans un programme. Dans ce cas, le programme qui exécute avec succès `execve(2)`_ disparaît et est remplacé par le programme appelé. Le programme ci-dessous illustre une utilisation simple de `execve(2)`_. - -.. literalinclude:: /Threads/S8-src/execve.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Lors de son exécution, ce programme affiche sur sa sortie standard les lignes suivantes : - -.. literalinclude:: /Threads/S8-src/execve.out - :encoding: utf-8 - :language: console - -Il y a quelques points importants à noter concernant l'utilisation de `execve(2)`_. Tout d'abord, `execve(2)`_ remplace l'entièreté de l'image mémoire du processus qui exécute cet appel système, y compris les arguments, les variables d'environnement. Par contre, le :term:`kernel` conserve certaines informations qu'il maintenait pour le processus. C'est le cas notamment de l'identifiant du processus et de l'identifiant du processus père. Si le processus qui a effectué `execve(2)`_ avait lancé des threads, ceux-ci seraient immédiatement supprimés puisque l'image du processus en cours d'exécution est remplacé lors de l'exécution de `execve(2)`_. Les flux standard (:term:`stdin`, :term:`stdout` et :term:`stderr`) sont utilisables par le programme exécuté via `execve(2)`_. Il faut cependant noter que lors de l'appel à `execve(2)`_, les données qui se trouveraient éventuellement dans le buffer de la librairie :term:`stdio` ne sont pas automatiquement envoyées vers leurs flux respectifs. Cela pourrait paraître étonnant puisque lorsqu'un processus se termine avec `exit(3)`_, `exit(3)`_ vide les buffers de :term:`stdio` avant d'appeler `exit(2)`_. `execve(2)`_ est un appel système qui est exécuté par le kernel. Celui-ci ne peut pas savoir si il y a des données en attente d'écriture dans :term:`stdio`. Il ne peut donc pas automatiquement vider les buffers maintenus par la librairie :term:`stdio`. Si des données ont été écrites avec `printf(3)`_ avant l'exécution de `execve(2)`_, il est préférable de forcer leur écriture via `fflush(3)`_ avant d'appeler `execve(2)`_. - -L'appel système `execve(2)`_ est très souvent exécuté dans un shell tel que `bash(1)`_. Lorsqu'un shell lance un programme externe, il doit d'abord utiliser `fork(2)`_ pour créer une copie de lui-même. Ensuite, le processus père se met en attente via `waitpid(2)`_ de la valeur de retour du processus fils créé. Le processus fils quant à lui utilise `execve(2)`_ pour exécuter le programme demandé. - -La programme ci-dessous est un exemple un peu plus complexe de l'utilisation de `fork(2)`_, `execve(2)`_ et `waitpid(2)`_. Ce programme prend comme argument une liste d'exécutables et il essaye de les exécuter l'un à la suite de l'autre. Pour cela, il parcourt ses arguments et essaye pour chaque argument de créer un processus fils et d'y exécuter le programme correspondant. Si le programme a pu être exécuté, sa valeur de retour est récupérée par le processus père. Si l'appel à `execve(2)`_ a échoué, le processus fils se termine avec ``127`` comme valeur de retour. Comme celle-ci est stockée sur 8 bits, c'est la plus grande valeur de retour positive qu'il est possible de retourner depuis un processus fils. Cette valeur indique au processus père que le fils n'a pas réussi à exécuter `execve(2)`_. - -.. literalinclude:: /Threads/S8-src/fork-manyexec.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - - -Lors de son exécution, ce programme affiche sur sa sortie standard les lignes suivantes : - -.. literalinclude:: /Threads/S8-src/fork-manyexec.out - :encoding: utf-8 - :language: console - -En pratique, il existe plusieurs fonctions de la librairie standard qui apportent de petites variations à `execve(2)`_. Il s'agit de `execl(3)`_, `execlp(3)`_, `execle(3)`_, `execv(3posix)`_ et `execv(3)`_. Ces fonctions utilisent toutes l'appel système `execve(2)`_. Elles permettent de spécifier de différentes façons le programme à exécuter ou les variables d'environnement. Enfin, la fonction `system(3)`_ de la librairie permet d'exécuter une commande du shell directement depuis un programme. - -Outre les exécutables compilés, Unix et Linux supportent également l'exécution de programmes interprétés. Contrairement aux programmes compilés que nous avons manipulé jusque maintenant, un programme interprété est un programme écrit dans un langage qui doit être utilisé via un :term:`interpréteur`. Un :term:`interpréteur` est un programme qui lit des commandes sous la forme de texte et exécute directement les instructions correspondant à ces commandes. Unix supporte de nombreux interpréteurs et comme nous allons le voir il est très facile de rajouter de nouveaux interpréteurs de commande. L'interpréteur le plus connu est `bash(1)`_ et ses nombreuses variantes. En voici quelques autres : - - - `awk(1)`_ est un langage de programmation interprété qui permet de facilement manipuler des textes - - `perl(1)`_ est un langage de programmation complet qui a été initialement développé pour la manipulation de textes, mais est utilisé dans de nombreuses autres applications - - `python(1)`_ est un langage de programmation complet - -Pour comprendre la façon dont Unix interagit avec les interpréteurs de commande, il est bon de voir en détails comment `execve(2)`_ reconnaît qu'un fichier contient un programme qui peut être exécuté. Tout d'abord, le système de fichiers contient pour chaque fichier des métadonnées qui fournissent de l'information sur le possesseur du fichier, sa date de création, ... Une de ces métadonnées est un bit [#fchmod]_ qui indique si le fichier est exécutable ou non. Ce bit peut être manipulé en utilisant la commande `chmod(1)`_. Lorsqu'un programme est compilé avec `gcc(1)`_, celui-ci utilise `chmod(1)`_ pour marquer le programme comme étant exécutable. - -.. code-block:: console - - $ ls -l a.out - -rwxr-xr-x 1 obo stafinfo 8178 Mar 16 13:42 a.out - $ chmod -x a.out - $ ./a.out - -bash: ./a.out: Permission denied - $ chmod +x a.out - $ ./a.out - exécution de a.out - $ ls -l a.out - -rwxr-xr-x 1 obo stafinfo 8178 Mar 16 13:42 a.out - - -Lorsqu'`execve(2)`_ est appelé, il vérifie d'abord ce bit de permission. Si il n'indique pas que le programme est exécutable, `execve(2)`_ retourne une erreur. Ensuite, `execve(2)`_ ouvre le fichier dont le nom a été passé comme premier argument. Par convention, le début du fichier contient une séquence d'octets ou de caractères qui indiquent le type de fichier dont il s'agit. La commande `file(1)`_ permet de tester le type d'un fichier inconnu. - -.. code-block:: console - - $ file fork-execve.c - fork-execve.c: UTF-8 C program text - $ file script.sh - script.sh: Bourne-Again shell script text executable - $ file a.out - a.out: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped - -Pour les exécutables, deux cas de figure sont possibles: - - 1. le fichier contient un programme compilé et directement exécutable. Sur les systèmes Linux actuels, ce fichier sera au format `elf(5)`_. Il débute par une entête qui contient une chaîne de caractères utilisée comme marqueur ou chaîne magique. L'entête fournit de l'information sur le type d'exécutable et sa structure. Voici à titre d'illustration le contenu de l'entête d'un programme compilé décortiqué par l'utilitaire `readelf(1)`_ : - - .. code-block:: console - - $ readelf -h a.out - ELF Header: - Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00 - Class: ELF64 - Data: 2's complement, little endian - Version: 1 (current) - OS/ABI: UNIX - Linux - ABI Version: 0 - Type: EXEC (Executable file) - Machine: Advanced Micro Devices X86-64 - Version: 0x1 - Entry point address: 0x4006e0 - Start of program headers: 64 (bytes into file) - Start of section headers: 3712 (bytes into file) - Flags: 0x0 - Size of this header: 64 (bytes) - Size of program headers: 56 (bytes) - Number of program headers: 8 - Size of section headers: 64 (bytes) - Number of section headers: 30 - Section header string table index: 27 - - 2. Le fichier contient un programme en langage interprété. Dans ce cas, la première ligne débute par ``#!`` suivi du nom complet de l'interpréteur à utiliser et de ses paramètres éventuels. Le programme interprété commence sur la deuxième ligne. A titre d'exemple, voici un petit script `bash(1)`_ qui permet de tester si un fichier est interprétable ou non en testant la valeur des deux premiers caractères du fichier et ses métadonnées. - - .. literalinclude:: /Threads/S8-src/script.sh - :encoding: utf-8 - :language: bash - - -Sous Unix et Linux, n'importe quel programmeur peut définir son propre interpréteur. Il suffit qu'il s'agisse d'un exécutable compilé et que le nom de cet interpréteur soit présent dans la première ligne du fichier à interpréter. Lors de l'exécution d'un programme utilisant cet interpréteur, celui-ci recevra le contenu du fichier et pourra l'interpréter. Ainsi, par exemple le programme interprété ci-dessous est tout à fait valide. - -.. literalinclude:: /Threads/S8-src/test.tail - :encoding: utf-8 - :language: bash - -Lors de son exécution via `execve(2)`_, l'interpréteur `tail(1)`_ va être chargé avec comme arguments ``-n +1`` et il affichera sur :term:`stdout` la ligne ``SINF1252``. - -Cette facilité d'ajouter de nouveaux interpréteurs de commande est une des forces des systèmes d'exploitation de la famille Unix. - -.. index:: table des processus - -Table des processus -------------------- - -Un système d'exploitation tel que Linux maintient certaines informations concernant chaque processus dans sa :term:`table des processus`. Une description complète du contenu de cette table des processus sort du cadre de ce chapitre. Par contre, il est intéressant de noter que sous Linux il existe de nombreux utilitaires qui permettent de consulter le contenu de la table des processus et notamment : - - - `ps(1)`_ qui est l'utilitaire de base pour accéder à la table de processus et lister les processus en cours d'exécution - - `top(1)`_ qui affiche de façon interactive les processus qui consomment actuellement du temps CPU, de la mémoire, ... - - `pstree(1)`_ qui affiche l'arbre des processus avec les relations père-fils - -Tous ces utilitaires utilisent les informations contenues dans le répertoire ``/proc``. Il s'agit d'un répertoire spécial qui contient de l'information à propos du système d'exploitation y compris la table de processus. Son contenu est détaillé dans la page de manuel qui lui est consacrée : `proc(5)`_. - -A titre d'illustration, considérons le shell d'un utilisateur en cours. Les informations maintenues dans la table des processus pour ce processus sont accessibles depuis ``/proc/pid`` où ``pid`` est l'identifiant du processus en cours d'exécution. Linux stocke de très nombreuses informations sur chaque processus. Celles-ci sont structurées dans des fichiers et des répertoires : - -.. code-block:: console - - $ ls -l /proc/18557 - total 0 - dr-xr-xr-x 2 obo stafinfo 0 Mar 18 16:37 attr - -r-------- 1 obo stafinfo 0 Mar 18 16:37 auxv - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 cgroup - --w------- 1 obo stafinfo 0 Mar 18 16:37 clear_refs - -r--r--r-- 1 obo stafinfo 0 Mar 18 14:56 cmdline - -rw-r--r-- 1 obo stafinfo 0 Mar 18 16:37 coredump_filter - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 cpuset - lrwxrwxrwx 1 obo stafinfo 0 Mar 18 16:37 cwd -> /etinfo/users2/obo/sinf1252/SINF1252/ - -r-------- 1 obo stafinfo 0 Mar 18 16:37 environ - lrwxrwxrwx 1 obo stafinfo 0 Mar 18 16:37 exe -> /bin/bash - dr-x------ 2 obo stafinfo 0 Mar 18 14:56 fd - dr-x------ 2 obo stafinfo 0 Mar 18 16:37 fdinfo - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 io - -rw------- 1 obo stafinfo 0 Mar 18 16:37 limits - -rw-r--r-- 1 obo stafinfo 0 Mar 18 16:37 loginuid - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 maps - -rw------- 1 obo stafinfo 0 Mar 18 16:37 mem - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 mountinfo - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 mounts - -r-------- 1 obo stafinfo 0 Mar 18 16:37 mountstats - dr-xr-xr-x 6 obo stafinfo 0 Mar 18 16:37 net - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 numa_maps - -rw-r--r-- 1 obo stafinfo 0 Mar 18 16:37 oom_adj - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 oom_score - -r-------- 1 obo stafinfo 0 Mar 18 16:37 pagemap - -r-------- 1 obo stafinfo 0 Mar 18 16:37 personality - lrwxrwxrwx 1 obo stafinfo 0 Mar 18 16:37 root -> / - -rw-r--r-- 1 obo stafinfo 0 Mar 18 16:37 sched - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 schedstat - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 sessionid - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 smaps - -r-------- 1 obo stafinfo 0 Mar 18 16:37 stack - -r--r--r-- 1 obo stafinfo 0 Mar 18 14:56 stat - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 statm - -r--r--r-- 1 obo stafinfo 0 Mar 18 14:56 status - -r-------- 1 obo stafinfo 0 Mar 18 16:37 syscall - dr-xr-xr-x 3 obo stafinfo 0 Mar 18 15:59 task - -r--r--r-- 1 obo stafinfo 0 Mar 18 16:37 wchan - -Certaines des entrées dans ``/proc`` sont des fichiers, d'autres sont des répertoires. A titre d'exemple, voici quelques unes des entrées utiles à ce stade de notre exploration de Linux. - - - ``cmdline`` est un fichier texte contenant la ligne de commande utilisée pour lancer le processus - - ``environ`` est un fichier texte contenant les variables d'environnement passées au processus - - .. code-block:: console - - $ (cat /proc/18557/environ; echo) | tr '\000' '\n' - USER=obo - LOGNAME=obo - HOME=/etinfo/users2/obo - PATH=/usr/local/bin:/bin:/usr/bin - MAIL=/var/mail/obo - SHELL=/bin/bash - - - ``status`` est une indication sur l'état actuel du processus. Les premières lignes indiquent dans quel état le processus se trouve ainsi que son identifiant, l'identifiant de son père, ... - - .. code-block:: console - - $ cat /proc/$$/status | head -5 - Name: bash - State: S (sleeping) - Tgid: 18557 - Pid: 18557 - PPid: 18556 - - - ``limits`` est un fichier texte contenant les limites actuelles imposées par le système sur le processus. Ces limites peuvent être modifiées en utilisant `ulimit(1)` à l'intérieur de `bash(1)`_ ou via les appels systèmes `getrlimit(2)`_/`setrlimit(2)`_. - - .. code-block:: console - - $ cat /proc/18557/limits - Limit Soft Limit Hard Limit Units - Max cpu time unlimited unlimited seconds - Max file size unlimited unlimited bytes - Max data size unlimited unlimited bytes - Max stack size 10485760 unlimited bytes - Max core file size 0 unlimited bytes - Max resident set unlimited unlimited bytes - Max processes 1024 24064 processes - Max open files 1024 1024 files - Max locked memory 65536 65536 bytes - Max address space unlimited unlimited bytes - Max file locks unlimited unlimited locks - Max pending signals 24064 24064 signals - Max msgqueue size 819200 819200 bytes - Max nice priority 0 0 - Max realtime priority 0 0 - Max realtime timeout unlimited unlimited us - - - ``task`` est un répertoire qui contient pour chaque thread lancé par le processus un sous-répertoire avec toutes les informations qui sont relatives à ce thread. - -Nous aurons l'occasion de présenter ultérieurement d'autres éléments utiles se trouvant dans ``/proc``. Une description plus détaillée est disponible dans la page de manuel `proc(5)`_ et des livres de référence tels que [Kerrisk2010]_. - - - -.. rubric:: Footnotes - -.. [#fdynamic] Dans certains cas, on parle également de librairies dynamiques car ces librairies sont chargées dynamiquement à l'exécution du programme. - -.. [#fpath] La variable d'environnement ``PATH`` contient la liste des répertoires que le shell parcoure afin de localiser un exécutable à lancer lorsque l'utilisateur ne fournit par le chemin complet de l'exécutable à lancer. - -.. [#fsyscall] En pratique, il correspond une fonction de la librairie à chaque appel système. Cette fonction a le même nom que l'appel système et les mêmes arguments et fait appel à `syscall(2)`_ pour l'exécution de l'appel système. - -.. [#flib] Par défaut, `gcc(1)`_ cherche après les librairies spécifiées dans les répertoires de librairies standards, mais aussi dans les répertoires listés dans la variable d'environnement ``LD_LIBRARY_PATH``. Il est également possible de spécifier des répertoires supplémentaires contenant les librairies avec l'argument ``-L`` de `gcc(1)`_. - -.. [#fthread] Si le processus a été découpé en threads, le processus peut aussi se terminer lorsque son dernier thread se termine en exécutant ``return(...)`` dans sa fonction de démarrage ou par un appel explicite à `pthread_exit(3)`_. - -.. [#fwaitpid] Si le processus dont l'identifiant est passé comme argument s'est déjà terminé, alors `waitpid(2)`_ retourne en indiquant une erreur. - -.. [#fchmod] En pratique, il y a trois bits qui jouent ce rôle en fonction du possesseur du fichier et de l'utilisateur qui souhaite l'exécuter. Nous décrirons ces bits en détails dans un prochain chapitre. - - diff --git a/Theorie/Threads/threads.rst b/Theorie/Threads/threads.rst deleted file mode 100644 index 044def2..0000000 --- a/Theorie/Threads/threads.rst +++ /dev/null @@ -1,226 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _threads: - -Utilisation de plusieurs threads -================================ - -Les performances des microprocesseurs se sont continuellement améliorées depuis les années 1960s. Cette amélioration a été possible grâce aux progrès constants de la micro-électronique qui a permis d'assembler des microprocesseurs contenant de plus en plus de transistors sur une surface de plus en plus réduite. La figure [#ftransistors]_ ci-dessous illustre bien cette évolution puisqu'elle représente le nombre de transistors par microprocesseur en fonction du temps. - -.. spelling:: - - Moore - intel - - -.. figure:: /Threads/figures/534px-Transistor_Count_and_Moore's_Law_-_2011.png - :align: center - - Evolution du nombre de transistors par microprocesseur - - -Cette évolution avait été prédite par Gordon Moore dans les années 1960s [Stokes2008]_. Il a formulé en 1965 une hypothèse qui prédisait que le nombre de composants par puce continuerait à doubler tous les douze mois pour la prochaine décennie. Cette prédiction s'est avérée tout à fait réaliste. Elle est maintenant connue sous le nom de :term:`Loi de Moore` et est fréquemment utilisée pour expliquer les améliorations de performance des ordinateurs. - -Le fonctionnement d'un microprocesseur est régulé par une horloge. Celle-ci rythme la plupart des opérations du processeur et notamment le chargement des instructions depuis la mémoire. Pendant de nombreuses années, les performances des microprocesseurs ont fortement dépendu de leur vitesse d'horloge. Les premiers microprocesseurs avaient des fréquences d'horloge de quelques centaines de :term:`kHz`. A titre d'exemple, le processeur intel 4004 avait une horloge à 740 kHz en 1971. Aujourd'hui, les processeurs rapides dépassent la fréquence de 3 :term:`GHz`. La figure ci-dessous présente l'évolution de la fréquence d'horloge des microprocesseurs depuis les années 1970s [#fperf]_. On remarque une évolution rapide jusqu'aux environs du milieu de la dernière décennie. La barrière des 10 MHz a été franchie à la fin des années 1970s. Les 100 :term:`MHz` ont étés atteints en 1994 et le GHz aux environs de l'an 2000. - -.. figure:: /Threads/figures/figures-001-c.png - :align: center - - Evolution de la vitesse d'horloge des microprocesseurs - -Pendant près de quarante ans, l'évolution technologique a permis une amélioration continue des performances des microprocesseurs. Cette amélioration a directement profité aux applications informatiques car elles ont pu s'exécuter plus rapidement au fur et à mesure que la vitesse d'horloge des microprocesseurs augmentait. - -Malheureusement, vers 2005 cette croissance continue s'est arrêtée. La barrière des 3 GHz s'est avérée être une barrière très difficile à franchir d'un point de vue technologique. Aujourd'hui, les fabricants de microprocesseurs n'envisagent plus de chercher à continuer à augmenter les fréquences d'horloge des microprocesseurs. - -Si pendant longtemps la fréquence d'horloge d'un microprocesseur a été une bonne heuristique pour prédire les performances du microprocesseur, ce n'est pas un indicateur parfait de performance. Certains processeurs exécutent une instruction durant chaque cycle d'horloge. D'autres processeurs prennent quelques cycles d'horloge pour exécuter chaque instruction et enfin certains processeurs sont capables d'exécuter plusieurs instructions durant chaque cycle d'horloge. - -.. spelling:: - - d'Instructions - -Une autre façon de mesurer les performances d'un microprocesseur est de comptabiliser le nombre d'instructions qu'il exécute par seconde. On parle en général de Millions d'Instructions par Seconde (ou :term:`MIPS`). Si les premiers microprocesseurs effectuaient moins de 100.000 instructions par seconde, la barrière du MIPS a été franchie en 1979. Mesurées en MIPS, les performances des microprocesseurs ont continué à augmenter durant les dernières années malgré la barrière des 3 GHz comme le montre la figure ci-dessous. - - -.. figure:: /Threads/figures/figures-002-c.png - :align: center - - Evolution des performances des microprocesseurs en MIPS - -.. spelling:: - - Evaluation - benchmark - benchmarks - -.. note:: Evaluation des performances de systèmes informatiques - - La fréquence d'horloge d'un processeur et le nombre d'instructions qu'il est capable d'exécuter chaque seconde ne sont que quelques uns des paramètres qui influencent les performances d'un système informatique qui intègre ce processeur. Les performances globales d'un système informatique dépendent de nombreux autres facteurs comme la capacité de mémoire et ses performances, la vitesse des bus entre les différents composants, les performances des dispositifs de stockage ou des cartes réseaux. Les performances d'un système dépendront aussi fortement du type d'application utilisé. Un serveur web, un serveur de calcul scientifique et un serveur de bases de données n'auront pas les mêmes contraintes en termes de performance. L'évaluation complète des performances d'un système informatique se fait généralement en utilisant des benchmarks. Un :term:`benchmark` est un ensemble de logiciels qui reproduisent le comportement de certaines classes d'applications de façon à pouvoir tester les performances de systèmes informatiques de façon reproductible. Différents organismes publient de tels benchmarks. Le plus connu est probablement `Standard Performance Evaluation Corporation <http://www.spec.org>`_ qui publie des benchmarks et des résultats de benchmarks pour différents types de systèmes informatiques et d'applications. - - -Cette progression continue des performances en MIPS a été possible grâce à l'introduction de processeurs qui sont capables d'exécuter plusieurs threads d'exécution simultanément. On parle alors de processeur :term:`multi-coeurs` ou :term:`multi-threadé`. - - - - -La notion de thread d'exécution est très importante dans un système informatique. Elle permet non seulement de comprendre comme un ordinateur équipé d'un seul microprocesseur peut exécuter plusieurs programmes simultanément, mais aussi comment des programmes peuvent profiter des nouveaux processeurs capables d'exécuter plusieurs threads simultanément. Pour comprendre cette notion, il est intéressant de revenir à nouveau sur l'exécution d'une fonction en langage assembleur. Considérons la fonction ``f`` : - - .. code-block:: c - - int f(int a, int b ) { - int m=0; - int c=0; - while(c<b) { - m+=a; - c=c+1; - } - return m; - } - -En assembleur, cette fonction se traduit en : - - -.. code-block:: nasm - - f: - subl $16, %esp - movl 24(%esp), %eax - movl 20(%esp), %ecx - movl %ecx, 12(%esp) - movl %eax, 8(%esp) - movl $0, 4(%esp) - movl $0, (%esp) - .LBB0_1: - movl (%esp), %eax - cmpl 8(%esp), %eax - jge .LBB0_3 - - movl 12(%esp), %eax - movl 4(%esp), %ecx - addl %eax, %ecx - movl %ecx, 4(%esp) - movl (%esp), %eax - addl $1, %eax - movl %eax, (%esp) - jmp .LBB0_1 - .LBB0_3: - movl 4(%esp), %eax - addl $16, %esp - ret - - -Pour qu'un processeur puisse exécuter cette séquence d'instructions, il faut non seulement qu'il implémente chacune de ces instructions, mais également qu'il puisse accéder : - - - à la mémoire contenant les instructions à exécuter - - à la mémoire contenant les données manipulées par cette séquence d'instruction. Pour rappel, cette mémoire est divisée en plusieurs parties : - - - la zone contenant les variables globales - - le tas - - la pile - - - aux registres et plus particulièrement, il doit accéder : - - - aux registres de données pour stocker les résultats de chacune des instructions - - au registre ``%esp`` directement ou indirectement via les instructions ``push`` et ``pop`` qui permettent de manipuler la pile - - au registre ``%eip`` qui contient l'adresse de l'instruction en cours d'exécution - - au registre ``eflags`` qui contient l'ensemble des drapeaux - -.. spelling:: - - multithreadé - -Un processeur `multithreadé` a la capacité d'exécuter plusieurs programmes simultanément. En pratique, ce processeur disposera de plusieurs copies des registres. Chacun de ces blocs de registres pourra être utilisé pour exécuter ces programmes simultanément à raison d'un thread d'exécution par bloc de registres. Chaque thread d'exécution va correspondre à une séquence différente d'instructions qui va modifier son propre bloc de registres. C'est grâce à cette capacité d'exécuter plusieurs threads d'exécution simultanément que les performances en :term:`MIPS` des microprocesseurs ont pu continuer à croître alors que leur fréquence d'horloge stagnait. - -Cette capacité d'exécuter plusieurs threads d'exécution simultanément n'est pas limitée à un thread d'exécution par programme. Sachant qu'un thread d'exécution n'est finalement qu'une séquence d'instructions qui utilisent un bloc de registres, il est tout à fait possible à plusieurs séquences d'exécution appartenant à un même programme de s'exécuter simultanément. Si on revient à la fonction assembleur ci-dessus, il est tout à fait possible que deux invocations de cette fonction s'exécutent simultanément sur un microprocesseur. Pour démarrer une telle instance, il suffit de pouvoir initialiser le bloc de registres nécessaire à la nouvelle instance et ensuite de démarrer l'exécution à la première instruction de la fonction. En pratique, cela nécessite la coopération du système d'exploitation. Différents mécanismes ont été proposés pour permettre à un programme de lancer différents threads d'exécution. Aujourd'hui, le plus courant est connu sous le nom de threads POSIX. C'est celui que nous allons étudier en détail, mais il en existe d'autres. - -.. note:: D'autres types de threads - - A côté des threads POSIX, il existe d'autres types de threads. [Gove2011]_ présente comment implémenter des threads sur différents systèmes d'exploitation. Sous Linux, NTPL [DrepperMolnar2005]_ et LinuxThreads [Leroy]_ sont deux anciennes implémentations des threads POSIX. GNU PTH [GNUPTH]_ est une librairie qui implémente les threads sans interaction directe avec le système d'exploitation. Cela permet à la librairie d'être portable sur de nombreux systèmes d'exploitation. Malheureusement, tous les threads GNU PTH d'un programme doivent s'exécuter sur le même processeur. - - - -Les threads POSIX ------------------ - -Les threads POSIX sont supportés par la plupart des variantes de Unix. Ils sont souvent implémentés à l'intérieur d'une librairie. Sous Linux, il s'agit de la librairie `pthreads(7)`_ qui doit être explicitement compilée avec le paramètre ``-lpthread`` lorsque l'on utilise `gcc(1)`_. - -La librairie threads POSIX contient de nombreuses fonctions qui permettent de décomposer un programme en plusieurs threads d'exécution et de les gérer. Toutes ces fonctions nécessitent l'inclusion du fichier `pthread.h`_. La première fonction importante est `pthread_create(3)`_ qui permet de créer un nouveau thread d'exécution. Cette fonction prend quatre arguments et retourne une valeur entière. - -.. code-block:: c - - #include <pthread.h> - - int - pthread_create(pthread_t *restrict thread, - const pthread_attr_t *restrict attr, - void *(*start_routine)(void *), - void *restrict arg); - - -Le premier argument est un pointeur vers une structure de type ``pthread_t``. Cette structure est définie dans `pthread.h`_ et contient toutes les informations nécessaires à l'exécution d'un thread. Chaque thread doit disposer de sa structure de données de type ``pthread_t`` qui lui est propre. - -Le second argument permet de spécifier des attributs spécifiques au thread qui est créé. Ces attributs permettent de configurer différents paramètres associés à un thread. Nous y reviendrons ultérieurement. Si cet argument est mis à ``NULL``, la librairie ``pthreads`` utilisera les attributs par défaut qui sont en général largement suffisants. - -Le troisième argument contient l'adresse de la fonction par laquelle le nouveau thread va démarrer son exécution. Cette adresse est le point de départ de l'exécution du thread et peut être comparée à la fonction ``main`` qui est lancée par le système d'exploitation lorsqu'un programme est exécuté. Un thread doit toujours débuter son exécution par une fonction dont la signature est ``void * function(void *)``, c'est-à -dire une fonction qui prend comme argument un pointeur générique (de type ``void *``) et retourne un résultat du même type. - -Le quatrième argument est l'argument qui est passé à la fonction qui débute le thread qui vient d'être créé. Cet argument est un pointeur générique de type ``void *``, mais la fonction peut bien entendu le convertir dans un autre type. - -La fonction `pthread_create(3)`_ retourne un résultat entier. Une valeur de retour non-nulle indique une erreur et ``errno`` est mise à jour. - -Un thread s'exécute en général pendant une certaine période de temps puis il peut retourner un résultat au thread d'exécution principal. Un thread peut retourner son résultat (de type ``void *``) de deux façons au thread qui l'a lancé. Tout d'abord, un thread qui a démarré par la fonction ``f`` se termine lorsque cette fonction exécute ``return(...)``. L'autre façon de terminer un thread d'exécution est d'appeler explicitement la fonction `pthread_exit(3)`_. Celle-ci prend un argument de type ``void *`` et le retourne au thread qui l'avait lancé. - -Pour récupérer le résultat d'un thread d'exécution, le thread principal doit utiliser la fonction `pthread_join(3)`_. Celle-ci prend deux arguments et retourne un entier. - -.. code-block:: c - - #include <pthread.h> - - int - pthread_join(pthread_t thread, void **value_ptr); - - -Le premier argument de `pthread_join(3)`_ est la structure ``pthread_t`` correspondant au thread dont le résultat est attendu. Le second argument est un pointeur vers un pointeur générique (``void **``) qui après la terminaison du thread passé comme premier argument pointera vers la valeur de retour de ce thread. - -L'exemple ci-dessous illustre une utilisation simple des fonctions `pthread_create(3)`_, `pthread_join(3)`_ et `pthread_exit(3)`_. - -.. literalinclude:: /Threads/S5-src/pthread.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Dans ce programme, la fonction ``main`` lance deux threads. Le premier exécute la fonction ``thread_first`` et le second la fonction ``thread_second``. Ces deux fonctions incrémentent une variable globale et n'utilisent pas leur argument. ``thread_first`` se termine par ``return`` tandis que ``thread_second`` se termine par un appel à `pthread_exit(3)`_. Après avoir créé ses deux threads, la fonction ``main`` démarre une longue boucle puis appelle ``pthread_join`` pour attendre la fin des deux threads qu'elle avait lancé. - -Afin d'illustrer la possibilité de passer des arguments à un thread et d'en récupérer la valeur de retour, considérons l'exemple ci-dessous. - -.. literalinclude:: /Threads/S5-src/pthread-neg.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Ce programme lance 4 threads d'exécution en plus du thread principal. Chaque thread d'exécution exécute la fonction ``neg`` qui récupère un entier comme argument et retourne l'opposé de cet entier comme résultat. - -Lors d'un appel à `pthread_create(3)`_, il est important de se rappeler que cette fonction crée le thread d'exécution, mais que ce thread ne s'exécute pas nécessairement immédiatement. En effet, il est très possible que le système d'exploitation ne puisse pas activer directement le nouveau thread d'exécution, par exemple parce que l'ensemble des processeurs de la machine sont actuellement utilisés. Dans ce cas, le thread d'exécution est mis en veille par le système d'exploitation et il sera démarré plus tard. Sachant que le thread peut devoir démarrer plus tard, il est important de s'assurer que la fonction lancée par `pthread_create(3)`_ aura bien accès à son argument au moment où finalement elle démarrera. Dans l'exemple ci-dessous, cela se fait en passant comme quatrième argument l'adresse d'un entier casté en ``void *``. Cette valeur est copiée sur la pile de la fonction ``neg``. Celle-ci pourra accéder à cet entier via ce pointeur sans problème lorsqu'elle démarrera. - -.. note:: Un thread doit pouvoir accéder à son argument - - Lorsque l'on démarre un thread via la fonction `pthread_create(3)`_, il faut s'assurer que la fonction lancée pourra bien accéder à ses arguments. Ce n'est pas toujours le cas comme le montre l'exemple ci-dessous. Dans cet exemple, c'est l'adresse de la variable locale ``i`` qui est passée comme quatrième argument à la fonction `pthread_create(3)`_. Cette adresse sera copiée sur la pile de la fonction ``neg`` pour chacun des threads créés. Malheureusement, lorsque la fonction ``neg`` sera exécutée, elle trouvera sur sa pile l'adresse d'une variable qui risque fort d'avoir été modifiée après l'appel à `pthread_create(3)`_ ou pire risque d'avoir disparu car la boucle ``for`` s'est terminée. Il est très important de bien veiller à ce que le quatrième argument passé à `pthread_create(3)`_ existe toujours au moment de l'exécution effective de la fonction qui démarre le thread lancé. - - .. code-block:: c - - /// erroné ! - for(long i=0;i<NTHREADS;i++) { - err=pthread_create(&(threads[i]),NULL,&neg,(void *)&i); - if(err!=0) - error(err,"pthread_create"); - } - -Concernant `pthread_join(3)`_, le code ci-dessus illustre la récupération du résultat via un pointeur vers un entier. Comme la fonction ``neg`` retourne un résultat de type ``void *`` elle doit nécessairement retourner un pointeur qui peut être casté vers un pointeur de type ``void *``. C'est ce que la fonction ``neg`` dans l'exemple réalise. Elle alloue une zone mémoire permettant de stocker un entier et place dans cette zone mémoire la valeur de retour de la fonction. Ce pointeur est ensuite casté en un pointeur de type ``void *`` avant d'appeler ``return``. Il faut noter que l'appel à `pthread_join(3)`_ ne se termine que lorsque le thread spécifié comme premier argument se termine. Si ce thread ne se termine pas pour n'importe quelle raison, l'appel à `pthread_join(3)`_ ne se terminera pas non plus. - - -.. rubric:: Footnotes - -.. [#ftransistors] Source : http://en.wikipedia.org/wiki/File:Transistor_Count_and_Moore%27s_Law_-_2011.svg - -.. [#fperf] Plusieurs sites web recensent cette information, notamment http://www.intel.com/pressroom/kits/quickreffam.htm, http://en.wikipedia.org/wiki/List_of_Intel_microprocessors et http://en.wikipedia.org/wiki/Instructions_per_second - diff --git a/Theorie/Threads/threads2.rst b/Theorie/Threads/threads2.rst deleted file mode 100644 index c553831..0000000 --- a/Theorie/Threads/threads2.rst +++ /dev/null @@ -1,321 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -.. _comthreads: - -Communication entre threads -=========================== - -Lorsque un programme a été décomposé en plusieurs threads, ceux-ci ne sont en général pas complètement indépendants et ils doivent communiquer entre eux. Cette communication entre threads est un problème complexe comme nous allons le voir. Avant d'aborder ce problème, il est utile de revenir à l'organisation d'un processus et de ses threads en mémoire. La figure ci-dessous illustre schématiquement l'organisation de la mémoire après la création d'un thread POSIX. - - -.. figure:: /Threads/S6-fig/figures-001-c.png - :align: center - :scale: 80 - - Organisation de la mémoire après la création d'un thread POSIX - - -Le programme principal et le thread qu'il a créé partagent trois zones de la mémoire : le :term:`segment text` qui comprend l'ensemble des instructions qui composent le programme, le :term:`segment de données` qui comprend toutes les données statiques, initialisées ou non et enfin le :term:`heap`. Autant le programme principal que son thread peuvent accéder à n'importe quelle information se trouvant en mémoire dans ces zones. Par contre, le programme principal et le thread qu'il vient de créer ont chacun leur propre contexte et leur propre pile. - -La première façon pour un processus de communiquer avec un thread qu'il a lancé est d'utiliser les arguments de la fonction de démarrage du thread et la valeur retournée par le thread que le processus principal peut récupérer via l'appel à `pthread_join(3posix)`_. C'est un canal de communication très limité qui ne permet pas d'échange d'information pendant l'exécution du thread. - -Il est cependant assez facile pour un processus de partager de l'information avec ses threads ou même de partager de l'information entre plusieurs threads. En effet, tous les threads d'un processus ont accès aux mêmes variables globales et au même :term:`heap`. Il est donc tout à fait possible pour n'importe quel thread de modifier la valeur d'une variable globale. Deux threads qui réalisent un calcul peuvent donc stocker des résultats intermédiaires dans une variable globale ou un tableau global. Il en va de même pour l'utilisation d'une zone de mémoire allouée par `malloc(3)`_. Chaque thread qui dispose d'un pointeur vers cette zone mémoire peut en lire le contenu ou en modifier la valeur. - -Malheureusement, permettre à tous les threads de lire et d'écrire simultanément en mémoire peut être une source de problèmes. C'est une des difficultés majeures de l'utilisation de threads. Pour s'en convaincre, considérons l'exemple ci-dessous [#fexemple]_. - -.. code-block:: c - - long global=0; - int increment(int i) { - return i+1; - } - void *func(void * param) { - for(int j=0;j<1000000;j++) { - global=increment(global); - } - return(NULL); - } - - -Dans cet exemple, la variable ``global`` est incrémentée ``1000000`` de fois par la fonction ``func``. Après l'exécution de cette fonction, la variable ``global`` contient la valeur ``1000000``. Sur une machine multiprocesseurs, un programmeur pourrait vouloir en accélérer les performances en lançant plusieurs threads qui exécutent chacun la fonction ``func``. Cela pourrait se faire en utilisant par exemple la fonction ``main`` ci-dessous. - - -.. code-block:: c - - int main (int argc, char *argv[]) { - pthread_t thread[NTHREADS]; - int err; - for(int i=0;i<NTHREADS;i++) { - err=pthread_create(&(thread[i]),NULL,&func,NULL); - if(err!=0) - error(err,"pthread_create"); - } - /*...*/ - for(int i=NTHREADS-1;i>=0;i--) { - err=pthread_join(thread[i],NULL); - if(err!=0) - error(err,"pthread_join"); - } - printf("global: %ld\n",global); - return(EXIT_SUCCESS); - } - -Ce programme lance alors 4 threads d'exécution qui incrémentent chacun un million de fois la variable ``global``. Celle-ci étant initialisée à ``0``, la valeur affichée par `printf(3)`_ à la fin de l'exécution doit donc être ``4000000``. L'exécution du programme ne confirme malheureusement pas cette attente. - -.. code-block:: console - - $ for i in {1..5}; do ./pthread-test; done - global: 3408577 - global: 3175353 - global: 1994419 - global: 3051040 - global: 2118713 - - -Non seulement la valeur attendue (``4000000``) n'est pas atteinte, mais en plus la valeur change d'une exécution du programme à la suivante. C'est une illustration du problème majeur de la découpe d'un programme en threads. Pour bien comprendre le problème, il est utile d'analyser en détails les opérations effectuées par deux threads qui exécutent la ligne ``global=increment(global);``. - -La variable ``global`` est stockée dans une zone mémoire qui est accessibles aux deux threads. Appelons-les `T1` et `T2`. L'exécution de cette ligne par un thread nécessite l'exécution de plusieurs instructions en assembleur. Tout d'abord, il faut charger la valeur de la variable ``global`` depuis la mémoire vers un registre. Ensuite, il faut placer cette valeur sur la pile du thread puis appeler la fonction ``increment``. Cette fonction récupère son argument sur la pile du thread, la place dans un registre, incrémente le contenu du registre et sauvegarde le résultat dans le registre ``%eax``. Le résultat est retourné dans la fonction ``func`` et la variable globale peut enfin être mise à jour. - -Malheureusement les difficultés surviennent lorsque deux threads exécutent en même temps la ligne ``global=increment(global);``. Supposons qu'à cet instant, la valeur de la variable ``global`` est ``1252``. Le premier thread charge une copie de cette variable sur sa pile. Le second fait de même. Les deux threads ont donc chacun passé la valeur ``1252`` comme argument à la fonction ``increment``. Celle-ci s'exécute et retourne la valeur ``1253`` que chaque thread va récupérer dans ``%eax``. Chaque thread va ensuite transférer cette valeur dans la zone mémoire correspondant à la variable ``global``. Si les deux threads exécutent l'instruction assembleur correspondante exactement au même moment, les deux écritures en mémoire seront sérialisées par les processeurs sans que l'on ne puisse a priori déterminer quelle écriture se fera en premier [McKenney2005]_. Alors que les deux threads ont chacun exécuté un appel à la fonction ``increment``, la valeur de la variable n'a finalement été incrémentée qu'une seule fois même si cette valeur a été transférée deux fois en mémoire. Ce problème se reproduit fréquemment. C'est pour cette raison que la valeur de la variable ``global`` n'est pas modifiée comme attendu. - -.. note:: Contrôler la pile d'un thread POSIX - - La taille de la pile d'un thread POSIX est l'un des attributs qui peuvent être modifiés lors de l'appel à `pthread_create(3)`_ pour créer un nouveau thread. Cet attribut peut être fixé en utilisant la fonction `pthread_attr_setstackaddr(3posix)`_ comme illustré dans l'exemple ci-dessous [#fpthreadc]_ (où ``thread_first`` est la fonction qui sera appelée à la création du thread). En général, la valeur par défaut choisie par le système suffit, sauf lorsque le programmeur sait qu'un thread devra par exemple allouer un grand tableau auquel il sera le seul à avoir accès. Ce tableau sera alors alloué sur la pile qui devra être suffisamment grande pour le contenir. - - .. literalinclude:: /Threads/S6-src/pthread.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - - -Ce problème d'accès concurrent à une zone de mémoire par plusieurs threads est un problème majeur dans le développement de programmes découpés en threads, que ceux-ci s'exécutent sur des ordinateurs mono-processeurs ou multiprocesseurs. Dans la littérature, il est connu sous le nom de problème de la :term:`section critique` ou :term:`exclusion mutuelle`. La :term:`section critique` peut être définie comme étant une séquence d'instructions qui ne peuvent *jamais* être exécutées par plusieurs threads simultanément. Dans l'exemple ci-dessus, il s'agit de la ligne ``global=increment(global);``. Dans d'autres types de programmes, la section critique peut être beaucoup plus grande et comprendre par exemple la mise à jour d'une base de données. En pratique, on retrouvera une section critique chaque fois que deux threads peuvent modifier ou lire la valeur d'une même zone de la mémoire. - -Le fragment de code ci-dessus présente une autre illustration d'une section critique. Dans cet exemple, la fonction ``main`` (non présentée), créée deux threads. Le premier exécute la fonction ``inc`` qui incrémente la variable ``global``. Le second exécute la fonction ``is_even`` qui teste la valeur de cette variable et compte le nombre de fois qu'elle est paire. Après la terminaison des deux threads, le programme affiche le contenu des variables ``global`` et ``even``. - -.. literalinclude:: /Threads/S6-src/pthread-test-if.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - :end-before: ///BBB - -L'exécution de ces deux threads donne, sans surprise des résultats qui varient d'une exécution à l'autre. - -.. code-block:: console - - $ for i in {1..5}; do ./pthread-test-if; done - global: 1000000, even:905140 - global: 1000000, even:919756 - global: 1000000, even:893058 - global: 1000000, even:891266 - global: 1000000, even:895043 - -.. _coordthreads: - -Coordination entre threads -========================== - -L'utilisation de plusieurs threads dans un programme fonctionnant sur un seul ou plusieurs processeurs nécessite l'utilisation de mécanismes de coordination entre ces threads. Ces mécanismes ont comme objectif d'éviter que deux threads ne puissent modifier ou tester de façon non coordonnée la même zone de la mémoire. - - -.. spelling:: - - Dijkstra - -Exclusion mutuelle ------------------- - -Le premier problème important à résoudre lorsque l'on veut coordonner plusieurs threads d'exécution d'un même processus est celui de l':term:`exclusion mutuelle`. Ce problème a été initialement proposé par Dijkstra en 1965 [Dijkstra1965]_. Il peut être reformulé de la façon suivante pour un programme décomposé en threads. - -Considérons un programme décomposé en `N` threads d'exécution. Supposons également que chaque thread d'exécution est cyclique, c'est-à -dire qu'il exécute régulièrement le même ensemble d'instructions, sans que la durée de ce cycle ne soit fixée ni identique pour les `N` threads. Chacun de ces threads peut être décomposé en deux parties distinctes. La première est la partie non-critique. C'est un ensemble d'instructions qui peuvent être exécutées par le thread sans nécessiter la moindre coordination avec un autre thread. Plus précisément, tous les threads peuvent exécuter simultanément leur partie non-critique. La seconde partie du thread est appelée sa :term:`section critique`. Il s'agit d'un ensemble d'instructions qui ne peuvent être exécutées que par un seul et unique thread. Le problème de l':term:`exclusion mutuelle` est de trouver un algorithme qui permet de garantir qu'il n'y aura jamais deux threads qui simultanément exécuteront les instructions de leur section critique. - -Cela revient à dire qu'il n'y aura pas de violation de la section critique. Une telle violation pourrait avoir des conséquences catastrophiques sur l'exécution du programme. Cette propriété est une propriété de :term:`sûreté` (:term:`safety` en anglais). Dans un programme découpé en threads, une propriété de :term:`sûreté` est une propriété qui doit être vérifiée à tout instant de l'exécution du programme. - -En outre, une solution au problème de l':term:`exclusion mutuelle` doit satisfaire les contraintes suivantes [Dijkstra1965]_ : - - a. La solution doit considérer tous les threads de la même façon et ne peut faire aucune hypothèse sur la priorité relative des différents threads. - b. La solution ne peut faire aucune hypothèse sur la vitesse relative ou absolue d'exécution des différents threads. Elle doit rester valide quelle que soit la vitesse d'exécution non nulle de chaque thread. - c. La solution doit permettre à un thread de s'arrêter en dehors de sa section critique sans que cela n'invalide la contrainte d'exclusion mutuelle - d. Si un ou plusieurs threads souhaitent entamer leur section critique, aucun de ces threads ne doit pouvoir être empêché indéfiniment d'accéder à sa section critique. - -La troisième contrainte implique que la terminaison ou le crash d'un des threads ne doit pas avoir d'impact sur le fonctionnement du programme complet et le respect de la contrainte d'exclusion mutuelle pour la section critique. - -La quatrième contrainte est un peu plus subtile mais tout aussi importante. Toute solution au problème de l'exclusion mutuelle contient nécessairement un mécanisme qui permet de bloquer l'exécution d'un thread pendant qu'un autre exécute sa section critique. Il est important qu'un thread puisse accéder à sa section critique si il le souhaite. C'est un exemple de propriété de :term:`vivacité` (:term:`liveness` en anglais). Une propriété de :term:`vivacité` est une propriété qui ne peut pas être éternellement invalidée. Dans notre exemple, un thread ne pourra jamais être empêché d'accéder à sa section critique. - -.. spelling:: - - monoprocesseur - monoprocesseurs - - -Exclusion mutuelle sur monoprocesseurs -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Même si les threads sont très utiles dans des ordinateurs multiprocesseurs, ils ont été inventés et utilisés d'abord sur des processeurs capables d'exécuter un seul thread d'exécution à la fois. Sur un tel processeur, les threads d'exécution sont entrelacés plutôt que d'être exécutés réellement simultanément. Cet entrelacement est réalisé par le système d'exploitation. - -Les systèmes d'exploitation de la famille Unix permettent d'exécuter plusieurs programmes `en même temps` sur un ordinateur, même si il est équipé d'un processeur qui n'est capable que d'exécuter un thread à la fois. Cette fonctionnalité est souvent appelée le :term:`multitâche` (ou :term:`multitasking` en anglais). Cette exécution simultanée de plusieurs programmes n'est en pratique qu'une illusion puisque le processeur ne peut qu'exécuter qu'une séquence d'instructions à la fois. - -Pour donner cette illusion, un système d'exploitation multitâche tel que Unix exécute régulièrement des changements de contexte entre threads. Le :term:`contexte` d'un thread est composé de l'ensemble des contenus des registres qui sont nécessaires à son exécution (y compris le contenu des registres spéciaux tels que ``%esp``, ``%eip`` ou ``%eflags``). Ces registres définissent l'état du thread du point de vue du processeur. Pour passer de l'exécution du thread `T1` à l'exécution du thread `T2`, le système d'exploitation doit initier un :term:`changement de contexte`. Pour réaliser ce changement de contexte, le système d'exploitation initie le transfert du contenu des registres utilisés par le thread `T1` vers une zone mémoire lui appartenant. Il transfère ensuite depuis une autre zone mémoire lui appartenant le contexte du thread `T2`. Si ce changement de contexte est effectué fréquemment, il peut donner l'illusion à l'utilisateur que plusieurs threads ou programmes s'exécutent simultanément. - -Sur un système Unix, il y a deux types d'événements qui peuvent provoquer un changement de contexte. - - 1. Le hardware génère une :term:`interruption` - 2. Un thread exécute un :term:`appel système bloquant` - -Ces deux types d'événements sont fréquents et il est important de bien comprendre comment ils sont traités par le système d'exploitation. - -Une :term:`interruption` est un signal électronique qui est généré par un dispositif connecté au microprocesseur. De nombreux dispositifs d'entrées-sorties comme les cartes réseau ou les contrôleurs de disque peuvent générer une interruption lorsqu'une information a été lue ou reçue et doit être traitée par le processeur. En outre, chaque ordinateur dispose d'une horloge temps réel qui génère des interruptions à une fréquence déterminée par le système d'exploitation mais qui est généralement comprise entre quelques dizaines et quelques milliers de `Hz`. Ces interruptions nécessitent un traitement rapide de la part du système d'exploitation. Pour cela, le processeur vérifie, à la fin de l'exécution de `chaque` instruction si un signal d'interruption [#finterrupts]_ est présent. Si c'est le cas, le processeur sauvegarde en mémoire le contexte du thread en cours d'exécution et lance une routine de traitement d'interruption faisant partie du système d'exploitation. Cette routine analyse l'interruption présente et lance les fonctions du système d'exploitation nécessaires à son traitement. Dans le cas d'une lecture sur disque, par exemple, la routine de traitement d'interruption permettra d'aller chercher la donnée lue sur le contrôleur de disques. - -Le deuxième type d'événement est l'exécution d'un appel système bloquant. Un thread exécute un :term:`appel système` chaque fois qu'il doit interagir avec le système d'exploitation. Ces appels peuvent être exécutés directement ou via une fonction de la librairie [#fman2]_. Il existe deux types d'appels systèmes : les appels bloquants et les appels non-bloquants. Un appel système non-bloquant est un appel système que le système d'exploitation peut exécuter immédiatement. Cet appel retourne généralement une valeur qui fait partie du système d'exploitation lui-même. L'appel `gettimeofday(2)`_ qui permet de récupérer l'heure actuelle est un exemple d'appel non-bloquant. Un appel système bloquant est un appel système dont le résultat ne peut pas toujours être fourni immédiatement. Les lectures d'information en provenance de l'entrée standard (et donc généralement du clavier) sont un bon exemple simple d'appel système bloquant. Considérons un thread qui exécute la fonction de la librairie `getchar(3)`_ qui retourne un caractère lu sur :term:`stdin`. Cette fonction utilise l'appel système `read(2)`_ pour lire un caractère sur :term:`stdin`. Bien entendu, le système d'exploitation est obligé d'attendre que l'utilisateur presse une touche sur le clavier pour pouvoir fournir le résultat de cet appel système à l'utilisateur. Pendant tout le temps qui s'écoule entre l'exécution de `getchar(3)`_ et la pression d'une touche sur le clavier, le thread est bloqué par le système d'exploitation. Plus aucune instruction du thread n'est exécutée tant que la fonction `getchar(3)`_ ne s'est pas terminée et le contexte du thread est mis en attente dans une zone mémoire gérée par le système d'exploitation. Il sera redémarré automatiquement par le système d'exploitation lorsque la donnée attendue sera disponible. - -Ces interactions entre les threads et le système d'exploitation sont importantes. Pour bien les comprendre, il est utile de noter qu'un thread peut se trouver dans trois états différents du point de vue de son interaction avec le système d'exploitation. Ces trois états sont illustrés dans la figure ci-dessous. - -.. figure:: /Threads/S6-fig/figures-003-c.png - :align: center - :scale: 80 - - Etats d'un thread d'exécution - -Lorsqu'un thread est créé avec la fonction `pthread_create(3)`_, il est placé dans l'état `Ready`. Dans cet état, les instructions du thread ne s'exécutent sur aucun processeur mais il est prêt à être exécuté dès qu'un processeur se libérera. Le deuxième état pour un thread est l'état `Running`. Dans cet état, le thread est exécuté sur un des processeurs du système. Le dernier état est l'état `Blocked`. Un thread est dans l'état `Blocked` lorsqu'il a exécuté un appel système bloquant et que le système d'exploitation attend l'information permettant de retourner le résultat de l'appel système. Pendant ce temps, les instructions du thread ne s'exécutent sur aucun processeur. - -.. spelling:: - - ordonnanceur - scheduler - schedulers - l'ordonnanceur - l'implémentation - -Les transitions entre les différents états d'un thread sont gérées par le système d'exploitation. Lorsque plusieurs threads d'exécution sont simultanément actifs, le système d'exploitation doit arbitrer les demandes d'utilisation du CPU de chaque thread. Cet arbitrage est réalisé par l'ordonnanceur (ou :term:`scheduler` en anglais). Le :term:`scheduler` est un ensemble d'algorithmes qui sont utilisés par le système d'exploitation pour sélectionner le ou les threads qui peuvent utiliser un processeur à un moment donné. Il y a souvent plus de threads qui sont dans l'état `Ready` que de processeurs disponibles et le scheduler doit déterminer quels sont les threads à exécuter. - -Une description détaillée du fonctionnement d'un scheduler relève plutôt d'un cours sur les systèmes d'exploitation que d'un premier cours sur le langage C, mais il est important de connaître les principes de base de fonctionnement de quelques schedulers. - -Un premier scheduler simple est le :term:`round-robin`. Ce scheduler maintient en permanence une liste circulaire de l'ensemble des threads qui se trouvent dans l'état `Ready` et un pointeur vers l'élément courant de cette liste. Lorsqu'un processeur devient disponible, le scheduler sélectionne le thread référencé par ce pointeur. Ce thread passe dans l'état `Running`, est retiré de la liste et le pointeur est déplacé vers l'élément suivant dans la liste. Pour éviter qu'un thread ne puisse monopoliser éternellement un processeur, un scheduler :term:`round-robin` limite généralement le temps qu'un thread peut passer dans l'état `Running`. Lorsqu'un thread a utilisé un processeur pendant ce temps, le scheduler vérifie si il y a un thread en attente dans l'état `Ready`. Si c'est le cas, le scheduler force un changement de contexte, place le thread courant dans l'état `Ready` et le remet dans la liste circulaire tout en permettant à un nouveau thread de passer dans l'état `Running` pour s'exécuter. Lorsqu'un thread revient dans l'état `Ready`, soit parce qu'il vient d'être créé ou parce qu'il vient de quitter l'état `Blocked`, il est placé dans la liste afin de pouvoir être sélectionné par le scheduler. Un scheduler :term:`round-robin` est équitable. Avec un tel scheduler, si `N` threads sont actifs en permanence, chacun recevra :math:`\frac{1}{N}` de temps CPU disponible. - -Un second type de scheduler simple est le scheduler à priorités. Une priorité est associée à chaque thread. Lorsque le scheduler doit sélectionner un thread à exécuter, il commence d'abord par parcourir les threads ayant une haute priorité. En pratique, un scheduler à priorité maintiendra une liste circulaire pour chaque niveau de priorité. Lorsque le scheduler est appelé, il sélectionnera toujours le thread ayant la plus haute priorité et se trouvant dans l'état `Ready`. Si plusieurs threads ont le même niveau de priorité, un scheduler de type :term:`round-robin` peut être utilisé dans chaque niveau de priorité. Sous Unix, le scheduler utilise un scheduler à priorité avec un round-robin à chaque niveau de priorité, mais la priorité varie dynamiquement en fonction du temps de façon à favoriser les threads interactifs. - -Connaissant ces bases du fonctionnement des schedulers, il est utile d'analyser en détails quels sont les événements qui peuvent provoquer des transitions entre les états d'un thread. Certains de ces événements sont provoqués par le thread lui-même. C'est le cas de la transition entre l'état `Running` et l'état `Blocked`. Elle se produit lorsque le thread exécute un :term:`appel système bloquant`. Dans ce cas, un processeur redevient disponible et le scheduler peut sélectionner un autre thread pour s'exécuter sur ce processeur. La transition entre l'état `Blocked` et l'état `Running` dépend elle du système d'exploitation, directement lorsque le thread a été bloqué par le système d'exploitation ou indirectement lorsque le système d'exploitation attend une information venant d'un dispositif d'entrées-sorties. Les transitions entre les états `Running` et `Ready` dépendent elles entièrement du système d'exploitation. Elles se produisent lors de l'exécution du scheduler. Celui-ci est exécuté lorsque certaines interruptions surviennent. Il est exécuté à chaque interruption d'horloge. Cela permet de garantir l'exécution régulière du scheduler même si les seuls threads actifs exécutent une boucle infinie telle que ``while(true);``. A l'occasion de cette interruption, le scheduler mesure le temps d'exécution de chaque thread et si un thread a consommé beaucoup de temps CPU alors que d'autres threads sont dans l'état `Ready`, le scheduler forcera un changement de contexte pour permettre à un autre thread de s'exécuter. De la même façon, une interruption relative à un dispositif d'entrées-sorties peut faire transiter un thread de l'état `Blocked` à l'état `Ready`. Cette modification du nombre de threads dans l'état `Ready` peut forcer le scheduler à devoir effectuer un changement de contexte pour permettre à ce thread de poursuivre son exécution. Sous Unix, le scheduler utilise des niveaux de priorité qui varient en fonction des opérations d'entrées sorties effectuées. Cela a comme conséquence de favoriser les threads qui effectuent des opérations d'entrées sorties par rapport aux threads qui effectuent uniquement du calcul. - - -.. note:: Un thread peut demander de passer la main. - - Dans la plupart de nos exemples, les threads cherchent en permanence à exécuter des instructions. Ce n'est pas nécessairement le cas de tous les threads d'un programme. Par exemple, une application de calcul scientifique pourrait être découpée en `N+1` threads. Les `N` premiers threads réalisent le calcul tandis que le dernier calcule des statistiques. Ce dernier thread ne doit pas consommer de ressources et être en compétition pour le processeur avec les autres threads. La librairie thread POSIX contient la fonction `pthread_yield(3)`_ qui peut être utilisée par un thread pour indiquer explicitement qu'il peut être remplacé par un autre thread. Si un thread ne doit s'exécuter qu'à intervalles réguliers, il est préférable d'utiliser des appels à `sleep(3)`_ ou `usleep(3)`_. Ces fonctions de la librairie permettent de demander au système d'exploitation de bloquer le thread pendant un temps au moins égal à l'argument de la fonction. - -Sur une machine monoprocesseur, tous les threads s'exécutent sur le même processeur. Une violation de section critique peut se produire lorsque le scheduler décide de réaliser un changement de contexte alors qu'un thread se trouve dans sa section critique. Si la section critique d'un thread ne contient ni d'appel système bloquant ni d'appel à `pthread_yield(3)`_, ce changement de contexte ne pourra se produire que si une interruption survient. Une solution pour résoudre le problème de l'exclusion mutuelle sur un ordinateur monoprocesseur pourrait donc être la suivante : - -.. code-block:: c - - disable_interrupts(); - // début section critique - // ... - // fin section critique - enable_interrupts(); - -Cette solution est possible, mais elle souffre de plusieurs inconvénients majeurs. Tout d'abord, une désactivation des interruptions perturbe le fonctionnement du système puisque sans interruptions, la plupart des opérations d'entrées-sorties et l'horloge sont inutilisables. Une telle désactivation ne peut être que très courte, par exemple pour modifier une ou quelques variables en mémoire. Ensuite, la désactivation des interruptions, comme d'autres opérations relatives au fonctionnement du matériel, est une opération privilégiée sur un microprocesseur. Elle ne peut être réalisée que par le système d'exploitation. Il faudrait donc imaginer un appel système qui permettrait à un thread de demander au système d'exploitation de désactiver les interruptions. Si un tel appel système existait, le premier programme qui exécuterait ``disable_interrupts();`` sans le faire suivre de ``enable_interrupts();`` quelques instants après pourrait rendre la machine complètement inutilisable puisque sans interruption plus aucune opération d'entrée-sortie n'est possible et qu'en plus le scheduler ne peut plus être activé par l'interruption d'horloge. Pour toutes ces raisons, la désactivation des interruptions n'est pas un mécanisme utilisable par les threads pour résoudre le problème de l'exclusion mutuelle [#fdisable]_. - - -Coordination par Mutex -^^^^^^^^^^^^^^^^^^^^^^ - -Le premier mécanisme de coordination entre threads dans la librairie POSIX sont les :term:`mutex`. Un :term:`mutex` (abréviation de `mutual exclusion`) est une structure de données qui permet de contrôler l'accès à une ressource. Un :term:`mutex` qui contrôle une ressource peut se trouver dans deux états : - - - `libre` (ou `unlocked` en anglais). Cet état indique que la ressource est libre et peut être utilisée sans risquer de provoquer une violation d'exclusion mutuelle. - - `réservée` (ou `locked` en anglais). Cet état indique que la ressource associée est actuellement utilisée et qu'elle ne peut pas être utilisée par un autre thread. - -Un :term:`mutex` est toujours associé à une ressource. Cette ressource peut être une variable globale comme dans les exemples précédents, mais cela peut aussi être une structure de données plus complexe, une base de données, un fichier, ... Un mutex s'utilise par l'intermédiaire de deux fonctions de base. La fonction `lock` permet à un thread d'acquérir l'usage exclusif d'une ressource. Si la ressource est libre, elle est marquée comme réservée et le thread y accède directement. Si la ressource est occupée, le thread est bloqué par le système d'exploitation jusqu'à ce qu'elle ne devienne libre. A ce moment, le thread pourra poursuivre son exécution et utilisera la ressource avec la certitude qu'aucun autre thread ne pourra faire de même. Lorsque le thread a terminé d'utiliser la ressource associée au mutex, il appelle la fonction `unlock`. Cette fonction vérifie d'abord si un ou plusieurs autres threads sont en attente pour cette ressource (c'est-à -dire qu'ils ont appelé la fonction `lock` mais celle-ci n'a pas encore réussi). Si c'est le cas, un (et un seul) thread est choisi parmi les threads en attente et celui-ci accède à la ressource. Il est important de noter qu'un programme ne peut faire aucune hypothèse sur l'ordre dans lequel les threads qui sont en attente sur un :term:`mutex` pourront accéder à la ressource partagée. Le programme doit être conçu en faisant l'hypothèse que si plusieurs threads sont bloqués sur un appel à `lock` pour un mutex, le thread qui sera libéré est choisi aléatoirement. - -Sans entrer dans des détails qui relèvent du fonctionnement internes des systèmes d'exploitation, on peut schématiquement représenter un :term:`mutex` comme étant une structure de données qui contient deux informations : - - - la valeur actuelle du :term:`mutex` ( `locked` ou `unlocked`) - - une queue contenant l'ensemble des threads qui sont bloqués en attente du mutex - -Schématiquement, l'implémentation des fonctions ``lock`` et ``unlock`` peut être représentée par le code ci-dessous. - -.. code-block:: c - - lock(mutex m) { - if(m.val==unlocked) - { - m.val=locked; - } - else - { - // Place this thread in m.queue; - // This thread is blocked; - } - } - -Le fonction ``lock`` vérifie si le :term:`mutex` est libre. Dans ce cas, le :term:`mutex` est marqué comme réservé et la fonction ``lock`` réussi. Sinon, le thread qui a appelé la fonction ``lock`` est placé dans la queue associée au :term:`mutex` et passe dans l'état `Blocked` jusqu'à ce qu'un autre thread ne libère le mutex. - - -.. code-block:: c - - unlock(mutex m) { - if(m.queue is empty) - { - m.val=unlocked; - } - else - { - // Remove one thread(T) from m.queue; - // Mark Thread(T) as ready to run; - } - } - -La fonction ``unlock`` vérifie d'abord l'état de la queue associée au :term:`mutex`. Si la queue est vide, cela indique qu'aucun thread n'est en attente. Dans ce cas, la valeur du :term:`mutex` est mise à `unlocked` et la fonction se termine. Sinon, un des threads en attente dans la queue associée au :term:`mutex` est choisi et marqué comme prêt à s'exécuter. Cela indique implicitement que l'appel à ``lock`` fait par ce thread réussi et qu'il peut accéder à la ressource. - -Le code présenté ci-dessous n'est qu'une illustration du fonctionnement des opérations ``lock`` et ``unlock``. Pour que ces opérations fonctionnent correctement, il faut bien entendu que les modifications aux valeurs du :term:`mutex` et à la queue qui y est associée se fassent en garantissant qu'un seul thread exécute l'une de ces opérations sur un :term:`mutex` à un instant donné. En pratique, les implémentations de ``lock`` et ``unlock`` utilisent des instructions atomiques telles que celles qui ont été présentées dans la section précédente pour garantir cette propriété. - -Les :term:`mutex` sont fréquemment utilisés pour protéger l'accès à une zone de mémoire partagée. Ainsi, si la variable globale `g` est utilisée en écriture et en lecture par deux threads, celle-ci devra être protégée par un :term:`mutex`. Toute modification de cette variable devra être entourée par des appels à `lock` et `unlock`. - -En C, cela se fait en utilisant les fonctions `pthread_mutex_lock(3posix)`_ et `pthread_mutex_unlock(3posix)`_. Un :term:`mutex` POSIX est représenté par une structure de données de type `pthread_mutex_t` qui est définie dans le fichier `pthread.h`_. Avant d'être utilisé, un :term:`mutex` doit être initialisé via la fonction `pthread_mutex_init(3posix)`_ et lorsqu'il n'est plus nécessaire, les ressources qui lui sont associées doivent être libérées avec la fonction `pthread_mutex_destroy(3posix)`_. - -L'exemple ci-dessous reprend le programme dans lequel une variable globale est incrémentée par plusieurs threads. - -.. literalinclude:: /Threads/S6-src/pthread-mutex.c - :encoding: utf-8 - :language: c - :start-after: ///AAA - -Il est utile de regarder un peu plus en détails les différentes fonctions utilisées par ce programme. Tout d'abord, la ressource partagée est ici la variable ``global``. Dans l'ensemble du programme, l'accès à cette variable est protégé par le :term:`mutex` ``mutex_global``. Celui-ci est représenté par une structure de données de type ``pthread_mutex_t``. - -Avant de pouvoir utiliser un :term:`mutex`, il est nécessaire de l'initialiser. Cette initialisation est effectuée par la fonction `pthread_mutex_init(3posix)`_ qui prend deux arguments [#fstaticinit]_. Le premier est un pointeur vers une structure ``pthread_mutex_t`` et le second un pointeur vers une structure ``pthread_mutexattr_t`` contenant les attributs de ce :term:`mutex`. Tout comme lors de la création d'un thread, ces attributs permettent de spécifier des paramètres à la création du :term:`mutex`. Ces attributs peuvent être manipulés en utilisant les fonctions `pthread_mutexattr_gettype(3posix)`_ et `pthread_mutexattr_settype(3posix)`_. Dans le cadre de ces notes, nous utiliserons exclusivement les attributs par défaut et créerons toujours un :term:`mutex` en passant ``NULL`` comme second argument à la fonction `pthread_mutex_init(3posix)`_. - -Lorsqu'un :term:`mutex` POSIX est initialisé, la ressource qui lui est associée est considérée comme libre. L'accès à la ressource doit se faire en précédant tout accès à la ressource par un appel à la fonction `pthread_mutex_lock(3posix)`_. En fonction des attributs spécifiés à la création du :term:`mutex`, il peut y avoir de très rares cas où la fonction retourne une valeur non nulle. Dans ce cas, le type d'erreur est indiqué via :term:`errno`. Lorsque le thread n'a plus besoin de la ressource protégée par le mutex, il doit appeler la fonction `pthread_mutex_unlock(3posix)`_ pour libérer la ressource protégée. - -`pthread_mutex_lock(3posix)`_ et `pthread_mutex_unlock(3posix)`_ sont toujours utilisés en couple. `pthread_mutex_lock(3posix)`_ doit toujours précéder l'accès à la ressource partagée et `pthread_mutex_unlock(3posix)`_ doit être appelé dès que l'accès exclusif à la ressource partagée n'est plus nécessaire. - - -L'utilisation des mutex permet de résoudre correctement le problème de l'exclusion mutuelle. Pour s'en convaincre, considérons le programme ci-dessus et les threads qui exécutent la fonction ``func``. Celle-ci peut être résumée par les trois lignes suivantes : - -.. code-block:: c - - pthread_mutex_lock(&mutex_global); - global=increment(global); - pthread_mutex_unlock(&mutex_global); - -Pour montrer que cette solution répond bien au problème de l'exclusion mutuelle, il faut montrer qu'elle respecte la propriété de sûreté et la propriété de vivacité. Pour la propriété de sûreté, c'est par construction des :term:`mutex` et parce que chaque thread exécute `pthread_mutex_lock(3posix)`_ avant d'entrer en section critique et `pthread_mutex_unlock(3posix)`_ dès qu'il en sort. Considérons le cas de deux threads qui sont en concurrence pour accéder à cette section critique. Le premier exécute `pthread_mutex_lock(3posix)`_. Il accède à sa section critique. A partir de cet instant, le second thread sera bloqué dès qu'il exécute l'appel à `pthread_mutex_lock(3posix)`_. Il restera bloqué dans l'exécution de cette fonction jusqu'à ce que le premier thread sorte de sa section critique et exécute `pthread_mutex_unlock(3posix)`_. A ce moment, le premier thread n'est plus dans sa section critique et le système peut laisser le second y entrer en terminant l'exécution de l'appel à `pthread_mutex_lock(3posix)`_. Si un troisième thread essaye à ce moment d'entrer dans la section critique, il sera bloqué sur son appel à `pthread_mutex_lock(3posix)`_. - -Pour montrer que la propriété de vivacité est bien respectée, il faut montrer qu'un thread ne sera pas empêché éternellement d'entrer dans sa section critique. Un thread peut être empêché d'entrer dans sa section critique en étant bloqué sur l'appel à `pthread_mutex_lock(3posix)`_. Comme chaque thread exécute `pthread_mutex_unlock(3posix)`_ dès qu'il sort de sa section critique, le thread en attente finira par être exécuté. Pour qu'un thread utilisant le code ci-dessus ne puisse jamais entrer en section critique, il faudrait qu'il y aie en permanence plusieurs threads en attente sur `pthread_mutex_unlock(3posix)`_ et que notre thread ne soit jamais sélectionné par le système lorsque le thread précédent termine sa section critique. - - -.. rubric:: Footnotes - -.. [#fexemple] Le programme complet est accessible via :download:`/Threads/S5-src/pthread-test.c` - -.. [#fpthreadc] Le programme complet est accessible via :download:`/Threads/S6-src/pthread.c` - -.. .. [#fframes] Il existe différents standards pour le nombre d'images par seconde en cinéma et en télévision. Les plus courants sont 24, 25 et 30 images par seconde. Voir http://en.wikipedia.org/wiki/Frame_rate - -.. [#finterrupts] De nombreux processeurs supportent plusieurs signaux d'interruption différents. Dans le cadre de ce cours, nous nous limiterons à l'utilisation d'un seul signal de ce type. - -.. [#fman2] Les appels systèmes sont décrits dans la section ``2`` des pages de manuel tandis que la section ``3`` décrit les fonctions de la librairie. - -.. [#fdisable] Certains systèmes d'exploitation utilisent une désactivation parfois partielle des interruptions pour résoudre des problèmes d'exclusion mutuelle qui portent sur quelques instructions à l'intérieur du système d'exploitation lui-même. Il faut cependant noter qu'une désactivation des interruptions peut être particulièrement coûteuse en termes de performances dans un environnement multiprocesseurs. - -.. [#fstaticinit] Linux supporte également la macro ``PTHREAD_MUTEX_INITIALIZER`` qui permet d'initialiser directement un ``pthread_mutex_t`` déclaré comme variable globale. Dans cet exemple, la déclaration aurait été : ``pthread_mutex_t global_mutex=PTHREAD_MUTEX_INITIALIZER;`` et l'appel à `pthread_mutex_init(3posix)`_ aurait été inutile. Comme il s'agit d'une extension spécifique à Linux, il est préférable de ne pas l'utiliser pour garantir la portabilité du code. - -.. [#fphilo] Le programme complet est :download:`/Threads/S6-src/pthread-philo.c` - diff --git a/Theorie/_static b/Theorie/_static deleted file mode 120000 index 7a2b653..0000000 --- a/Theorie/_static +++ /dev/null @@ -1 +0,0 @@ -../_static \ No newline at end of file diff --git a/Theorie/_templates/layout.html b/Theorie/_templates/layout.html deleted file mode 100644 index 289d380..0000000 --- a/Theorie/_templates/layout.html +++ /dev/null @@ -1,4 +0,0 @@ -{% extends "!layout.html" %} -{% block extrahead %} -{% endblock %} - diff --git a/Theorie/bib.rst b/Theorie/bib.rst deleted file mode 100644 index 6514dbd..0000000 --- a/Theorie/bib.rst +++ /dev/null @@ -1,175 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -************* -Bibliographie -************* - -.. [ABS] Cooper, M., `Advanced Bash-Scripting Guide`, 2011, http://tldp.org/LDP/abs/html/ - -.. [AdelsteinLubanovic2007] Adelstein, T., Lubanovic, B., `Linux System Administration`, OReilly, 2007, http://books.google.be/books?id=-jYe2k1p5tIC - -.. .. [Alagarsamy2003] Alagarsamy, K., `Some myths about famous mutual exclusion algorithms`. SIGACT News 34, 3 (September 2003), 94-103. http://doi.acm.org/10.1145/945526.945527 - -.. [Amdahl1967] Amdahl, G., `Validity of the Single-Processor Approach to Achieving Large-Scale Computing Capabilities`, Proc. Am. Federation of Information Processing Societies Conf., AFIPS Press, 1967, pp. 483-485, http://dx.doi.org/10.1145/1465482.1465560 - -.. [Bashar1997] Bashar, N., `Ariane 5: Who Dunnit?`, IEEE Software 14(3): 15–16. May 1997. https://doi.ieeecomputersociety.org/10.1109/MS.1997.589224 - - -.. .. [BryantOHallaron2011] Bryant, R. and O'Hallaron, D., `Computer Systems : A programmer's perspective`, Second Edition, Pearson, 2011, http://www.amazon.com/Computer-Systems-Programmers-Perspective-2nd/dp/0136108040/ref=sr_1_1?s=books&ie=UTF8&qid=1329058781&sr=1-1 - - -.. [C99] http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf - -.. .. [Card+1994] Card, R., Ts’o, T., Tweedie, S, `Design and implementation of the second extended filesystem`. Proceedings of the First Dutch International Symposium on Linux. ISBN 90-367-0385-9. http://web.mit.edu/tytso/www/linux/ext2intro.html - -.. [Cooper2011] Cooper, M., `Advanced Bash-Scripting Guide`, http://tldp.org/LDP/abs/html/, 2011 - -.. .. [Courtois+1971] Courtois, P., Heymans, F. and Parnas, D., `Concurrent control with “readers†and “writersâ€`. Commun. ACM 14, 10 (October 1971), 667-668. http://doi.acm.org/10.1145/362759.362813 - - -.. [CPP] C preprocessor manual, http://gcc.gnu.org/onlinedocs/cpp/ - -.. [Dijkstra1965b] Dijkstra, E., `Cooperating sequential processes`, 1965, http://www.cs.utexas.edu/users/EWD/transcriptions/EWD01xx/EWD123.html - -.. [Dijkstra1965] Dijkstra, E., `Solution of a problem in concurrent programming control`. Commun. ACM 8, 9 (September 1965), 569 http://doi.acm.org/10.1145/365559.365617 - -.. .. [Dijkstra1968] Dijkstra, E., `Go To Statement Considered Harmful`, Communications of the ACM, 11, March 1968, http://www.cs.utexas.edu/~EWD/transcriptions/EWD02xx/EWD215.html Voir aussi [Tribble2005]_ - -.. [Downey2008] Downey, A., `The Little Book of Semaphores`, Second Edition, Green Tea Press, 2008, https://greenteapress.com/wp/semaphores/ - -.. .. [Drepper2007] Drepper, U., `What every programmer should know about memory`, 2007, http://www.akkadia.org/drepper/cpumemory.pdf - -.. [DrepperMolnar2005] Drepper, U., Molnar, I., `The Native POSIX Thread Library for Linux`, http://www.akkadia.org/drepper/nptl-design.pdf - -.. [Goldberg1991] Goldberg, D., `What every computer scientist should know about floating-point arithmetic`. ACM Comput. Surv. 23, 1 (March 1991), 5-48. http://doi.acm.org/10.1145/103162.103163 ou http://www.validlab.com/goldberg/paper.pdf - - -.. [Gove2011] Gove, D., `Multicore Application Programming for Windows, Linux and Oracle Solaris`, Addison-Wesley, 2011, http://books.google.be/books?id=NF-C2ZQZXekC - -.. .. [GNUMake] http://www.gnu.org/software/make/manual/make.html - -.. [GNUPTH] Engelschall, R., `GNU Portable Threads`, http://www.gnu.org/software/pth/ - -.. [Graham+1982] Graham, S., Kessler, P. and Mckusick, M., `Gprof: A call graph execution profiler`. SIGPLAN Not. 17, 6 (June 1982), 120-126. http://doi.acm.org/10.1145/872726.806987 - -.. .. [HennessyPatterson] Hennessy, J. and Patterson, D., `Computer Architecture: A Quantitative Approach`, Morgan Kauffmann, http://books.google.be/books?id=gQ-fSqbLfFoC - -.. .. [HP] HP, `Memory technology evolution: an overview of system memory technologies`, http://h20000.www2.hp.com/bc/docs/support/SupportManual/c00256987/c00256987.pdf - -.. .. [Hyde2010] Hyde, R., `The Art of Assembly Language`, 2nd edition, No Starch Press, http://webster.cs.ucr.edu/AoA/Linux/HTML/AoATOC.html - -.. [IA32] intel, `Intel® 64 and IA-32 Architectures : Software Developer’s Manual`, Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B and 3C, December 2011, http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-manual-325462.pdf - -.. [Kamp2011] Kamp, P., `The Most Expensive One-byte Mistake`, ACM Queue, July 2011, http://queue.acm.org/detail.cfm?id=2010365 - -.. [Kerrisk2010] Kerrisk, M., `The Linux Programming Interface`, No Starch Press, 2010, http://my.safaribooksonline.com/book/programming/linux/9781593272203 - -.. [Kernighan] Kernighan, B., `Programming in C - A Tutorial`, http://cm.bell-labs.com/cm/cs/who/dmr/ctut.pdf - -.. [KernighanRitchie1998] Kernighan, B., and Ritchie, D., `The C programming language, second edition`, Addison Wesley, 1998, http://cm.bell-labs.com/cm/cs/cbook/ - -.. [King2008] King, K., `C programming : a modern approach`, W. W. Norton & company, 2008 - -.. [Krakowiak2011] Krakowiak, S., `Le modele d'architecture de von Neumann`, http://interstices.info/le-modele-darchitecture-de-von-neumann - -.. [Leroy] Leroy, X., `The LinuxThreads library`, http://pauillac.inria.fr/~xleroy/linuxthreads/ - -.. [McKenney2005] McKenney, P., `Memory Ordering in Modern Microprocessors, Part I`, Linux Journal, August 2005, http://www.linuxjournal.com/article/8211 - -.. .. [Mecklenburg+2004] Mechklenburg, R., Mecklenburg, R. W., Oram, A., `Managing projects with GNU make`, O'Reilly, 2004, http://books.google.be/books?id=rL4GthWj9kcC - -.. [Mitchell+2001] Mitchell, M., Oldham, J. and Samuel, A., `Advanced Linux Programming`, New Riders Publishing, ISBN 0-7357-1043-0, June 2001, http://www.advancedlinuxprogramming.com/ - - -.. [Nemeth+2010] Nemeth, E., Hein, T., Snyder, G., Whaley, B., `Unix and Linux System Administration Handbook`, Prentice Hall, 2010, http://books.google.be/books?id=rgFIAnLjb1wC - -.. .. [Peterson1981] Peterson, G., `Myths about the mutual exclusion problem`, Inform. Process. Lett. 12 (3) (1981) 115-116 - -.. [Stallings2011] Stallings, W., `Operating Systems : Internals and Design Principles`, Prentice Hall, 2011, http://williamstallings.com/OperatingSystems/index.html - -.. [StevensRago2008] Stevens, R., and Rago, S., `Advanced Programming in the UNIX Environment`, Addison-Wesley, 2008, http://books.google.be/books?id=wHI8PgAACAAJ - -.. [Stokes2008] Stokes, J., `Classic.Ars: Understanding Moore's Law`, http://arstechnica.com/hardware/news/2008/09/moore.ars - -.. [Tanenbaum+2009] Tanenbaum, A., Woodhull, A., `Operating systems: design and implementation`, Prentice Hall, 2009, https://www.pearson.com/us/higher-education/program/Tanenbaum-Operating-Systems-Design-and-Implementation-3rd-Edition/PGM228096.html - - -.. .. [Tribble2005] Tribble, D., `Go To Statement Considered Harmful: A Retrospective`, 2005, http://david.tribble.com/text/goto.html - -.. [Walls2006] Walls, D., `How to Use the restrict Qualifier in C`. Sun Microsystems, 2006, http://developers.sun.com/solaris/articles/cc_restrict.html - -.. spelling:: - - Cooper - Adelstein - Lubanovic - OReilly - Amdahl - Proc - Am - Federation - of - Processing - Societies - Press - pp - Bashar - May - doi - Cooper - preprocessor - manual - Dijkstra - September - Downey - Edition - Tea - Drepper - Molnar - Goldberg - Surv - March - Gove - Engelschall - Graham - Kessler - Mckusick - Not - intel - Combined - December - Kamp - July - Kerrisk - Starch - Press - Kernighan - Ritchie - Norton - company - Krakowiak - Leroy - August - Mitchell - Oldham - Samuel - New - Riders - Publishing - June - Nemeth - Snyder - Whaley - Stallings - Stevens - Rago - Addison - Wesley - Stokes - Tanenbaum - Woodhull - Prentice - Walls - Microsystems diff --git a/Theorie/conf.py b/Theorie/conf.py deleted file mode 100644 index ddd3ce4..0000000 --- a/Theorie/conf.py +++ /dev/null @@ -1,323 +0,0 @@ -# -*- coding: utf-8 -*- -# -# SINF1252 documentation build configuration file, created by -# sphinx-quickstart on Tue Jan 3 16:17:09 2012. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.todo', 'sphinx.ext.ifconfig', 'sphinx.ext.mathjax', 'sphinx.ext.intersphinx', 'sphinxcontrib.spelling' ] - - -#spelling -spelling_lang='fr' -spelling_word_list_filename='../dict.txt' - -# ucomment -#sys.path.append(os.path.abspath(os.getcwd())) -#extensions.append('ucomment-extension') -#html_translator_class = 'ucomment-extension.ucomment_html_translator' - -# Point to your Django application, which contains all -# the other settings required. -#ucomment = {} -#ucomment['django_application_path'] = '/home/cpaasch/sinf1252/ucommentsite/ucommentapp' - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -source_encoding = 'utf-8' -#source_encoding = 'latin1' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'LEPL1503 : Introduction au langage C' -copyright = u'2013, 2019, O. Bonaventure, G. Detal, C. Paasch' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '2019' -# The full version, including alpha/beta/rc tags. -release = '2019' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -language = 'fr' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build/**', '.#*', '**/.#**', 'Exercices/QCM/**', "**.BASE.**", "**.REMOTE.**", "**.LOCAL.**", "**.BACKUP.**", "MemoireVirtuelle/**", "Assembleur/**", "Fichiers/fichiers-signaux.rst", "Threads/processus.rst" ] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -rst_epilog = """ -.. include:: /links.rst -.. include:: /man_links.rst -.. include:: /incl_links.rst -""" - -# Intersphinx -intersphinx_mapping = {'theorie': ('https://sites.uclouvain.be/SystInfo/notes/Theorie/html/', None), 'outils': ('https://sites.uclouvain.be/SystInfo/notes/Outils/html/', None), 'exercices': ('https://sites.uclouvain.be/SystInfo/notes/Exercices/html/', None)} - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'haiku' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# "<project> v<release> documentation". -html_title = u'Langage C' - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a <link> tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'SINF1252doc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -'papersize': 'a4paper', - -# The font size ('10pt', '11pt' or '12pt'). -'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', - 'preamble': ''' - \\hypersetup{unicode=true} - ''' -# See https://tex.stackexchange.com/questions/120002/how-to-modify-the-default-latex-package-parameters-of-sphinx -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'LEPL1503.tex', u'LEPL1503 : Introduction au langage C', - u'O. Bonaventure, G. Detal, C. Paasch', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'sinf1252', u'SINF1252', - [u'O. Bonaventure, G. Detal, C. Paasch'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'SINF1252', u'SINF1252 : Systèmes informatiques', - u'O. Bonaventure, G. Detal, C. Paasch', 'SINF1252', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' - - -# -- Options for Epub output --------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = u'LEPL1503 : Introduction au langage C' -epub_author = u'O. Bonaventure, G. Detal, C. Paasch' -epub_publisher = u'O. Bonaventure, G. Detal, C. Paasch' -epub_copyright = u'2013, 2019, O. Bonaventure, G. Detal, C. Paasch' - -# The language of the text. It defaults to the language option -# or en if the language is not set. -#epub_language = '' - -# The scheme of the identifier. Typical schemes are ISBN or URL. -#epub_scheme = '' - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -#epub_identifier = '' - -# A unique identification for the text. -#epub_uid = '' - -# A tuple containing the cover image and cover page html template filenames. -#epub_cover = () - -# HTML files that should be inserted before the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_pre_files = [] - -# HTML files shat should be inserted after the pages created by sphinx. -# The format is a list of tuples containing the path and title. -#epub_post_files = [] - -# A list of files that should not be packed into the epub file. -#epub_exclude_files = [] - -# The depth of the table of contents in toc.ncx. -#epub_tocdepth = 3 - -# Allow duplicate toc entries. -#epub_tocdup = True - -#try: -# open('.staff','r') -# tags.add('staff') -# print "Build as staff member" -#except: -# print "Build as student" - -mathjax_path="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML" diff --git a/Theorie/glossaire.rst b/Theorie/glossaire.rst deleted file mode 100644 index 084fe24..0000000 --- a/Theorie/glossaire.rst +++ /dev/null @@ -1,408 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012, 2019 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -********* -Glossaire -********* - -.. glossary:: - :sorted: - - CPU - Central Processing Unit - - C - Langage de programmation permettant d'interagir facilement avec le matériel. - - RISC - Reduced Instruction Set Computer - - CISC - Complex Instruction Set Computer - - x86 - Famille de microprocesseurs développée par intel_. Le 8086 est le premier processeur de cette famille. Ses successeurs (286, 386, Pentium, Centrino, Xeon, ...) sont restés compatibles avec lui tout en introduisant chacun de nouvelles instructions et de nouvelles fonctionnalités. Aujourd'hui, plusieurs fabricants développent des processeurs qui supportent le même langage machine que les processeurs de cette famille. - - Unix - Système d'exploitation développé initialement par AT&T Bell Labs. - - gcc - Compilateur pour la langage C développé par un groupe de volontaires qui est diffusé depuis http://gcc.gnu.org gcc est utilisé dans plusieurs systèmes d'exploitation de type Unix, comme MacOS, Linux ou FreeBSD. Il existe d'autres compilateurs C. Une liste non-exhaustive est maintenue sur http://en.wikipedia.org/wiki/List_of_compilers#C_compilers - - llvm - Ensemble de compilateurs pour différents langages de programmation et différents processeurs développé par un groupe de volontaire. llvm est distrubé depuis http://llvm.org/ - - cpp - préprocesseur - Le préprocesseur C est un programme de manipulation de texte sur base de macros qui est utilisé avec le compilateur. Le préprocesseur de :term:`gcc` est http://gcc.gnu.org/onlinedocs/cpp/ - - microprocesseur - processeur - Unité centrale de l'ordinateur qui exécute les instructions en langage machine et interagit avec la mémoire. - - CPU - Central Processing Unit. Voir :term:`microprocesseur` - - stdin - Entrée standard sur un système Unix (par défaut le clavier) - - stdout - Sortie standard sur un système Unix (par défaut l'écran) - - stderr - Sortie d'erreur standard sur un système Unix (par défaut l'écran) - - X11 - Interface graphique développée au MIT pour Unix. Voir https://en.wikipedia.org/wiki/X_Window_System - - Gnome - Environnement graphique utilisé par de nombreuses distributions Linux. Voir https://en.wikipedia.org/wiki/GNOME - - shell - Interpréteur de commandes sur un système Unix. `bash(1)`_ est l'interpréteur de commandes le plus utilisé de nos jours. - - bit - Plus petite unité d'information. Par convention, un bit peut prendre les valeurs ``0`` et ``1``. - - nibble - Un bloc de quatre bits consécutifs. - - byte - octet - Un bloc de huit bits consécutifs. - - BSD Unix - Variante de Unix développée à l'Université de Californie à Berkeley. - - FreeBSD - Variante de BSD Unix disponible depuis http://www.freebsd.org - - OpenBSD - Variante de BSD Unix disponible depuis http://www.openbsd.org - - MacOS - Système d'exploitation développé par Apple Inc. comprenant de nombreux composantes provenant de :term:`FreeBSD`. - - Minix - Famille de noyaux de systèmes d'exploitation inspiré de :term:`Unix` développée notamment par :term:`Andrew Tanenbaum`. Voir http://www.minix3.org pour la dernière version de Minix. - - Linux - Noyau de système d'exploitation compatible Unix développé initialement par Linus Torvalds. - - Solaris - Système d'exploitation compatible Unix développé par Sun Microsystems et repris par Oracle. La version open-source, OpenSolaris, est disponible depuis http://www.opensolaris.org - - Application Programming Interface - API - Un API est généralement un ensemble de fonctions et de structures de données qui constitue l'interface entre deux composants logiciels qui doivent collaborer. Par exemple, l'API du noyau d'un système Unix est composée de ses appels systèmes. Ceux-ci sont décrits dans la section 2 des pages de manuel (voir `intro(2)`_). - - GNU is not Unix - GNU - GNU est un projet open-source de la Free Software Foundation qui a permis le développement d'un grand nombre d'utilitaires utilisés par les systèmes d'exploitation de la famille Unix actuellement. - - GNU/Linux - Nom générique donné à un système d'exploitation utilisant les utilitaires :term:`GNU` notamment et le noyau :term:`Linux` . - - Andrew Tanenbaum - Andrew Tanenbaum est professeur à la VU d'Amsterdam. - - Linus Torvalds - Linus Torvalds est le créateur et le mainteneur principal du noyau :term:`Linux`. - - Aqua - Aqua est une interface graphique spécifique à :term:`MacOS`. Voir https://en.wikipedia.org/wiki/Aqua_(user_interface) - - pipe - Mécanisme de redirection des entrées-sorties permettant de relier la sortie standard d'un programme à l'entrée standard d'un autre pour créer des pipelines de traitement. - - assembleur - Programme permettant de convertir un programme écrit en langage d'assemblage dans le langage machine correspondant à un processeur donné. - - warning - Message d'avertissement émis par un compilateur C. Un :term:`warning` n'empêche pas la compilation et la génération du code objet. Cependant, la plupart des warnings indiquent un problème dans le programme compilé et il est nettement préférable de les supprimer du code. - - bit de poids fort - Par convention, le bit le plus à gauche d'une séquence de n bits. - - bit de poids faible - Par convention, bit le plus à droite d'une séquence de n bits. - - simple précision - Représentation de nombre réels en virgule flottante (type ``float`` en C). La norme `IEEE754 <http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=4610933>`_ définit le format de ces nombres sur 32 bits. - - double précision - Représentation de nombre réels en virgule flottante (type ``double`` en C). La norme `IEEE754 <http://ieeexplore.ieee.org/xpl/mostRecentIssue.jsp?punumber=4610933>`_ définit le format de ces nombres sur 64 bits. - - buffer overflow - Erreur dans laquelle un programme informatique cherche à stocker plus de données en mémoire que la capacité de la zone réservée en mémoire. Donne généralement lieu à des problèmes, parfois graves, de sécurité. https://en.wikipedia.org/wiki/Buffer_overflow - - garbage collector - Algorithme permettant de libérer la mémoire qui n'est plus utilisée notamment dans des langages tels que Java - - pointeur - Adresse d'une variable ou fonction en mémoire. - - adresse - Position d'un donnée en mémoire. - - C99 - Standard international définissant le langage C [C99]_ - - fichier header - Fichier contenant des signatures de fonctions, des déclarations de types de données, des variables globales, permettant d'utiliser une librairie ou un API. - - segmentation fault - Erreur à l'exécution à compléter - - NOT - négation - Opération binaire logique. - - AND - conjonction logique - Opération binaire logique. - - OR - disjonction logique - Opération binaire logique. - - XOR - ou exclusif - Opération binaire logique. - - libc - Librairie C standard. Contient de nombreuses fonctions utilisables par les programmes écrits en langage C et décrites dans la troisième section des pages de manuel. Linux utilise la librairie GNU `glibc <http://www.gnu.org/software/libc/manual/>`_ qui contient de nombreuses extensions par rapport à la libraire standard. - - FSF - Free Software Foundation, http://www.fsf.org - - portée - Zone d'un programme dans laquelle une variable est déclarée. - - portée locale - Une variable ayant une portée locale est accessible uniquement dans le bloc dans lequelle elle est définie. - - portée globale - Une variable ayant une portée globale est accessible dans tout le programme. - - debugger - Logiciel - - text - segment text - Partie de la mémoire d'un programme contenant les instructions en langage machine à exécuter. - - segment des données initialisées - Partie de la mémoire d'un programme contenant les données initialisées dans le code source du programme ainsi que les chaînes de caractères. - - segment des données non-initialisées - Partie de la mémoire d'un programme contenant les données (tableaux notamment) qui sont déclarés mais pas explicitement initialisés dans le code source du programme. - - heap - tas - Partie de la mémoire d'un programme gérée par `malloc(3)`_ et `free(3)`_. - - stack - pile - Partie de la mémoire d'un programme contenant les variables locales et adresses de retour des fonctions durant leur exécution. - - memory leak - Fuite de mémoire. Erreur concernant un programme qui a alloué de la mémoire avec `malloc(3)`_ et ne l'utilise plus sans avoir fait appel à `free(3)`_ - - processus - Ensemble cohérent d'instructions utilisant une partie de la mémoire, initié par le système d'exploitation et exécuté sur un des processeurs du système. Le système d'exploitation libère les ressources qui lui sont allouées à la fin de son exécution. - - pid - process identifier - identifiant de processus. Sous Unix, chaque processus est identifié par un entier unique. Cet identifiant sert de clé d'accès à la :term:`table des processus`. Voir `getpid(2)`_ pour récupérer l'identifiant du processus courant. - - table des processus - Table contenant les identifiants (:term:`pid`) de tous les processus qui s'exécutent à ce moment sur un système Unix. Outre les identifiants, cette table contient de nombreuses informations relatives à chaque :term:`processus`. Voir également :term:`/proc` - - /proc - Sous Linux, représentation de l'information stockée dans la :term:`table des processus` sous la forme d'une arborescence directement accessible via les commandes du :term:`shell`. Voir `proc(5)`_ - - signal - mécanisme permettant la communication entre processus. Utilisé notamment pour arrêter un processus via la commande `kill(1)`_ - - von Neumann - Un des inventaires des premiers ordinateurs. A défini l'architecture de base des premiers ordinateurs qui est maintenant connue comme le modèle de von Neumann [Krakowiak2011]_ - - mémoire - Dispositif électronique permettant de stocker - - SRAM - static RAM - Un des deux principaux types de mémoire. Dans une SRAM, l'information est mémorisée comme la présence ou l'absence d'un courant électrique. Les mémoires SRAM sont généralement assez rapides mais de faible capacité. Elles sont souvent utilisées pour construire des mémoires caches. - - DRAM - dynamic RAM - Un des deux principaux types de mémoire. Dans une DRAM, l'information est mémorisée comme la présence ou l'absence de charge dans un minuscule condensateur. Les mémoires DRAM sont plus lentes que les :term:`SRAM` mais ont une plus grande capacité. - - RAM - Random Access Memory - Mémoire à accès aléatoire. Mémoire permettant au processeur d'accéder à n'importe quelle donnée en connaissant son adresse. Voir :term:`DRAM` et :term:`SRAM`. - - - registre - Unité de mémoire intégrée au processeur. Les registres sont utilisés comme source ou destination pour la plupart des opérations effectuées par un processeur. - - hiérarchie de mémoire - Ensemble des mémoires utilisées sur un ordinateur. Depuis les registres jusqu'à la mémoire virtuelle en passant par la mémoire centrale et les mémoires caches. - - mémoire cache - Mémoire rapide de faible capacité. La mémoire cache peut stocker des données provenant de mémoires de plus grande capacité mais qui sont plus lentes, et exploite le :term:`principe de localité` en stockant de manière transparente les instructions et les données les plus récemment utilisées. Elle fait office d'interface entre le processeur et la mémoire principale et toutes les demandes d'accès à la mémoire principale passent par la mémoire cache, ce qui permet d'améliorer les performances de nombreux systèmes informatiques. - - eip - pc - compteur de programme - instruction pointer - Registre spécial du processeur qui contient en permanence l'adresse de l'instruction en cours d'exécution. Le contenu de ce registre est incrémenté après chaque instruction et modifié par les instructions de saut. - - makefile - à compléter - - fichier - à compléter - - fichier objet - à compléter - - linker - à compléter - - errno - à compléter - - loi de Moore - à compléter - - kHz - à compléter - - MHz - à compléter - - GHz - à compléter - - MIPS - Million d'instructions par seconde - - benchmark - à compléter - - multi-coeurs - à compléter - - multithreadé - Programme utilisant plusieurs threads. - - section critique - Partie de programme ne pouvant pas être exécutée simultanément par deux threads différents. - - exclusion mutuelle - à compléter - - sûreté - safety - à compléter - - liveness - vivacité - à compléter - - multitâche - multitasking - à compléter - - contexte - à compléter - - changement de contexte - à compléter - - interruption - à compléter - - scheduler - à compléter - - round-robin - à compléter - - livelock - à compléter - - opération atomique - à compléter - - deadlock - à compléter - - mutex - à compléter - - appel système - à compléter - - appel système bloquant - à compléter - - sémaphore - à compléter - - thread-safe - à compléter - - loi de Amdahl - à compléter - - static library - librairie statique - à compléter - - shared library - librairie dynamique - librairie partagée - à compléter - - descripteur de fichier - à compléter - - répertoire - à compléter - - répertoire courant - à compléter - - offset pointer - à compléter - - little endian - à compléter - - big endian - à compléter - - lien symbolique - à compléter - - appel système lent - à compléter - - - SSD - Solid State Drive - Système de stockage de données s'appuyant uniquement sur de la mémoire flash. - - root - à compléter - - userid - à compléter - - Unicode - Norme d'encodage de caractères supportant l'ensemble des langues écrites, voir notamment https://en.wikipedia.org/wiki/Unicode diff --git a/Theorie/incl_links.rst b/Theorie/incl_links.rst deleted file mode 100644 index 87441f3..0000000 --- a/Theorie/incl_links.rst +++ /dev/null @@ -1,918 +0,0 @@ -.. _`mntent.h` : http://sites.uclouvain.be/SystInfo/usr/include/mntent.h.html -.. _`stdint.h` : http://sites.uclouvain.be/SystInfo/usr/include/stdint.h.html -.. _`getopt.h` : http://sites.uclouvain.be/SystInfo/usr/include/getopt.h.html -.. _`bmmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/bmmintrin.h.html -.. _`pmmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/pmmintrin.h.html -.. _`pthread.h` : http://sites.uclouvain.be/SystInfo/usr/include/pthread.h.html -.. _`aliases.h` : http://sites.uclouvain.be/SystInfo/usr/include/aliases.h.html -.. _`gshadow.h` : http://sites.uclouvain.be/SystInfo/usr/include/gshadow.h.html -.. _`mm_malloc.h` : http://sites.uclouvain.be/SystInfo/usr/include/mm_malloc.h.html -.. _`link.h` : http://sites.uclouvain.be/SystInfo/usr/include/link.h.html -.. _`immintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/immintrin.h.html -.. _`grp.h` : http://sites.uclouvain.be/SystInfo/usr/include/grp.h.html -.. _`libio.h` : http://sites.uclouvain.be/SystInfo/usr/include/libio.h.html -.. _`cpio.h` : http://sites.uclouvain.be/SystInfo/usr/include/cpio.h.html -.. _`xmmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/xmmintrin.h.html -.. _`memory.h` : http://sites.uclouvain.be/SystInfo/usr/include/memory.h.html -.. _`nmmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/nmmintrin.h.html -.. _`locale.h` : http://sites.uclouvain.be/SystInfo/usr/include/locale.h.html -.. _`aio.h` : http://sites.uclouvain.be/SystInfo/usr/include/aio.h.html -.. _`alloca.h` : http://sites.uclouvain.be/SystInfo/usr/include/alloca.h.html -.. _`ctype.h` : http://sites.uclouvain.be/SystInfo/usr/include/ctype.h.html -.. _`tar.h` : http://sites.uclouvain.be/SystInfo/usr/include/tar.h.html -.. _`inttypes.h` : http://sites.uclouvain.be/SystInfo/usr/include/inttypes.h.html -.. _`err.h` : http://sites.uclouvain.be/SystInfo/usr/include/err.h.html -.. _`x86intrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/x86intrin.h.html -.. _`paths.h` : http://sites.uclouvain.be/SystInfo/usr/include/paths.h.html -.. _`malloc.h` : http://sites.uclouvain.be/SystInfo/usr/include/malloc.h.html -.. _`syscall.h` : http://sites.uclouvain.be/SystInfo/usr/include/syscall.h.html -.. _`dirent.h` : http://sites.uclouvain.be/SystInfo/usr/include/dirent.h.html -.. _`float.h` : http://sites.uclouvain.be/SystInfo/usr/include/float.h.html -.. _`wmmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/wmmintrin.h.html -.. _`_G_config.h` : http://sites.uclouvain.be/SystInfo/usr/include/_G_config.h.html -.. _`ftw.h` : http://sites.uclouvain.be/SystInfo/usr/include/ftw.h.html -.. _`fnmatch.h` : http://sites.uclouvain.be/SystInfo/usr/include/fnmatch.h.html -.. _`libgen.h` : http://sites.uclouvain.be/SystInfo/usr/include/libgen.h.html -.. _`byteswap.h` : http://sites.uclouvain.be/SystInfo/usr/include/byteswap.h.html -.. _`time.h` : http://sites.uclouvain.be/SystInfo/usr/include/time.h.html -.. _`crypt.h` : http://sites.uclouvain.be/SystInfo/usr/include/crypt.h.html -.. _`cpuid.h` : http://sites.uclouvain.be/SystInfo/usr/include/cpuid.h.html -.. _`regexp.h` : http://sites.uclouvain.be/SystInfo/usr/include/regexp.h.html -.. _`stdio_ext.h` : http://sites.uclouvain.be/SystInfo/usr/include/stdio_ext.h.html -.. _`wchar.h` : http://sites.uclouvain.be/SystInfo/usr/include/wchar.h.html -.. _`netdb.h` : http://sites.uclouvain.be/SystInfo/usr/include/netdb.h.html -.. _`fmtmsg.h` : http://sites.uclouvain.be/SystInfo/usr/include/fmtmsg.h.html -.. _`monetary.h` : http://sites.uclouvain.be/SystInfo/usr/include/monetary.h.html -.. _`ttyent.h` : http://sites.uclouvain.be/SystInfo/usr/include/ttyent.h.html -.. _`nss.h` : http://sites.uclouvain.be/SystInfo/usr/include/nss.h.html -.. _`sgtty.h` : http://sites.uclouvain.be/SystInfo/usr/include/sgtty.h.html -.. _`values.h` : http://sites.uclouvain.be/SystInfo/usr/include/values.h.html -.. _`semaphore.h` : http://sites.uclouvain.be/SystInfo/usr/include/semaphore.h.html -.. _`ar.h` : http://sites.uclouvain.be/SystInfo/usr/include/ar.h.html -.. _`termios.h` : http://sites.uclouvain.be/SystInfo/usr/include/termios.h.html -.. _`shadow.h` : http://sites.uclouvain.be/SystInfo/usr/include/shadow.h.html -.. _`nl_types.h` : http://sites.uclouvain.be/SystInfo/usr/include/nl_types.h.html -.. _`stdio.h` : http://sites.uclouvain.be/SystInfo/usr/include/stdio.h.html -.. _`strings.h` : http://sites.uclouvain.be/SystInfo/usr/include/strings.h.html -.. _`iso646.h` : http://sites.uclouvain.be/SystInfo/usr/include/iso646.h.html -.. _`tgmath.h` : http://sites.uclouvain.be/SystInfo/usr/include/tgmath.h.html -.. _`elf.h` : http://sites.uclouvain.be/SystInfo/usr/include/elf.h.html -.. _`error.h` : http://sites.uclouvain.be/SystInfo/usr/include/error.h.html -.. _`search.h` : http://sites.uclouvain.be/SystInfo/usr/include/search.h.html -.. _`pwd.h` : http://sites.uclouvain.be/SystInfo/usr/include/pwd.h.html -.. _`dlfcn.h` : http://sites.uclouvain.be/SystInfo/usr/include/dlfcn.h.html -.. _`stdarg.h` : http://sites.uclouvain.be/SystInfo/usr/include/stdarg.h.html -.. _`setjmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/setjmp.h.html -.. _`lastlog.h` : http://sites.uclouvain.be/SystInfo/usr/include/lastlog.h.html -.. _`execinfo.h` : http://sites.uclouvain.be/SystInfo/usr/include/execinfo.h.html -.. _`termio.h` : http://sites.uclouvain.be/SystInfo/usr/include/termio.h.html -.. _`argp.h` : http://sites.uclouvain.be/SystInfo/usr/include/argp.h.html -.. _`stab.h` : http://sites.uclouvain.be/SystInfo/usr/include/stab.h.html -.. _`assert.h` : http://sites.uclouvain.be/SystInfo/usr/include/assert.h.html -.. _`ammintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/ammintrin.h.html -.. _`obstack.h` : http://sites.uclouvain.be/SystInfo/usr/include/obstack.h.html -.. _`ucontext.h` : http://sites.uclouvain.be/SystInfo/usr/include/ucontext.h.html -.. _`avxintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/avxintrin.h.html -.. _`emmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/emmintrin.h.html -.. _`fpu_control.h` : http://sites.uclouvain.be/SystInfo/usr/include/fpu_control.h.html -.. _`mmintrin-common.h` : http://sites.uclouvain.be/SystInfo/usr/include/mmintrin-common.h.html -.. _`argz.h` : http://sites.uclouvain.be/SystInfo/usr/include/argz.h.html -.. _`stdlib.h` : http://sites.uclouvain.be/SystInfo/usr/include/stdlib.h.html -.. _`signal.h` : http://sites.uclouvain.be/SystInfo/usr/include/signal.h.html -.. _`varargs.h` : http://sites.uclouvain.be/SystInfo/usr/include/varargs.h.html -.. _`mcheck.h` : http://sites.uclouvain.be/SystInfo/usr/include/mcheck.h.html -.. _`syslog.h` : http://sites.uclouvain.be/SystInfo/usr/include/syslog.h.html -.. _`mm3dnow.h` : http://sites.uclouvain.be/SystInfo/usr/include/mm3dnow.h.html -.. _`unwind.h` : http://sites.uclouvain.be/SystInfo/usr/include/unwind.h.html -.. _`wait.h` : http://sites.uclouvain.be/SystInfo/usr/include/wait.h.html -.. _`tmmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/tmmintrin.h.html -.. _`gnu-versions.h` : http://sites.uclouvain.be/SystInfo/usr/include/gnu-versions.h.html -.. _`math.h` : http://sites.uclouvain.be/SystInfo/usr/include/math.h.html -.. _`poll.h` : http://sites.uclouvain.be/SystInfo/usr/include/poll.h.html -.. _`ustat.h` : http://sites.uclouvain.be/SystInfo/usr/include/ustat.h.html -.. _`complex.h` : http://sites.uclouvain.be/SystInfo/usr/include/complex.h.html -.. _`utime.h` : http://sites.uclouvain.be/SystInfo/usr/include/utime.h.html -.. _`clif.h` : http://sites.uclouvain.be/SystInfo/usr/include/clif.h.html -.. _`ulimit.h` : http://sites.uclouvain.be/SystInfo/usr/include/ulimit.h.html -.. _`fstab.h` : http://sites.uclouvain.be/SystInfo/usr/include/fstab.h.html -.. _`stdbool.h` : http://sites.uclouvain.be/SystInfo/usr/include/stdbool.h.html -.. _`fcntl.h` : http://sites.uclouvain.be/SystInfo/usr/include/fcntl.h.html -.. _`sysexits.h` : http://sites.uclouvain.be/SystInfo/usr/include/sysexits.h.html -.. _`glob.h` : http://sites.uclouvain.be/SystInfo/usr/include/glob.h.html -.. _`spawn.h` : http://sites.uclouvain.be/SystInfo/usr/include/spawn.h.html -.. _`wctype.h` : http://sites.uclouvain.be/SystInfo/usr/include/wctype.h.html -.. _`utmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/utmp.h.html -.. _`unistd.h` : http://sites.uclouvain.be/SystInfo/usr/include/unistd.h.html -.. _`fenv.h` : http://sites.uclouvain.be/SystInfo/usr/include/fenv.h.html -.. _`wordexp.h` : http://sites.uclouvain.be/SystInfo/usr/include/wordexp.h.html -.. _`errno.h` : http://sites.uclouvain.be/SystInfo/usr/include/errno.h.html -.. _`stddef.h` : http://sites.uclouvain.be/SystInfo/usr/include/stddef.h.html -.. _`xlocale.h` : http://sites.uclouvain.be/SystInfo/usr/include/xlocale.h.html -.. _`a.out.h` : http://sites.uclouvain.be/SystInfo/usr/include/a.out.h.html -.. _`langinfo.h` : http://sites.uclouvain.be/SystInfo/usr/include/langinfo.h.html -.. _`pty.h` : http://sites.uclouvain.be/SystInfo/usr/include/pty.h.html -.. _`envz.h` : http://sites.uclouvain.be/SystInfo/usr/include/envz.h.html -.. _`utmpx.h` : http://sites.uclouvain.be/SystInfo/usr/include/utmpx.h.html -.. _`omp.h` : http://sites.uclouvain.be/SystInfo/usr/include/omp.h.html -.. _`libintl.h` : http://sites.uclouvain.be/SystInfo/usr/include/libintl.h.html -.. _`ifaddrs.h` : http://sites.uclouvain.be/SystInfo/usr/include/ifaddrs.h.html -.. _`mqueue.h` : http://sites.uclouvain.be/SystInfo/usr/include/mqueue.h.html -.. _`fts.h` : http://sites.uclouvain.be/SystInfo/usr/include/fts.h.html -.. _`mmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/mmintrin.h.html -.. _`smmintrin.h` : http://sites.uclouvain.be/SystInfo/usr/include/smmintrin.h.html -.. _`endian.h` : http://sites.uclouvain.be/SystInfo/usr/include/endian.h.html -.. _`resolv.h` : http://sites.uclouvain.be/SystInfo/usr/include/resolv.h.html -.. _`cross-stdarg.h` : http://sites.uclouvain.be/SystInfo/usr/include/cross-stdarg.h.html -.. _`stdfix.h` : http://sites.uclouvain.be/SystInfo/usr/include/stdfix.h.html -.. _`regex.h` : http://sites.uclouvain.be/SystInfo/usr/include/regex.h.html -.. _`features.h` : http://sites.uclouvain.be/SystInfo/usr/include/features.h.html -.. _`re_comp.h` : http://sites.uclouvain.be/SystInfo/usr/include/re_comp.h.html -.. _`iconv.h` : http://sites.uclouvain.be/SystInfo/usr/include/iconv.h.html -.. _`sched.h` : http://sites.uclouvain.be/SystInfo/usr/include/sched.h.html -.. _`string.h` : http://sites.uclouvain.be/SystInfo/usr/include/string.h.html -.. _`ieee754.h` : http://sites.uclouvain.be/SystInfo/usr/include/ieee754.h.html -.. _`limits.h` : http://sites.uclouvain.be/SystInfo/usr/include/limits.h.html -.. _`gconv.h` : http://sites.uclouvain.be/SystInfo/usr/include/gconv.h.html -.. _`printf.h` : http://sites.uclouvain.be/SystInfo/usr/include/printf.h.html -.. _`thread_db.h` : http://sites.uclouvain.be/SystInfo/usr/include/thread_db.h.html -.. _`stropts.h` : http://sites.uclouvain.be/SystInfo/usr/include/stropts.h.html -.. _`initreq.h` : http://sites.uclouvain.be/SystInfo/usr/include/initreq.h.html -.. _`python2.6/pyconfig.h` : http://sites.uclouvain.be/SystInfo/usr/include/python2.6/pyconfig.h.html -.. _`xen/evtchn.h` : http://sites.uclouvain.be/SystInfo/usr/include/xen/evtchn.h.html -.. _`linux/atm_he.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atm_he.h.html -.. _`linux/atm_zatm.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atm_zatm.h.html -.. _`linux/if_pppol2tp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_pppol2tp.h.html -.. _`linux/baycom.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/baycom.h.html -.. _`linux/sem.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sem.h.html -.. _`linux/if_arcnet.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_arcnet.h.html -.. _`linux/bfs_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/bfs_fs.h.html -.. _`linux/mtio.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/mtio.h.html -.. _`linux/can.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/can.h.html -.. _`linux/nfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfs.h.html -.. _`linux/if_tun.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_tun.h.html -.. _`linux/atm_eni.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atm_eni.h.html -.. _`linux/spi` : http://sites.uclouvain.be/SystInfo/usr/include/linux/spi.html -.. _`linux/dcbnl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dcbnl.h.html -.. _`linux/ncp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ncp.h.html -.. _`linux/dlm.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dlm.h.html -.. _`linux/qnxtypes.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/qnxtypes.h.html -.. _`linux/can` : http://sites.uclouvain.be/SystInfo/usr/include/linux/can.html -.. _`linux/netfilter_arp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_arp.h.html -.. _`linux/veth.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/veth.h.html -.. _`linux/kdev_t.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/kdev_t.h.html -.. _`linux/tc_ematch` : http://sites.uclouvain.be/SystInfo/usr/include/linux/tc_ematch.html -.. _`linux/elf-em.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/elf-em.h.html -.. _`linux/hid.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hid.h.html -.. _`linux/icmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/icmp.h.html -.. _`linux/sunrpc` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sunrpc.html -.. _`linux/cyclades.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cyclades.h.html -.. _`linux/hdlc` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hdlc.html -.. _`linux/net_dropmon.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/net_dropmon.h.html -.. _`linux/mroute.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/mroute.h.html -.. _`linux/in.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/in.h.html -.. _`linux/capi.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/capi.h.html -.. _`linux/pg.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pg.h.html -.. _`linux/atmmpc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmmpc.h.html -.. _`linux/if_arp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_arp.h.html -.. _`linux/netfilter_decnet.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_decnet.h.html -.. _`linux/vt.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/vt.h.html -.. _`linux/futex.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/futex.h.html -.. _`linux/sysctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sysctl.h.html -.. _`linux/atmclip.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmclip.h.html -.. _`linux/ivtv.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ivtv.h.html -.. _`linux/wimax` : http://sites.uclouvain.be/SystInfo/usr/include/linux/wimax.html -.. _`linux/usb` : http://sites.uclouvain.be/SystInfo/usr/include/linux/usb.html -.. _`linux/ipsec.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ipsec.h.html -.. _`linux/msg.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/msg.h.html -.. _`linux/coda_psdev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/coda_psdev.h.html -.. _`linux/dn.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dn.h.html -.. _`linux/sound.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sound.h.html -.. _`linux/tc_act` : http://sites.uclouvain.be/SystInfo/usr/include/linux/tc_act.html -.. _`linux/wimax.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/wimax.h.html -.. _`linux/ip6_tunnel.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ip6_tunnel.h.html -.. _`linux/if_pppox.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_pppox.h.html -.. _`linux/map_to_7segment.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/map_to_7segment.h.html -.. _`linux/kvm_para.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/kvm_para.h.html -.. _`linux/if_ec.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_ec.h.html -.. _`linux/ivtvfb.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ivtvfb.h.html -.. _`linux/atmppp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmppp.h.html -.. _`linux/hdlc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hdlc.h.html -.. _`linux/nfs_mount.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfs_mount.h.html -.. _`linux/blkpg.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/blkpg.h.html -.. _`linux/cramfs_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cramfs_fs.h.html -.. _`linux/if_tunnel.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_tunnel.h.html -.. _`linux/nfs2.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfs2.h.html -.. _`linux/minix_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/minix_fs.h.html -.. _`linux/ip.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ip.h.html -.. _`linux/inet_diag.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/inet_diag.h.html -.. _`linux/socket.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/socket.h.html -.. _`linux/jffs2.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/jffs2.h.html -.. _`linux/virtio_config.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_config.h.html -.. _`linux/i2c.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/i2c.h.html -.. _`linux/apm_bios.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/apm_bios.h.html -.. _`linux/blktrace_api.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/blktrace_api.h.html -.. _`linux/phonet.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/phonet.h.html -.. _`linux/ptrace.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ptrace.h.html -.. _`linux/mempolicy.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/mempolicy.h.html -.. _`linux/quota.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/quota.h.html -.. _`linux/i2o-dev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/i2o-dev.h.html -.. _`linux/xfrm.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/xfrm.h.html -.. _`linux/tipc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/tipc.h.html -.. _`linux/swab.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/swab.h.html -.. _`linux/nbd.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nbd.h.html -.. _`linux/comstats.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/comstats.h.html -.. _`linux/wireless.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/wireless.h.html -.. _`linux/parport.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/parport.h.html -.. _`linux/nfs3.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfs3.h.html -.. _`linux/tcp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/tcp.h.html -.. _`linux/ppdev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ppdev.h.html -.. _`linux/types.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/types.h.html -.. _`linux/rtnetlink.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/rtnetlink.h.html -.. _`linux/smbno.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/smbno.h.html -.. _`linux/time.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/time.h.html -.. _`linux/virtio_ids.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_ids.h.html -.. _`linux/resource.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/resource.h.html -.. _`linux/nfs_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfs_fs.h.html -.. _`linux/soundcard.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/soundcard.h.html -.. _`linux/aufs_type.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/aufs_type.h.html -.. _`linux/param.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/param.h.html -.. _`linux/joystick.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/joystick.h.html -.. _`linux/dm-ioctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dm-ioctl.h.html -.. _`linux/kernel.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/kernel.h.html -.. _`linux/elf-fdpic.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/elf-fdpic.h.html -.. _`linux/filter.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/filter.h.html -.. _`linux/if_ltalk.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_ltalk.h.html -.. _`linux/eventpoll.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/eventpoll.h.html -.. _`linux/if.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if.h.html -.. _`linux/tipc_config.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/tipc_config.h.html -.. _`linux/fd.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fd.h.html -.. _`linux/phantom.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/phantom.h.html -.. _`linux/fib_rules.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fib_rules.h.html -.. _`linux/ipmi_msgdefs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ipmi_msgdefs.h.html -.. _`linux/pfkeyv2.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pfkeyv2.h.html -.. _`linux/auxvec.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/auxvec.h.html -.. _`linux/audit.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/audit.h.html -.. _`linux/fuse.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fuse.h.html -.. _`linux/ext2_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ext2_fs.h.html -.. _`linux/ax25.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ax25.h.html -.. _`linux/ncp_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ncp_fs.h.html -.. _`linux/if_hippi.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_hippi.h.html -.. _`linux/nfsacl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfsacl.h.html -.. _`linux/if_link.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_link.h.html -.. _`linux/un.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/un.h.html -.. _`linux/sonet.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sonet.h.html -.. _`linux/serial_reg.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/serial_reg.h.html -.. _`linux/videotext.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/videotext.h.html -.. _`linux/cdrom.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cdrom.h.html -.. _`linux/watchdog.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/watchdog.h.html -.. _`linux/hdlcdrv.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hdlcdrv.h.html -.. _`linux/mroute6.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/mroute6.h.html -.. _`linux/keyctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/keyctl.h.html -.. _`linux/cdk.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cdk.h.html -.. _`linux/capability.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/capability.h.html -.. _`linux/dlm_netlink.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dlm_netlink.h.html -.. _`linux/ioctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ioctl.h.html -.. _`linux/raid` : http://sites.uclouvain.be/SystInfo/usr/include/linux/raid.html -.. _`linux/hpet.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hpet.h.html -.. _`linux/cm4000_cs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cm4000_cs.h.html -.. _`linux/kd.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/kd.h.html -.. _`linux/isdnif.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/isdnif.h.html -.. _`linux/rtc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/rtc.h.html -.. _`linux/telephony.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/telephony.h.html -.. _`linux/if_packet.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_packet.h.html -.. _`linux/netfilter_ipv4` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_ipv4.html -.. _`linux/tiocl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/tiocl.h.html -.. _`linux/utsname.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/utsname.h.html -.. _`linux/snmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/snmp.h.html -.. _`linux/oom.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/oom.h.html -.. _`linux/atmlec.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmlec.h.html -.. _`linux/agpgart.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/agpgart.h.html -.. _`linux/som.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/som.h.html -.. _`linux/netfilter_ipv6` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_ipv6.html -.. _`linux/atmarp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmarp.h.html -.. _`linux/atm.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atm.h.html -.. _`linux/termios.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/termios.h.html -.. _`linux/udf_fs_i.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/udf_fs_i.h.html -.. _`linux/if_bridge.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_bridge.h.html -.. _`linux/input.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/input.h.html -.. _`linux/nl80211.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nl80211.h.html -.. _`linux/n_r3964.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/n_r3964.h.html -.. _`linux/smb_mount.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/smb_mount.h.html -.. _`linux/matroxfb.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/matroxfb.h.html -.. _`linux/ipv6.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ipv6.h.html -.. _`linux/ppp_defs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ppp_defs.h.html -.. _`linux/keyboard.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/keyboard.h.html -.. _`linux/hysdn_if.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hysdn_if.h.html -.. _`linux/elf.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/elf.h.html -.. _`linux/patchkey.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/patchkey.h.html -.. _`linux/if_strip.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_strip.h.html -.. _`linux/virtio_blk.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_blk.h.html -.. _`linux/netfilter` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter.html -.. _`linux/posix_types.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/posix_types.h.html -.. _`linux/b1lli.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/b1lli.h.html -.. _`linux/bsg.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/bsg.h.html -.. _`linux/netfilter.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter.h.html -.. _`linux/const.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/const.h.html -.. _`linux/if_plip.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_plip.h.html -.. _`linux/raw.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/raw.h.html -.. _`linux/tty.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/tty.h.html -.. _`linux/virtio_net.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_net.h.html -.. _`linux/mman.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/mman.h.html -.. _`linux/atm_tcp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atm_tcp.h.html -.. _`linux/videodev2.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/videodev2.h.html -.. _`linux/iso_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/iso_fs.h.html -.. _`linux/atmbr2684.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmbr2684.h.html -.. _`linux/arcfb.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/arcfb.h.html -.. _`linux/cn_proc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cn_proc.h.html -.. _`linux/gigaset_dev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/gigaset_dev.h.html -.. _`linux/loop.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/loop.h.html -.. _`linux/virtio_balloon.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_balloon.h.html -.. _`linux/reiserfs_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/reiserfs_fs.h.html -.. _`linux/gfs2_ondisk.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/gfs2_ondisk.h.html -.. _`linux/cciss_ioctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cciss_ioctl.h.html -.. _`linux/atmapi.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmapi.h.html -.. _`linux/sonypi.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sonypi.h.html -.. _`linux/major.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/major.h.html -.. _`linux/ncp_mount.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ncp_mount.h.html -.. _`linux/atmdev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmdev.h.html -.. _`linux/if_phonet.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_phonet.h.html -.. _`linux/if_ether.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_ether.h.html -.. _`linux/ppp-comp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ppp-comp.h.html -.. _`linux/magic.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/magic.h.html -.. _`linux/if_eql.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_eql.h.html -.. _`linux/virtio_console.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_console.h.html -.. _`linux/virtio_9p.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_9p.h.html -.. _`linux/sockios.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sockios.h.html -.. _`linux/kvm.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/kvm.h.html -.. _`linux/dlm_device.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dlm_device.h.html -.. _`linux/edd.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/edd.h.html -.. _`linux/serial.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/serial.h.html -.. _`linux/times.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/times.h.html -.. _`linux/lp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/lp.h.html -.. _`linux/kernelcapi.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/kernelcapi.h.html -.. _`linux/if_ppp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_ppp.h.html -.. _`linux/pci.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pci.h.html -.. _`linux/shm.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/shm.h.html -.. _`linux/atm_nicstar.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atm_nicstar.h.html -.. _`linux/x25.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/x25.h.html -.. _`linux/screen_info.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/screen_info.h.html -.. _`linux/rfkill.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/rfkill.h.html -.. _`linux/radeonfb.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/radeonfb.h.html -.. _`linux/ipc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ipc.h.html -.. _`linux/adfs_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/adfs_fs.h.html -.. _`linux/signal.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/signal.h.html -.. _`linux/dvb` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dvb.html -.. _`linux/reboot.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/reboot.h.html -.. _`linux/version.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/version.h.html -.. _`linux/hiddev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hiddev.h.html -.. _`linux/ixjuser.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ixjuser.h.html -.. _`linux/auto_fs4.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/auto_fs4.h.html -.. _`linux/if_addr.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_addr.h.html -.. _`linux/if_fddi.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_fddi.h.html -.. _`linux/genetlink.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/genetlink.h.html -.. _`linux/mmtimer.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/mmtimer.h.html -.. _`linux/atmsap.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmsap.h.html -.. _`linux/isdn_divertif.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/isdn_divertif.h.html -.. _`linux/generic_serial.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/generic_serial.h.html -.. _`linux/wait.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/wait.h.html -.. _`linux/errqueue.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/errqueue.h.html -.. _`linux/netfilter_ipv6.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_ipv6.h.html -.. _`linux/scc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/scc.h.html -.. _`linux/if_tr.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_tr.h.html -.. _`linux/isdn.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/isdn.h.html -.. _`linux/mii.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/mii.h.html -.. _`linux/pktcdvd.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pktcdvd.h.html -.. _`linux/nfs4_mount.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfs4_mount.h.html -.. _`linux/poll.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/poll.h.html -.. _`linux/synclink.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/synclink.h.html -.. _`linux/personality.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/personality.h.html -.. _`linux/i8k.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/i8k.h.html -.. _`linux/hdreg.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hdreg.h.html -.. _`linux/atm_idt77105.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atm_idt77105.h.html -.. _`linux/netfilter_bridge` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_bridge.html -.. _`linux/utime.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/utime.h.html -.. _`linux/selinux_netlink.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/selinux_netlink.h.html -.. _`linux/i2c-dev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/i2c-dev.h.html -.. _`linux/dlm_plock.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dlm_plock.h.html -.. _`linux/fdreg.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fdreg.h.html -.. _`linux/affs_hardblocks.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/affs_hardblocks.h.html -.. _`linux/stat.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/stat.h.html -.. _`linux/binfmts.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/binfmts.h.html -.. _`linux/neighbour.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/neighbour.h.html -.. _`linux/if_slip.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_slip.h.html -.. _`linux/pci_regs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pci_regs.h.html -.. _`linux/isdn_ppp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/isdn_ppp.h.html -.. _`linux/fiemap.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fiemap.h.html -.. _`linux/virtio_rng.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_rng.h.html -.. _`linux/nfs4.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfs4.h.html -.. _`linux/acct.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/acct.h.html -.. _`linux/elfcore.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/elfcore.h.html -.. _`linux/perf_event.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/perf_event.h.html -.. _`linux/virtio_ring.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_ring.h.html -.. _`linux/nubus.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nubus.h.html -.. _`linux/fcntl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fcntl.h.html -.. _`linux/net.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/net.h.html -.. _`linux/adb.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/adb.h.html -.. _`linux/msdos_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/msdos_fs.h.html -.. _`linux/prctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/prctl.h.html -.. _`linux/aio_abi.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/aio_abi.h.html -.. _`linux/random.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/random.h.html -.. _`linux/auto_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/auto_fs.h.html -.. _`linux/firewire-cdev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/firewire-cdev.h.html -.. _`linux/chio.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/chio.h.html -.. _`linux/if_bonding.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_bonding.h.html -.. _`linux/unistd.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/unistd.h.html -.. _`linux/irda.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/irda.h.html -.. _`linux/pmu.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pmu.h.html -.. _`linux/suspend_ioctls.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/suspend_ioctls.h.html -.. _`linux/firewire-constants.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/firewire-constants.h.html -.. _`linux/pkt_cls.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pkt_cls.h.html -.. _`linux/xattr.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/xattr.h.html -.. _`linux/dqblk_xfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dqblk_xfs.h.html -.. _`linux/igmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/igmp.h.html -.. _`linux/if_vlan.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_vlan.h.html -.. _`linux/gen_stats.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/gen_stats.h.html -.. _`linux/errno.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/errno.h.html -.. _`linux/taskstats.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/taskstats.h.html -.. _`linux/stddef.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/stddef.h.html -.. _`linux/in_route.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/in_route.h.html -.. _`linux/signalfd.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/signalfd.h.html -.. _`linux/coda.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/coda.h.html -.. _`linux/pkt_sched.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pkt_sched.h.html -.. _`linux/ipmi.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ipmi.h.html -.. _`linux/meye.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/meye.h.html -.. _`linux/efs_fs_sb.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/efs_fs_sb.h.html -.. _`linux/fadvise.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fadvise.h.html -.. _`linux/a.out.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/a.out.h.html -.. _`linux/nfs_idmap.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfs_idmap.h.html -.. _`linux/dccp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dccp.h.html -.. _`linux/dm-log-userspace.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dm-log-userspace.h.html -.. _`linux/hidraw.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hidraw.h.html -.. _`linux/ethtool.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ethtool.h.html -.. _`linux/uinput.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/uinput.h.html -.. _`linux/romfs_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/romfs_fs.h.html -.. _`linux/timex.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/timex.h.html -.. _`linux/bpqether.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/bpqether.h.html -.. _`linux/cycx_cfm.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cycx_cfm.h.html -.. _`linux/dlmconstants.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/dlmconstants.h.html -.. _`linux/mqueue.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/mqueue.h.html -.. _`linux/netdevice.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netdevice.h.html -.. _`linux/llc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/llc.h.html -.. _`linux/rose.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/rose.h.html -.. _`linux/coff.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/coff.h.html -.. _`linux/hayesesp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/hayesesp.h.html -.. _`linux/ip_vs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ip_vs.h.html -.. _`linux/cgroupstats.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cgroupstats.h.html -.. _`linux/netlink.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netlink.h.html -.. _`linux/netfilter_arp` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_arp.html -.. _`linux/qnx4_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/qnx4_fs.h.html -.. _`linux/ipx.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ipx.h.html -.. _`linux/connector.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/connector.h.html -.. _`linux/if_addrlabel.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_addrlabel.h.html -.. _`linux/inotify.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/inotify.h.html -.. _`linux/ncp_no.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ncp_no.h.html -.. _`linux/atmsvc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmsvc.h.html -.. _`linux/irqnr.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/irqnr.h.html -.. _`linux/sdla.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sdla.h.html -.. _`linux/nvram.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nvram.h.html -.. _`linux/videodev.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/videodev.h.html -.. _`linux/isdn` : http://sites.uclouvain.be/SystInfo/usr/include/linux/isdn.html -.. _`linux/icmpv6.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/icmpv6.h.html -.. _`linux/if_fc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_fc.h.html -.. _`linux/if_infiniband.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_infiniband.h.html -.. _`linux/route.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/route.h.html -.. _`linux/ipv6_route.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ipv6_route.h.html -.. _`linux/toshiba.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/toshiba.h.html -.. _`linux/nfsd` : http://sites.uclouvain.be/SystInfo/usr/include/linux/nfsd.html -.. _`linux/usbdevice_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/usbdevice_fs.h.html -.. _`linux/wanrouter.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/wanrouter.h.html -.. _`linux/reiserfs_xattr.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/reiserfs_xattr.h.html -.. _`linux/atmioc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atmioc.h.html -.. _`linux/serio.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/serio.h.html -.. _`linux/falloc.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/falloc.h.html -.. _`linux/smb_fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/smb_fs.h.html -.. _`linux/fb.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fb.h.html -.. _`linux/sched.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/sched.h.html -.. _`linux/string.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/string.h.html -.. _`linux/netrom.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netrom.h.html -.. _`linux/uio.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/uio.h.html -.. _`linux/netfilter_bridge.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_bridge.h.html -.. _`linux/serial_core.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/serial_core.h.html -.. _`linux/limits.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/limits.h.html -.. _`linux/if_frad.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_frad.h.html -.. _`linux/byteorder` : http://sites.uclouvain.be/SystInfo/usr/include/linux/byteorder.html -.. _`linux/virtio_pci.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/virtio_pci.h.html -.. _`linux/in6.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/in6.h.html -.. _`linux/pps.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/pps.h.html -.. _`linux/cuda.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/cuda.h.html -.. _`linux/ultrasound.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/ultrasound.h.html -.. _`linux/gameport.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/gameport.h.html -.. _`linux/if_cablemodem.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/if_cablemodem.h.html -.. _`linux/netfilter_ipv4.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/netfilter_ipv4.h.html -.. _`linux/flat.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/flat.h.html -.. _`linux/smb.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/smb.h.html -.. _`linux/fs.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/fs.h.html -.. _`linux/atalk.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/atalk.h.html -.. _`linux/udp.h` : http://sites.uclouvain.be/SystInfo/usr/include/linux/udp.h.html -.. _`netipx/ipx.h` : http://sites.uclouvain.be/SystInfo/usr/include/netipx/ipx.h.html -.. _`nfs/nfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/nfs/nfs.h.html -.. _`netatalk/at.h` : http://sites.uclouvain.be/SystInfo/usr/include/netatalk/at.h.html -.. _`mtd/ubi-user.h` : http://sites.uclouvain.be/SystInfo/usr/include/mtd/ubi-user.h.html -.. _`mtd/inftl-user.h` : http://sites.uclouvain.be/SystInfo/usr/include/mtd/inftl-user.h.html -.. _`mtd/nftl-user.h` : http://sites.uclouvain.be/SystInfo/usr/include/mtd/nftl-user.h.html -.. _`mtd/mtd-user.h` : http://sites.uclouvain.be/SystInfo/usr/include/mtd/mtd-user.h.html -.. _`mtd/mtd-abi.h` : http://sites.uclouvain.be/SystInfo/usr/include/mtd/mtd-abi.h.html -.. _`arpa/ftp.h` : http://sites.uclouvain.be/SystInfo/usr/include/arpa/ftp.h.html -.. _`arpa/inet.h` : http://sites.uclouvain.be/SystInfo/usr/include/arpa/inet.h.html -.. _`arpa/nameser.h` : http://sites.uclouvain.be/SystInfo/usr/include/arpa/nameser.h.html -.. _`arpa/tftp.h` : http://sites.uclouvain.be/SystInfo/usr/include/arpa/tftp.h.html -.. _`arpa/telnet.h` : http://sites.uclouvain.be/SystInfo/usr/include/arpa/telnet.h.html -.. _`arpa/nameser_compat.h` : http://sites.uclouvain.be/SystInfo/usr/include/arpa/nameser_compat.h.html -.. _`c++/4.4` : http://sites.uclouvain.be/SystInfo/usr/include/c++/4.4.html -.. _`c++/4.4.5` : http://sites.uclouvain.be/SystInfo/usr/include/c++/4.4.5.html -.. _`netax25/ax25.h` : http://sites.uclouvain.be/SystInfo/usr/include/netax25/ax25.h.html -.. _`sys/vtimes.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/vtimes.h.html -.. _`sys/sem.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/sem.h.html -.. _`sys/mtio.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/mtio.h.html -.. _`sys/vm86.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/vm86.h.html -.. _`sys/user.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/user.h.html -.. _`sys/epoll.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/epoll.h.html -.. _`sys/reg.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/reg.h.html -.. _`sys/vt.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/vt.h.html -.. _`sys/sysctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/sysctl.h.html -.. _`sys/msg.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/msg.h.html -.. _`sys/gmon_out.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/gmon_out.h.html -.. _`sys/syscall.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/syscall.h.html -.. _`sys/socket.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/socket.h.html -.. _`sys/timerfd.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/timerfd.h.html -.. _`sys/ptrace.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/ptrace.h.html -.. _`sys/quota.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/quota.h.html -.. _`sys/sysmacros.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/sysmacros.h.html -.. _`sys/io.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/io.h.html -.. _`sys/cdefs.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/cdefs.h.html -.. _`sys/types.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/types.h.html -.. _`sys/time.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/time.h.html -.. _`sys/ttychars.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/ttychars.h.html -.. _`sys/resource.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/resource.h.html -.. _`sys/soundcard.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/soundcard.h.html -.. _`sys/param.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/param.h.html -.. _`sys/timeb.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/timeb.h.html -.. _`sys/debugreg.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/debugreg.h.html -.. _`sys/socketvar.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/socketvar.h.html -.. _`sys/un.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/un.h.html -.. _`sys/sysinfo.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/sysinfo.h.html -.. _`sys/statfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/statfs.h.html -.. _`sys/ioctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/ioctl.h.html -.. _`sys/kd.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/kd.h.html -.. _`sys/ttydefaults.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/ttydefaults.h.html -.. _`sys/utsname.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/utsname.h.html -.. _`sys/bitypes.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/bitypes.h.html -.. _`sys/termios.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/termios.h.html -.. _`sys/kdaemon.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/kdaemon.h.html -.. _`sys/elf.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/elf.h.html -.. _`sys/klog.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/klog.h.html -.. _`sys/mount.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/mount.h.html -.. _`sys/raw.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/raw.h.html -.. _`sys/mman.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/mman.h.html -.. _`sys/sendfile.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/sendfile.h.html -.. _`sys/procfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/procfs.h.html -.. _`sys/ucontext.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/ucontext.h.html -.. _`sys/times.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/times.h.html -.. _`sys/swap.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/swap.h.html -.. _`sys/pci.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/pci.h.html -.. _`sys/shm.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/shm.h.html -.. _`sys/ipc.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/ipc.h.html -.. _`sys/fsuid.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/fsuid.h.html -.. _`sys/profil.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/profil.h.html -.. _`sys/signal.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/signal.h.html -.. _`sys/reboot.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/reboot.h.html -.. _`sys/perm.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/perm.h.html -.. _`sys/queue.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/queue.h.html -.. _`sys/syslog.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/syslog.h.html -.. _`sys/wait.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/wait.h.html -.. _`sys/dir.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/dir.h.html -.. _`sys/vlimit.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/vlimit.h.html -.. _`sys/poll.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/poll.h.html -.. _`sys/personality.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/personality.h.html -.. _`sys/ustat.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/ustat.h.html -.. _`sys/statvfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/statvfs.h.html -.. _`sys/gmon.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/gmon.h.html -.. _`sys/stat.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/stat.h.html -.. _`sys/vfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/vfs.h.html -.. _`sys/acct.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/acct.h.html -.. _`sys/fcntl.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/fcntl.h.html -.. _`sys/prctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/prctl.h.html -.. _`sys/unistd.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/unistd.h.html -.. _`sys/xattr.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/xattr.h.html -.. _`sys/errno.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/errno.h.html -.. _`sys/eventfd.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/eventfd.h.html -.. _`sys/signalfd.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/signalfd.h.html -.. _`sys/select.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/select.h.html -.. _`sys/timex.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/timex.h.html -.. _`sys/inotify.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/inotify.h.html -.. _`sys/file.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/file.h.html -.. _`sys/uio.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/uio.h.html -.. _`sys/ultrasound.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/ultrasound.h.html -.. _`sys/stropts.h` : http://sites.uclouvain.be/SystInfo/usr/include/sys/stropts.h.html -.. _`asm-generic/setup.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/setup.h.html -.. _`asm-generic/mman-common.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/mman-common.h.html -.. _`asm-generic/shmparam.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/shmparam.h.html -.. _`asm-generic/ioctls.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/ioctls.h.html -.. _`asm-generic/socket.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/socket.h.html -.. _`asm-generic/swab.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/swab.h.html -.. _`asm-generic/types.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/types.h.html -.. _`asm-generic/resource.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/resource.h.html -.. _`asm-generic/param.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/param.h.html -.. _`asm-generic/signal-defs.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/signal-defs.h.html -.. _`asm-generic/auxvec.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/auxvec.h.html -.. _`asm-generic/statfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/statfs.h.html -.. _`asm-generic/ioctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/ioctl.h.html -.. _`asm-generic/siginfo.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/siginfo.h.html -.. _`asm-generic/termios.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/termios.h.html -.. _`asm-generic/posix_types.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/posix_types.h.html -.. _`asm-generic/int-ll64.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/int-ll64.h.html -.. _`asm-generic/mman.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/mman.h.html -.. _`asm-generic/ucontext.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/ucontext.h.html -.. _`asm-generic/bitsperlong.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/bitsperlong.h.html -.. _`asm-generic/sockios.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/sockios.h.html -.. _`asm-generic/int-l64.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/int-l64.h.html -.. _`asm-generic/signal.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/signal.h.html -.. _`asm-generic/ipcbuf.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/ipcbuf.h.html -.. _`asm-generic/poll.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/poll.h.html -.. _`asm-generic/sembuf.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/sembuf.h.html -.. _`asm-generic/msgbuf.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/msgbuf.h.html -.. _`asm-generic/stat.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/stat.h.html -.. _`asm-generic/fcntl.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/fcntl.h.html -.. _`asm-generic/unistd.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/unistd.h.html -.. _`asm-generic/errno.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/errno.h.html -.. _`asm-generic/errno-base.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/errno-base.h.html -.. _`asm-generic/shmbuf.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/shmbuf.h.html -.. _`asm-generic/termbits.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm-generic/termbits.h.html -.. _`gnu/stubs-32.h` : http://sites.uclouvain.be/SystInfo/usr/include/gnu/stubs-32.h.html -.. _`gnu/option-groups.h` : http://sites.uclouvain.be/SystInfo/usr/include/gnu/option-groups.h.html -.. _`gnu/lib-names.h` : http://sites.uclouvain.be/SystInfo/usr/include/gnu/lib-names.h.html -.. _`gnu/libc-version.h` : http://sites.uclouvain.be/SystInfo/usr/include/gnu/libc-version.h.html -.. _`gnu/stubs-64.h` : http://sites.uclouvain.be/SystInfo/usr/include/gnu/stubs-64.h.html -.. _`gnu/stubs.h` : http://sites.uclouvain.be/SystInfo/usr/include/gnu/stubs.h.html -.. _`netrom/netrom.h` : http://sites.uclouvain.be/SystInfo/usr/include/netrom/netrom.h.html -.. _`video/edid.h` : http://sites.uclouvain.be/SystInfo/usr/include/video/edid.h.html -.. _`video/uvesafb.h` : http://sites.uclouvain.be/SystInfo/usr/include/video/uvesafb.h.html -.. _`video/sisfb.h` : http://sites.uclouvain.be/SystInfo/usr/include/video/sisfb.h.html -.. _`net/ethernet.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/ethernet.h.html -.. _`net/if_arp.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/if_arp.h.html -.. _`net/if.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/if.h.html -.. _`net/if_packet.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/if_packet.h.html -.. _`net/ppp_defs.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/ppp_defs.h.html -.. _`net/ppp-comp.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/ppp-comp.h.html -.. _`net/if_ppp.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/if_ppp.h.html -.. _`net/if_slip.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/if_slip.h.html -.. _`net/if_shaper.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/if_shaper.h.html -.. _`net/route.h` : http://sites.uclouvain.be/SystInfo/usr/include/net/route.h.html -.. _`netash/ash.h` : http://sites.uclouvain.be/SystInfo/usr/include/netash/ash.h.html -.. _`asm/setup.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/setup.h.html -.. _`asm/vm86.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/vm86.h.html -.. _`asm/unistd_64.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/unistd_64.h.html -.. _`asm/vsyscall.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/vsyscall.h.html -.. _`asm/kvm_para.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/kvm_para.h.html -.. _`asm/ioctls.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/ioctls.h.html -.. _`asm/bootparam.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/bootparam.h.html -.. _`asm/socket.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/socket.h.html -.. _`asm/ptrace.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/ptrace.h.html -.. _`asm/mtrr.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/mtrr.h.html -.. _`asm/swab.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/swab.h.html -.. _`asm/types.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/types.h.html -.. _`asm/ptrace-abi.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/ptrace-abi.h.html -.. _`asm/resource.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/resource.h.html -.. _`asm/param.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/param.h.html -.. _`asm/debugreg.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/debugreg.h.html -.. _`asm/auxvec.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/auxvec.h.html -.. _`asm/statfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/statfs.h.html -.. _`asm/byteorder.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/byteorder.h.html -.. _`asm/ioctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/ioctl.h.html -.. _`asm/siginfo.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/siginfo.h.html -.. _`asm/termios.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/termios.h.html -.. _`asm/ist.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/ist.h.html -.. _`asm/posix_types.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/posix_types.h.html -.. _`asm/mce.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/mce.h.html -.. _`asm/mman.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/mman.h.html -.. _`asm/ucontext.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/ucontext.h.html -.. _`asm/bitsperlong.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/bitsperlong.h.html -.. _`asm/sockios.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/sockios.h.html -.. _`asm/kvm.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/kvm.h.html -.. _`asm/unistd_32.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/unistd_32.h.html -.. _`asm/posix_types_64.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/posix_types_64.h.html -.. _`asm/signal.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/signal.h.html -.. _`asm/sigcontext.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/sigcontext.h.html -.. _`asm/ipcbuf.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/ipcbuf.h.html -.. _`asm/msr.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/msr.h.html -.. _`asm/poll.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/poll.h.html -.. _`asm/sembuf.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/sembuf.h.html -.. _`asm/msgbuf.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/msgbuf.h.html -.. _`asm/stat.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/stat.h.html -.. _`asm/fcntl.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/fcntl.h.html -.. _`asm/e820.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/e820.h.html -.. _`asm/prctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/prctl.h.html -.. _`asm/unistd.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/unistd.h.html -.. _`asm/processor-flags.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/processor-flags.h.html -.. _`asm/errno.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/errno.h.html -.. _`asm/a.out.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/a.out.h.html -.. _`asm/shmbuf.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/shmbuf.h.html -.. _`asm/boot.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/boot.h.html -.. _`asm/termbits.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/termbits.h.html -.. _`asm/sigcontext32.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/sigcontext32.h.html -.. _`asm/ldt.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/ldt.h.html -.. _`asm/posix_types_32.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/posix_types_32.h.html -.. _`asm/msr-index.h` : http://sites.uclouvain.be/SystInfo/usr/include/asm/msr-index.h.html -.. _`scsi/sg.h` : http://sites.uclouvain.be/SystInfo/usr/include/scsi/sg.h.html -.. _`scsi/scsi_ioctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/scsi/scsi_ioctl.h.html -.. _`scsi/scsi.h` : http://sites.uclouvain.be/SystInfo/usr/include/scsi/scsi.h.html -.. _`protocols/timed.h` : http://sites.uclouvain.be/SystInfo/usr/include/protocols/timed.h.html -.. _`protocols/rwhod.h` : http://sites.uclouvain.be/SystInfo/usr/include/protocols/rwhod.h.html -.. _`protocols/talkd.h` : http://sites.uclouvain.be/SystInfo/usr/include/protocols/talkd.h.html -.. _`protocols/routed.h` : http://sites.uclouvain.be/SystInfo/usr/include/protocols/routed.h.html -.. _`neteconet/ec.h` : http://sites.uclouvain.be/SystInfo/usr/include/neteconet/ec.h.html -.. _`netinet/in.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/in.h.html -.. _`netinet/ip.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/ip.h.html -.. _`netinet/ip_icmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/ip_icmp.h.html -.. _`netinet/tcp.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/tcp.h.html -.. _`netinet/ether.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/ether.h.html -.. _`netinet/ip6.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/ip6.h.html -.. _`netinet/in_systm.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/in_systm.h.html -.. _`netinet/if_ether.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/if_ether.h.html -.. _`netinet/icmp6.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/icmp6.h.html -.. _`netinet/if_fddi.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/if_fddi.h.html -.. _`netinet/if_tr.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/if_tr.h.html -.. _`netinet/igmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/igmp.h.html -.. _`netinet/udp.h` : http://sites.uclouvain.be/SystInfo/usr/include/netinet/udp.h.html -.. _`netiucv/iucv.h` : http://sites.uclouvain.be/SystInfo/usr/include/netiucv/iucv.h.html -.. _`rpcsvc/ypclnt.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/ypclnt.h.html -.. _`rpcsvc/key_prot.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/key_prot.h.html -.. _`rpcsvc/bootparam.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/bootparam.h.html -.. _`rpcsvc/nlm_prot.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nlm_prot.h.html -.. _`rpcsvc/spray.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/spray.x.html -.. _`rpcsvc/nis_object.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nis_object.x.html -.. _`rpcsvc/nfs_prot.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nfs_prot.x.html -.. _`rpcsvc/bootparam_prot.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/bootparam_prot.x.html -.. _`rpcsvc/yp.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/yp.h.html -.. _`rpcsvc/rstat.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/rstat.x.html -.. _`rpcsvc/klm_prot.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/klm_prot.x.html -.. _`rpcsvc/nfs_prot.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nfs_prot.h.html -.. _`rpcsvc/nlm_prot.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nlm_prot.x.html -.. _`rpcsvc/klm_prot.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/klm_prot.h.html -.. _`rpcsvc/rstat.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/rstat.h.html -.. _`rpcsvc/mount.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/mount.h.html -.. _`rpcsvc/yppasswd.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/yppasswd.h.html -.. _`rpcsvc/spray.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/spray.h.html -.. _`rpcsvc/bootparam_prot.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/bootparam_prot.h.html -.. _`rpcsvc/rex.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/rex.x.html -.. _`rpcsvc/key_prot.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/key_prot.x.html -.. _`rpcsvc/nis_callback.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nis_callback.h.html -.. _`rpcsvc/mount.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/mount.x.html -.. _`rpcsvc/yppasswd.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/yppasswd.x.html -.. _`rpcsvc/nislib.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nislib.h.html -.. _`rpcsvc/sm_inter.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/sm_inter.x.html -.. _`rpcsvc/nis_tags.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nis_tags.h.html -.. _`rpcsvc/nis_callback.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nis_callback.x.html -.. _`rpcsvc/rex.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/rex.h.html -.. _`rpcsvc/rquota.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/rquota.x.html -.. _`rpcsvc/rusers.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/rusers.x.html -.. _`rpcsvc/yp.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/yp.x.html -.. _`rpcsvc/nis.x` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nis.x.html -.. _`rpcsvc/rusers.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/rusers.h.html -.. _`rpcsvc/sm_inter.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/sm_inter.h.html -.. _`rpcsvc/yp_prot.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/yp_prot.h.html -.. _`rpcsvc/ypupd.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/ypupd.h.html -.. _`rpcsvc/rquota.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/rquota.h.html -.. _`rpcsvc/nis.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpcsvc/nis.h.html -.. _`netpacket/packet.h` : http://sites.uclouvain.be/SystInfo/usr/include/netpacket/packet.h.html -.. _`netrose/rose.h` : http://sites.uclouvain.be/SystInfo/usr/include/netrose/rose.h.html -.. _`bits/initspin.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/initspin.h.html -.. _`bits/sem.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sem.h.html -.. _`bits/syslog-ldbl.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/syslog-ldbl.h.html -.. _`bits/stdio2.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stdio2.h.html -.. _`bits/wchar2.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/wchar2.h.html -.. _`bits/mathinline.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/mathinline.h.html -.. _`bits/link.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/link.h.html -.. _`bits/in.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/in.h.html -.. _`bits/sigstack.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sigstack.h.html -.. _`bits/inf.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/inf.h.html -.. _`bits/waitstatus.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/waitstatus.h.html -.. _`bits/locale.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/locale.h.html -.. _`bits/ioctls.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/ioctls.h.html -.. _`bits/syscall.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/syscall.h.html -.. _`bits/socket.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/socket.h.html -.. _`bits/dirent.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/dirent.h.html -.. _`bits/sigthread.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sigthread.h.html -.. _`bits/elfclass.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/elfclass.h.html -.. _`bits/types.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/types.h.html -.. _`bits/byteswap.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/byteswap.h.html -.. _`bits/time.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/time.h.html -.. _`bits/resource.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/resource.h.html -.. _`bits/libc-lock.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/libc-lock.h.html -.. _`bits/stdio-ldbl.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stdio-ldbl.h.html -.. _`bits/mathcalls.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/mathcalls.h.html -.. _`bits/wordsize.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/wordsize.h.html -.. _`bits/predefs.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/predefs.h.html -.. _`bits/sockaddr.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sockaddr.h.html -.. _`bits/mqueue2.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/mqueue2.h.html -.. _`bits/wchar.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/wchar.h.html -.. _`bits/local_lim.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/local_lim.h.html -.. _`bits/netdb.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/netdb.h.html -.. _`bits/fenvinline.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/fenvinline.h.html -.. _`bits/statfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/statfs.h.html -.. _`bits/posix1_lim.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/posix1_lim.h.html -.. _`bits/monetary-ldbl.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/monetary-ldbl.h.html -.. _`bits/semaphore.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/semaphore.h.html -.. _`bits/xtitypes.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/xtitypes.h.html -.. _`bits/ipctypes.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/ipctypes.h.html -.. _`bits/waitflags.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/waitflags.h.html -.. _`bits/utsname.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/utsname.h.html -.. _`bits/siginfo.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/siginfo.h.html -.. _`bits/cmathcalls.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/cmathcalls.h.html -.. _`bits/termios.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/termios.h.html -.. _`bits/stdio.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stdio.h.html -.. _`bits/error.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/error.h.html -.. _`bits/ioctl-types.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/ioctl-types.h.html -.. _`bits/posix2_lim.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/posix2_lim.h.html -.. _`bits/huge_valf.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/huge_valf.h.html -.. _`bits/mman.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/mman.h.html -.. _`bits/dlfcn.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/dlfcn.h.html -.. _`bits/setjmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/setjmp.h.html -.. _`bits/fcntl2.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/fcntl2.h.html -.. _`bits/sys_errlist.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sys_errlist.h.html -.. _`bits/stdlib-ldbl.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stdlib-ldbl.h.html -.. _`bits/xopen_lim.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/xopen_lim.h.html -.. _`bits/shm.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/shm.h.html -.. _`bits/ipc.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/ipc.h.html -.. _`bits/printf-ldbl.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/printf-ldbl.h.html -.. _`bits/stdlib.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stdlib.h.html -.. _`bits/huge_vall.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/huge_vall.h.html -.. _`bits/sigcontext.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sigcontext.h.html -.. _`bits/syslog.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/syslog.h.html -.. _`bits/huge_val.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/huge_val.h.html -.. _`bits/pthreadtypes.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/pthreadtypes.h.html -.. _`bits/mathdef.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/mathdef.h.html -.. _`bits/typesizes.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/typesizes.h.html -.. _`bits/poll.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/poll.h.html -.. _`bits/ustat.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/ustat.h.html -.. _`bits/posix_opt.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/posix_opt.h.html -.. _`bits/setjmp2.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/setjmp2.h.html -.. _`bits/statvfs.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/statvfs.h.html -.. _`bits/string3.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/string3.h.html -.. _`bits/stat.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stat.h.html -.. _`bits/confname.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/confname.h.html -.. _`bits/string2.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/string2.h.html -.. _`bits/fcntl.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/fcntl.h.html -.. _`bits/syslog-path.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/syslog-path.h.html -.. _`bits/libio-ldbl.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/libio-ldbl.h.html -.. _`bits/utmp.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/utmp.h.html -.. _`bits/unistd.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/unistd.h.html -.. _`bits/sigaction.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sigaction.h.html -.. _`bits/fenv.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/fenv.h.html -.. _`bits/sigset.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sigset.h.html -.. _`bits/msq.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/msq.h.html -.. _`bits/nan.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/nan.h.html -.. _`bits/errno.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/errno.h.html -.. _`bits/a.out.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/a.out.h.html -.. _`bits/select.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/select.h.html -.. _`bits/stdio_lim.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stdio_lim.h.html -.. _`bits/utmpx.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/utmpx.h.html -.. _`bits/socket2.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/socket2.h.html -.. _`bits/mqueue.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/mqueue.h.html -.. _`bits/environments.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/environments.h.html -.. _`bits/endian.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/endian.h.html -.. _`bits/stdio-lock.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stdio-lock.h.html -.. _`bits/wchar-ldbl.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/wchar-ldbl.h.html -.. _`bits/stab.def` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stab.def.html -.. _`bits/signum.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/signum.h.html -.. _`bits/sched.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/sched.h.html -.. _`bits/string.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/string.h.html -.. _`bits/uio.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/uio.h.html -.. _`bits/stropts.h` : http://sites.uclouvain.be/SystInfo/usr/include/bits/stropts.h.html -.. _`rpc/rpc_des.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/rpc_des.h.html -.. _`rpc/xdr.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/xdr.h.html -.. _`rpc/key_prot.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/key_prot.h.html -.. _`rpc/pmap_prot.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/pmap_prot.h.html -.. _`rpc/types.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/types.h.html -.. _`rpc/pmap_clnt.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/pmap_clnt.h.html -.. _`rpc/auth.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/auth.h.html -.. _`rpc/netdb.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/netdb.h.html -.. _`rpc/pmap_rmt.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/pmap_rmt.h.html -.. _`rpc/svc_auth.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/svc_auth.h.html -.. _`rpc/svc.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/svc.h.html -.. _`rpc/rpc.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/rpc.h.html -.. _`rpc/auth_unix.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/auth_unix.h.html -.. _`rpc/des_crypt.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/des_crypt.h.html -.. _`rpc/clnt.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/clnt.h.html -.. _`rpc/rpc_msg.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/rpc_msg.h.html -.. _`rpc/auth_des.h` : http://sites.uclouvain.be/SystInfo/usr/include/rpc/auth_des.h.html -.. _`sound/sb16_csp.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/sb16_csp.h.html -.. _`sound/emu10k1.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/emu10k1.h.html -.. _`sound/asound_fm.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/asound_fm.h.html -.. _`sound/asequencer.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/asequencer.h.html -.. _`sound/sfnt_info.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/sfnt_info.h.html -.. _`sound/asound.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/asound.h.html -.. _`sound/sscape_ioctl.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/sscape_ioctl.h.html -.. _`sound/hdspm.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/hdspm.h.html -.. _`sound/hdsp.h` : http://sites.uclouvain.be/SystInfo/usr/include/sound/hdsp.h.html -.. _`rdma/ib_user_mad.h` : http://sites.uclouvain.be/SystInfo/usr/include/rdma/ib_user_mad.h.html diff --git a/Theorie/index.rst b/Theorie/index.rst deleted file mode 100644 index 96b2f00..0000000 --- a/Theorie/index.rst +++ /dev/null @@ -1,73 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012-2014 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -###################### -Systèmes informatiques -###################### - - -.. only:: html - - Ce site web contient la partie théorique du support du cours `Projet P3 - LEPL1503 <https://uclouvain.be/cours-2019-lepl1503>`_ donné aux `étudiants ingénieurs et informaticiens <http://www.uclouvain.be/info.html>`_ à l'`Université catholique de Louvain <https://www.uclouvain.be>`_ (UCL). Les étudiants sont invités à ajouter leur commentaires en soumettant des patches via https://github.com/UCL-INGI/SyllabusC . - - La version HTML est la préférable car elle contient des liens hypertextes vers les pages de manuel Linux qui font partie de la matière. D'autres formats sont possibles pour ceux qui veulent lire le document hors ligne : - - - `format epub <http://sites.uclouvain.be/SystInfo/distrib/SINF1252-Theorie.epub>`_ lisible sur tablettes style iPad ou Galaxy Tab - - `format pdf <http://sites.uclouvain.be/SystInfo/distrib/SINF1252-Theorie.pdf>`_ pour lecture via les logiciels Adobe ou pour impression - - - - -Introduction -************* -.. toctree:: - :maxdepth: 2 - - intro - -Langage C -********* - -.. toctree:: - :maxdepth: 2 - - C/intro-C - C/datatypes - C/malloc - C/linker - - - - - -Systèmes Multiprocesseurs -************************* -.. toctree:: - :maxdepth: 2 - - Threads/threads - Threads/threads2 - Threads/coordination -.. Threads/processus - - -Gestion des fichiers -******************** - -.. toctree:: - :maxdepth: 2 - - Fichiers/fichiers - -******* -Annexes -******* - -.. toctree:: - :maxdepth: 2 - - bib - glossaire - diff --git a/Theorie/intro.rst b/Theorie/intro.rst deleted file mode 100644 index 35447f8..0000000 --- a/Theorie/intro.rst +++ /dev/null @@ -1,248 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012, 2019 by `Olivier Bonaventure <http://perso.uclouvain.be/olivier.bonaventure>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - -Introduction -============ - - -Les systèmes informatiques jouent un rôle de plus en plus important dans notre société. Depuis les premiers calculateurs à la fin de la seconde guerre mondiale, les ordinateurs se sont rapidement améliorés et démocratisés. Aujourd'hui, notre société est de plus en plus dépendante des systèmes informatiques. - -.. spelling:: - - Von Neumann - binary - digit - word - -Composition d'un système informatique -------------------------------------- - -Le système informatique le plus simple est composé d'un :term:`processeur` (:term:`CPU` en anglais) ou unité de calcul et d'une mémoire. Le processeur est un circuit électronique qui est capable d'effectuer de nombreuses tâches : - - - lire de l'information en mémoire - - écrire de l'information en mémoire - - réaliser des calculs - -L'architecture des ordinateurs est basée sur l'architecture dite de Von Neumann. Suivant cette architecture, un ordinateur est composé d'un processeur qui exécute un programme se trouvant en mémoire. La mémoire contient à la fois le programme à exécuter et les données qui sont manipulées par le programme. - -L'élément de base pour stocker et représenter de l'information dans un système informatique est le :term:`bit`. Un bit (`binary digit` en anglais) peut prendre deux valeurs qui par convention sont représentées par : - - - ``1`` - - ``0`` - -Physiquement, un bit est représenté sous la forme d'un signal électrique ou optique lorsqu'il est transmis et d'une charge électrique ou sous forme magnétique lorsqu'il est stocké. Nous n'aborderons pas ces détails technologiques dans le cadre de ce cours. Ils font l'objet de nombreux cours d'électronique. - -Le bit est l'unité de base de stockage et de transfert de l'information. En général, les systèmes informatiques ne traitent pas des bits individuellement [#fbitreseau]_. - -La composition de plusieurs bits donne lieu à des blocs de données qui -peuvent être utiles dans différentes applications -informatiques. Ainsi, un :term:`nibble` est un bloc de 4 bits -consécutifs tandis qu'un :term:`octet` (ou :term:`byte` en anglais) -est un bloc de 8 bits consécutifs. On parlera de mots (`word` en -anglais) pour des groupes comprenant généralement 32 bits et de long -mot pour des groupes de 64 bits. - -Le processeur et la mémoire ne sont pas les deux seuls composants d'un système informatique. Celui-ci doit également pouvoir interagir avec le monde extérieur, ne fut-ce que pour pouvoir charger le programme à exécuter et les données à analyser. Cette interaction se réalise grâce à un grand nombre de dispositifs d'entrées/sorties et de stockage. Parmi ceux-ci, on peut citer : - - - le clavier qui permet à l'utilisateur d'entrer des caractères - - l'écran qui permet à l'utilisateur de visualiser le fonctionnement des programmes et les résultats qu'ils produisent - - l'imprimante qui permet à l'ordinateur d'écrire sur papier les résultats de l'exécution de programmes - - le disque-dur, les clés USB, les CDs et DVDs qui permettent de stocker les données sous la forme de fichiers et de répertoires - - la souris ou la tablette graphique qui permettent à l'utilisateur de fournir à l'ordinateur des indications de positionnement - - le scanner qui permet à l'ordinateur de transformer un document en une image numérique - - le haut-parleur avec lequel l'ordinateur peut diffuser différentes sortes de son - - le microphone et la caméra qui permettent à l'ordinateur de capturer des informations sonores et visuelles pour les stocker ou les traiter - -.. spelling:: - - API - l'API - Bell - Laboratories - AT&T - Berkeley - Labs - Amsterdam - d'Amsterdam - -Unix ----- - -Unix est aujourd'hui un nom générique [#funix]_ correspondant à une famille de systèmes d'exploitation. La première version de Unix a été développée pour faciliter le traitement de documents sur mini-ordinateur. - -.. topic:: Quelques variantes de Unix - - De nombreuses variantes de Unix ont été produites durant les quarante dernières années. Il est impossible de les décrire toutes, mais en voici quelques unes. - - - :term:`Unix`. Initialement développé aux AT&T Bell Laboratories, Unix a été ensuite développé par d'autres entreprises. C'est aujourd'hui une marque déposée par ``The Open group``, voir http://www.unix.org/ - - :term:`BSD Unix`. Les premières versions de Unix étaient librement distribuées par Bell Labs. Avec le temps, des variantes de Unix sont apparues. La variante développée par l'université de Berkeley en Californie a été historiquement importante car c'est dans cette variante que de nombreuses innovations ont été introduites dont notamment les piles de protocoles TCP/IP utilisés sur Internet. Aujourd'hui, :term:`FreeBSD` et :term:`OpenBSD` sont deux descendants de :term:`BSD Unix`. Ils sont largement utilisés dans de nombreux serveurs et systèmes embarqués. :term:`MacOS`, développé par Apple, s'appuie fortement sur un noyau et des utilitaires provenant de :term:`FreeBSD`. - - :term:`Minix` est un système d'exploitation développé initialement par :term:`Andrew Tanenbaum` à l'université d'Amsterdam. :term:`Minix` est fréquemment utilisé pour l'apprentissage du fonctionnement des systèmes d'exploitation. - - :term:`Linux` est un noyau de système d'exploitation largement inspiré de :term:`Unix` et `Minix`. Développé par :term:`Linus Torvalds` durant ses études d'informatique, il est devenu la variante de Unix la plus utilisée à travers le monde. Il est maintenant développé par des centaines de développeurs qui collaborent via Internet. - - :term:`Solaris` est le nom commercial de la variante Unix de Oracle. - - Dans le cadre de ce cours, nous nous focaliserons sur le système :term:`GNU/Linux`, c'est-à -dire un système qui intègre le noyau :term:`Linux` et les librairies et utilitaires développés par le projet :term:`GNU` de la :term:`FSF`. - -Un système Unix est composé de trois grands types de logiciels : - - - Le noyau du système d'exploitation qui est chargé automatiquement au démarrage de la machine et qui prend en charge toutes les interactions entre les logiciels et le matériel. - - De nombreuses librairies qui facilitent l'écriture et le développement d'applications - - De nombreux programmes utilitaires simples qui permettent de résoudre un grand nombre de problèmes courants. Certains de ces utilitaires sont chargés automatiquement lors du démarrage de la machine. La plupart sont exécutés uniquement à la demande des utilisateurs. - -.. spelling:: - - API - programmatiques - Application - Programming - Interface - -Le rôle principal du noyau du système d'exploitation est de gérer les ressources matérielles (processeur, mémoire, dispositifs d'entrées/sorties et de stockage) de façon à ce qu'elles soient accessibles à toutes les applications qui s'exécutent sur le système. Gérer les ressources matérielles nécessite d'inclure dans le systèmes d'exploitation des interfaces programmatiques (`Application Programming Interfaces` en anglais - :term:`API`) qui facilitent leur utilisation par les applications. Les dispositifs de stockage sont une belle illustration de ce principe. Il existe de nombreux dispositifs de stockage (disque dur, clé USB, CD, DVD, mémoire flash, ...). Chacun de ces dispositifs a des caractéristiques électriques et mécaniques propres. Ils permettent en général la lecture et/ou l'écriture de blocs de données de quelques centaines d'octets. Nous reviendrons sur leur fonctionnement ultérieurement. Peu d'applications sont capables de piloter directement de tels dispositifs pour y lire ou y écrire de tels blocs de données. Par contre, la majorité des applications sont capables de les utiliser par l'intermédiaire du système de fichiers. Le système de fichiers (arborescence des fichiers) et l'API associée (`open(2)`_, `close(2)`_, `read(2)`_ `write(2)`_ ) sont un exemple des services fournis par le système d'exploitation aux applications. Le système de fichiers regroupe l'ensemble des fichiers qui sont accessibles depuis un système sous une arborescence unique, quel que soit le nombre de dispositifs de stockage utilisé. La racine de cette arborescence est le répertoire ``/`` par convention. Ce répertoire contient généralement une dizaine de sous répertoires dont les noms varient d'une variante de Unix à l'autre. Généralement, on retrouve dans la racine les sous-répertoires suivants : - - - ``/usr`` : sous-répertoire contenant la plupart des utilitaires et librairies installées sur le système - - ``/bin`` et ``/sbin`` : sous-répertoire contenant quelques utilitaires de base nécessaires à l'administrateur du système - - ``/tmp`` : sous-répertoire contenant des fichiers temporaires. Son contenu est généralement effacé au redémarrage du système. - - ``/etc`` : sous-répertoire contenant les fichiers de configuration du système - - ``/home`` : sous-répertoire contenant les répertoires personnels des utilisateurs du système - - ``/dev`` : sous-répertoire contenant des fichiers spéciaux - - ``/root``: sous-répertoire contenant des fichiers propres à l'administrateur système. Dans certains variantes de Unix, ces fichiers sont stockés dans le répertoire racine. - -Un autre service est le partage de la mémoire et du processus. La plupart des systèmes d'exploitation supportent l'exécution simultanée de plusieurs applications. Pour ce faire, le système d'exploitation partage la mémoire disponible entre les différentes applications en cours d'exécution. Il est également responsable du partage du temps d'exécution sur le ou les processeurs de façon à ce que toutes les applications en cours puissent s'exécuter. - -Unix s'appuie sur la notion de processus. Une application est composée de un ou plusieurs processus. Un processus peut être défini comme un ensemble cohérent d'instructions qui utilisent une partie de la mémoire et sont exécutées sur un des processeurs du système. L'exécution d'un processus est initiée par le système d'exploitation (généralement suite à une requête faite par un autre processus). Un processus peut s'exécuter pendant une fraction de secondes, quelques secondes ou des journées entières. Pendant son exécution, le processus peut potentiellement accéder aux différentes ressources (processeurs, mémoire, dispositifs d'entrées/sorties et de stockage) du système. A la fin de son exécution, le processus se termine [#ftermine]_ et libère les ressources qui lui ont été allouées par le système d'exploitation. Sous Unix, tout processus retourne au processus qui l'avait initié le résultat de son exécution qui est résumée en un nombre entier. Cette valeur de retour est utilisée en général pour déterminer si l'exécution d'un processus s'est déroulée correctement (zéro comme valeur de retour) ou non (valeur de retour différente de zéro). - -Dans le cadre de ce cours, nous aurons l'occasion de voir en détails de nombreuses librairies d'un système Unix et verrons le fonctionnement d'appels systèmes qui permettent aux logiciels d'interagir directement avec le noyau. Le système Unix étant majoritairement écrit en langage C, ce langage est le langage de choix pour de nombreuses applications. Nous le verrons donc en détails. - - -Utilitaires -^^^^^^^^^^^ - -Unix a été conçu à l'époque des mini-ordinateurs. Un mini-ordinateur servait plusieurs utilisateurs en même temps. Ceux-ci y étaient connectés par l'intermédiaire d'un terminal équipé d'un écran et d'un clavier. Les programmes traitaient les données entrées par l'utilisateur via le clavier ou stockées sur le disque. Les résultats de l'exécution des ces programmes étaient affichés à l'écran, sauvegardés sur disque ou parfois imprimés sur papier. Le fonctionnement de nombreux utilitaires Unix a été influencé par cet environnement. A tout processus Unix, on associe : - - - une entrée standard (:term:`stdin` en anglais) qui est un flux d'informations par lequel le processus reçoit les données à traiter. Par défaut, l'entrée standard est associée au clavier. - - une sortie standard (:term:`stdout` en anglais) qui est un flux d'informations sur lequel le processus écrit le résultat de son traitement. Par défaut, la sortie standard est associée au terminal. - - une sortie d'erreur standard (:term:`stderr` en anglais) qui est un flux de données sur lequel le processus écrira les messages d'erreur éventuels. Par défaut, la sortie d'erreur standard est associée à l'écran. - -Unix ayant été initialement développé pour manipuler des documents contenant du texte, il comprend de nombreux utilitaires facilitant ces traitements. Une description détaillée de l'ensemble de ces utilitaires sort du cadre de ce cours. De nombreux livres et ressources Internet fournissent une description détaillée. Voici cependant une brève présentation de quelques utilitaires de manipulation de texte qui peuvent s'avérer très utiles en pratique. - - - `cat(1)`_ : utilitaire permettant notamment d'afficher le contenu d'un fichier sur la sortie standard - - `echo(1)`_ : utilitaire permettant d'afficher sur la sortie standard une chaîne de caractères passée en argument - - `head(1)`_ et `tail(1)`_ : utilitaires permettant respectivement d'extraire le début ou la fin d'un fichier - - `wc(1)`_ : utilitaire permettant de compter le nombre de caractères et de lignes d'un fichier - - `grep(1)`_ : utilitaire permettant notamment d'extraire d'un fichier texte les lignes qui contiennent ou ne contiennent pas une chaîne de caractères passée en argument - - `sort(1)`_ : utilitaire permettant de trier les lignes d'un fichier texte - - `uniq(1)`_ : utilitaire permettant de filtrer le contenu d'un fichier texte afin d'en extraire les lignes qui sont uniques ou dupliquées (requiert que le fichier d'entrée soit trié, car ne compare que les lignes consécutives) - - `more(1)`_ : utilitaire permettant d'afficher page par page un fichier texte sur la sortie standard (`less(1)`_ est une variante courante de `more(1)`_) - - `gzip(1)`_ et `gunzip(1)`_ : utilitaires permettant respectivement de compresser et de décompresser des fichiers. Les fichiers compressés prennent moins de place sur le disque que les fichiers standard et ont par convention un nom qui se termine par ``.gz``. - - `tar(1)`_ : utilitaire permettant de regrouper plusieurs fichiers dans une archive. Souvent utilisé en combinaison avec `gzip(1)`_ pour réaliser des backups ou distribuer des logiciels. - - `sed(1)`_ : utilitaire permettant d'éditer, c'est-à -dire de modifier les caractères présents dans un flux de données. - - `awk(1)`_ : utilitaire incluant un petit langage de programmation et qui permet d'écrire rapidement de nombreux programmes de manipulation de fichiers textes - -La plupart des utilitaires fournis avec un système Unix ont été conçus pour être utilisés en combinaison avec d'autres. Cette combinaison efficace de plusieurs petits utilitaires est un des points forts des systèmes Unix par rapport à d'autres systèmes d'exploitation. - - -Shell -^^^^^ - -Avant le développement des interfaces graphiques telles que :term:`X11`, :term:`Gnome` ou :term:`Aqua`, l'utilisateur interagissait exclusivement avec l'ordinateur par l'intermédiaire d'un interpréteur de commandes. Dans le monde Unix, le terme anglais :term:`shell` est le plus souvent utilisé pour désigner cet interpréteur et nous ferons de même. Avec les interfaces graphiques actuelles, le shell est accessible par l'intermédiaire d'une application qui est généralement appelée ``terminal`` ou ``console``. - -Un :term:`shell` est un programme qui a été spécialement conçu pour faciliter l'utilisation d'un système Unix via le clavier. De nombreux shells Unix existent. Les plus simples permettent à l'utilisateur de taper une série de commandes à exécuter en les combinant. Les plus avancés sont des interpréteurs de commandes qui supportent un langage complet permettant le développement de scripts plus ou moins ambitieux. Dans le cadre de ce cours, nous utiliserons `bash(1)`_ qui est un des shells les plus populaires et les plus complets. La plupart des commandes `bash(1)`_ que nous utiliserons sont cependant compatibles avec de nombreux autres shells tels que `zsh <http://www.zsh.org>`_ ou `csh <http://www.tcsh.org/Home>`_. - -Lorsqu'un utilisateur se connecte à un système Unix, en direct ou à travers une connexion réseau, le système vérifie son mot de passe puis exécute automatiquement le shell qui est associé à cet utilisateur depuis son répertoire par défaut. Ce shell permet à l'utilisateur d'exécuter et de combiner des commandes. Un shell supporte deux types de commande : les commandes internes qu'il implémente directement et les commandes externes qui font appel à un utilitaire stocké sur disque. Les utilitaires présentés dans la section précédente sont des exemples de commandes externes. Voici quelques exemples d'utilisation de commandes externes. - -.. literalinclude:: src/exemple.out - :language: console - -.. spelling:: - - -La puissance du :term:`shell` ne vient pas de sa capacité d'exécuter des commandes individuelles telles que ci-dessus. Elle vient de la possibilité de combiner ces commandes en redirigeant les entrées et sorties standards. Les shells Unix supportent différentes formes de redirection. Tout d'abord, il est possible de forcer un programme à lire son entrée standard depuis un fichier plutôt que depuis le clavier. Cela se fait en ajoutant à la fin de la ligne de commande le caractère ``<`` suivi du nom du fichier à lire. Ensuite, il est possible de rediriger la sortie standard vers un fichier. Cela se fait en utilisant ``>`` ou ``>>``. Lorsqu'une commande est suivie de ``> file``, le fichier ``file`` est créé si il n'existait pas et remis à zéro si il existait et la sortie standard de cette commande est redirigée vers le fichier ``file``. Lorsqu'un commande est suivie de ``>> file``, la sortie standard est sauvegardée à la fin du fichier ``file`` (si ``file`` n'existait pas, il est créé). Des informations plus complètes sur les mécanismes de redirection de `bash(1)`_ peuvent être obtenues dans le `chapitre 20 <http://tldp.org/LDP/abs/html/io-redirection.html>`_ de [ABS]_. - - - -.. literalinclude:: src/exemple2.out - :language: console - -Les shells Unix supportent un second mécanisme qui est encore plus intéressant pour combiner plusieurs programmes. Il s'agit de la redirection de la sortie standard d'un programme vers l'entrée standard d'un autre sans passer par un fichier intermédiaire. Cela se réalise avec le symbole ``|`` (:term:`pipe` en anglais). L'exemple suivant illustre quelques combinaisons d'utilitaires de manipulation de texte. - -.. literalinclude:: src/exemple3.out - :language: console - -Le premier exemple est d'utiliser `echo(1)`_ pour générer du texte et le passer directement à `wc(1)`_ qui compte le nombre de caractères. Le deuxième exemple utilise `cat(1)`_ pour afficher sur la sortie standard le contenu d'un fichier. Cette sortie est reliée à `sort(1)`_ qui trie le texte reçu sur son entrée standard en ordre alphabétique croissant. Cette sortie en ordre alphabétique est reliée à `uniq(1)`_ qui la filtre pour en retirer les lignes dupliquées. - - -Tout shell Unix peut également s'utiliser comme un interpréteur de commande qui permet d'interpréter des scripts. Un système Unix peut exécuter deux types de programmes : - - - des programmes exécutables en langage machine. C'est le cas de la plupart des utilitaires dont nous avons parlé jusqu'ici. - - des programmes écrits dans un langage interprété. C'est le cas des programmes écrits pour le shell, mais également pour d'autres langages interprétés comme python_ ou perl_. - -Lors de l'exécution d'un programme, le système d'exploitation reconnaît [#fexecbit]_ si il s'agit d'un programme directement exécutable ou d'un programme interprété en analysant les premiers octets du fichier. Par convention, sous Unix, les deux premiers caractères d'un programme écrit dans un langage qui doit être interprété sont ``#!``. Ils sont suivis par le nom complet de l'interpréteur qui doit être utilisé pour interpréter le programme. - -Le programme `bash(1)`_ le plus simple est le suivant : - -.. literalinclude:: src/hello.sh - :language: bash - -L'exécution de ce script shell retourne la sortie suivante : - -.. literalinclude:: src/hello.sh.out - :language: console - - -Par convention en `bash(1)`_, le caractère ``#`` marque le début d'un commentaire en début ou en cours de ligne. Comme tout langage, `bash(1)`_ permet à l'utilisateur de définir des variables. Celles-ci peuvent contenir des chaînes de caractères ou des nombres. Le script ci-dessous utilise deux variables, ``PROG`` et ``COURS`` et les utilise pour afficher un texte avec la commande ``echo``. - -.. literalinclude:: src/hellovar.sh - :language: bash - -Un script `bash(1)`_ peut également prendre des arguments passés en ligne de commande. Par convention, ceux-ci ont comme noms ``$1``, ``$2``, ``$3``, ... L'exemple ci-dessous illustre l'utilisation de ces arguments. - -.. literalinclude:: src/args.sh - :language: bash - -L'exécution de ce script produit la sortie suivante : - -.. literalinclude:: src/args.sh.out - :language: console - - -Concernant le traitement des arguments par un script bash, il est utile de noter que lorsque l'on appelle un script en redirigeant son entrée ou sa sortie standard, le script n'est pas informé de cette redirection. Ainsi, si l'on exécute le script précédent en faisant ``args.sh arg1 > args.out``, le fichier ``args.out`` contient les lignes suivantes : - -.. literalinclude:: src/args.out - :language: console - - -`bash(1)`_ supporte la construction ``if [ condition ]; then ... fi`` qui permet notamment de comparer les valeurs de variables. `bash(1)`_ définit de nombreuses conditions différentes, dont notamment : - - - ``$i -eq $j`` est vraie lorsque les deux variables ``$i`` et ``$j`` contiennent le même nombre. - - ``$i -lt $j`` est vraie lorsque la valeur de la variable ``$i`` est numériquement strictement inférieure à celle de la variable ``$j`` - - ``$i -ge $j`` est vraie lorsque la valeur de la variable ``$i`` est numériquement supérieure ou égale à celle de la variable ``$j`` - - ``$s = $t`` est vraie lorsque la chaîne de caractères contenue dans la variable ``$s`` est égale à celle qui est contenue dans la variable ``$t`` - - ``-z $s`` est vraie lorsque la chaîne de caractères contenue dans la variable ``$s`` est vide - -D'autres types de test sont définis dans la page de manuel : `bash(1)`_. Le script ci-dessous fournit un premier exemple d'utilisation de tests avec `bash(1)`_. - -.. literalinclude:: src/eq.sh - :language: bash - -Tout d'abord, ce script vérifie qu'il a bien été appelé avec deux arguments. Vérifier qu'un programme reçoit bien les arguments qu'il attend est une règle de bonne pratique qu'il est bon de respecter dès le début. Si le script n'est pas appelé avec le bon nombre d'arguments, un message d'erreur est affiché sur la sortie d'erreur standard et le script se termine avec un code de retour. Ces codes de retour sont importants car ils permettent à un autre programme, par exemple un autre script `bash(1)`_ de vérifier le bon déroulement d'un programme appelé. Le script :download:`src/eq.sh` utilise des appels explicites à `exit(1posix)`_ même si par défaut, un script `bash(1)`_ qui n'en contient pas retourne un code de retour nul à la fin de son exécution. - -Un autre exemple d'utilisation des codes de retour est le script :download:`src/wordin.sh` repris ci-dessous qui utilise `grep(1)`_ pour déterminer si un mot passé en argument est présent dans un fichier texte. Pour cela, il exploite la variable spéciale ``$?`` dans laquelle `bash(1)`_ sauve le code de retour du dernier programme exécuté par le script. - -.. literalinclude:: src/wordin.sh - :language: bash - -Ce programme utilise le fichier spécial ``/dev/null``. Celui-ci est en pratique l'équivalent d'un trou noir. Il accepte toutes les données en écriture mais celles-ci ne peuvent jamais être relues. ``/dev/null`` est très utile lorsque l'on veut ignorer la sortie d'un programme et éviter qu'elle ne s'affiche sur le terminal. `bash(1)`_ supporte également ``/dev/stdin`` pour représenter l'entrée standard, ``/dev/stdout`` pour la sortie standard et ``/dev/stderr`` pour l'erreur standard. - - - -Une description complète de `bash(1)`_ sort du cadre de ce cours. De nombreuses références à ce sujet sont disponibles [Cooper2011]_. - -.. rubric:: Footnotes - -.. [#fbitreseau] Dans certaines applications, par exemple dans les réseaux informatiques, il peut être utile d'accéder à la valeur d'un bit particulier qui joue par exemple le rôle d'un drapeau. Celui-ci se trouve cependant généralement à l'intérieur d'une structure de données comprenant un ensemble de bits. - -.. [#funix] Formellement, Unix est une marque déposée par l'`Open Group <http://www.opengroup.org>`_, un ensemble d'entreprises qui développent des standards dans le monde de l'informatique. La première version de Unix écrite en C date de 1973, http://www.unix.org/what_is_unix/history_timeline.html - -.. [#ftermine] Certains processus sont lancés automatiquement au démarrage du système et ne se terminent qu'à son arrêt. Ces processus sont souvent appelés des `daemons`. Il peut s'agir de services qui fonctionnent en permanence sur la machine, comme par exemple un serveur web ou un `daemon` d'authentification. - -.. [#fexecbit] Sous Unix et contrairement à d'autres systèmes d'exploitation, le suffixe d'un nom de fichier ne joue pas de rôle particulier pour indiquer si un fichier contient un programme exécutable ou non. Comme nous le verrons ultérieurement, le système de fichiers Unix contient des bits de permission qui indiquent notamment si un fichier est exécutable ou non. diff --git a/Theorie/links.rst b/Theorie/links.rst deleted file mode 100644 index 3699367..0000000 --- a/Theorie/links.rst +++ /dev/null @@ -1,18 +0,0 @@ -.. Links to be included - - - -.. _intel : http://www.intel.com -.. _python : http://www.python.org -.. _perl : http://www.perl.org -.. _Git : http://git-scm.com/ -.. _subversion : http://subversion.apache.org/ -.. _ISO-8859 : http://en.wikipedia.org/wiki/ISO/IEC_8859 -.. _Unicode: http://en.wikipedia.org/wiki/Unicode -.. _Endianness: http://en.wikipedia.org/wiki/Endianness -.. _llvm: http://llvm.org - - - - - diff --git a/Theorie/man_links.rst b/Theorie/man_links.rst deleted file mode 100644 index cbd46db..0000000 --- a/Theorie/man_links.rst +++ /dev/null @@ -1,5459 +0,0 @@ -.. _`[(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/[.1.html -.. _`a2dismod(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/a2dismod.8.html -.. _`a2dissite(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/a2dissite.8.html -.. _`a2enmod(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/a2enmod.8.html -.. _`a2ensite(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/a2ensite.8.html -.. _`a2p(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/a2p.1.html -.. _`a64l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/a64l.3.html -.. _`a64l(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/a64l.3posix.html -.. _`ab(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ab.1.html -.. _`abort(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/abort.3.html -.. _`abort(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/abort.3posix.html -.. _`abs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/abs.3.html -.. _`abs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/abs.3posix.html -.. _`accept(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/accept.2.html -.. _`accept(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/accept.3posix.html -.. _`accept4(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/accept4.2.html -.. _`access(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/access.2.html -.. _`access(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/access.3posix.html -.. _`access.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/access.conf.5.html -.. _`accessdb(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/accessdb.8.html -.. _`acct(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/acct.2.html -.. _`acct(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/acct.5.html -.. _`acos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acos.3.html -.. _`acos(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acos.3posix.html -.. _`acosf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acosf.3.html -.. _`acosf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acosf.3posix.html -.. _`acosh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acosh.3.html -.. _`acosh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acosh.3posix.html -.. _`acoshf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acoshf.3.html -.. _`acoshf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acoshf.3posix.html -.. _`acoshl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acoshl.3.html -.. _`acoshl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acoshl.3posix.html -.. _`acosl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acosl.3.html -.. _`acosl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/acosl.3posix.html -.. _`addch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addch.3ncurses.html -.. _`addchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addchnstr.3ncurses.html -.. _`addchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addchstr.3ncurses.html -.. _`addgroup(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/addgroup.8.html -.. _`add_key(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/add_key.2.html -.. _`addmntent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addmntent.3.html -.. _`addnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addnstr.3ncurses.html -.. _`addnwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addnwstr.3ncurses.html -.. _`addpart(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/addpart.8.html -.. _`addr2line(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/addr2line.1.html -.. _`addseverity(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addseverity.3.html -.. _`add-shell(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/add-shell.8.html -.. _`addstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addstr.3ncurses.html -.. _`adduser(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/adduser.8.html -.. _`adduser.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/adduser.conf.5.html -.. _`add_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/add_wch.3ncurses.html -.. _`add_wchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/add_wchnstr.3ncurses.html -.. _`add_wchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/add_wchstr.3ncurses.html -.. _`addwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/addwstr.3ncurses.html -.. _`adjtime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/adjtime.2.html -.. _`adjtime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/adjtime.3.html -.. _`adjtimex(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/adjtimex.2.html -.. _`admin(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/admin.1posix.html -.. _`af_local(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/af_local.7.html -.. _`afs_syscall(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/afs_syscall.2.html -.. _`af_unix(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/af_unix.7.html -.. _`agetty(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/agetty.8.html -.. _`aio_cancel(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_cancel.3.html -.. _`aio_cancel(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_cancel.3posix.html -.. _`aio_error(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_error.3.html -.. _`aio_error(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_error.3posix.html -.. _`aio_fsync(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_fsync.3.html -.. _`aio_fsync(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_fsync.3posix.html -.. _`aio.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/aio.h.7posix.html -.. _`aio_read(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_read.3.html -.. _`aio_read(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_read.3posix.html -.. _`aio_return(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_return.3.html -.. _`aio_return(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_return.3posix.html -.. _`aio_suspend(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_suspend.3.html -.. _`aio_suspend(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_suspend.3posix.html -.. _`aio_write(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_write.3.html -.. _`aio_write(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aio_write.3posix.html -.. _`alarm(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/alarm.2.html -.. _`alarm(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/alarm.3posix.html -.. _`algorithm::diff(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/algorithm::diff.3pm.html -.. _`algorithm::diffold(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/algorithm::diffold.3pm.html -.. _`algorithm::diff::xs(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/algorithm::diff::xs.3pm.html -.. _`algorithm::merge(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/algorithm::merge.3pm.html -.. _`alias(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/alias.1posix.html -.. _`alloca(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/alloca.3.html -.. _`alloc_hugepages(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/alloc_hugepages.2.html -.. _`alphasort(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/alphasort.3.html -.. _`apache2(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apache2.8.html -.. _`apache2ctl(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apache2ctl.8.html -.. _`apachectl(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apachectl.8.html -.. _`apropos(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/apropos.1.html -.. _`apt(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apt.8.html -.. _`apt-cache(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apt-cache.8.html -.. _`apt-cdrom(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apt-cdrom.8.html -.. _`apt.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/apt.conf.5.html -.. _`apt-config(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apt-config.8.html -.. _`apt-extracttemplates(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/apt-extracttemplates.1.html -.. _`apt-file(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/apt-file.1.html -.. _`apt-ftparchive(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/apt-ftparchive.1.html -.. _`apt-get(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apt-get.8.html -.. _`aptitude(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/aptitude.8.html -.. _`aptitude-create-state-bundle(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/aptitude-create-state-bundle.1.html -.. _`aptitude-run-state-bundle(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/aptitude-run-state-bundle.1.html -.. _`apt-key(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apt-key.8.html -.. _`apt-mark(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apt-mark.8.html -.. _`aptpkg(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg.3pm.html -.. _`aptpkg::cache(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg::cache.3pm.html -.. _`aptpkg::config(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg::config.3pm.html -.. _`aptpkg::hash(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg::hash.3pm.html -.. _`aptpkg::pkgrecords(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg::pkgrecords.3pm.html -.. _`aptpkg::policy(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg::policy.3pm.html -.. _`aptpkg::source(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg::source.3pm.html -.. _`aptpkg::system(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg::system.3pm.html -.. _`aptpkg::version(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/aptpkg::version.3pm.html -.. _`apt_preferences(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/apt_preferences.5.html -.. _`apt-secure(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/apt-secure.8.html -.. _`apt-sortpkgs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/apt-sortpkgs.1.html -.. _`ar(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ar.1.html -.. _`ar(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ar.1posix.html -.. _`arch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/arch.1.html -.. _`arch_prctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/arch_prctl.2.html -.. _`argz(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz.3.html -.. _`argz_add(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_add.3.html -.. _`argz_add_sep(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_add_sep.3.html -.. _`argz_append(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_append.3.html -.. _`argz_count(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_count.3.html -.. _`argz_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_create.3.html -.. _`argz_create_sep(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_create_sep.3.html -.. _`argz_delete(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_delete.3.html -.. _`argz_extract(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_extract.3.html -.. _`argz_insert(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_insert.3.html -.. _`argz_next(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_next.3.html -.. _`argz_replace(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_replace.3.html -.. _`argz_stringify(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/argz_stringify.3.html -.. _`armscii-8(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/armscii-8.7.html -.. _`arp(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/arp.7.html -.. _`arp(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/arp.8.html -.. _`arpd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/arpd.8.html -.. _`as(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/as.1.html -.. _`asa(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/asa.1posix.html -.. _`ascii(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ascii.7.html -.. _`asctime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asctime.3.html -.. _`asctime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asctime.3posix.html -.. _`asctime_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asctime_r.3.html -.. _`asctime_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asctime_r.3posix.html -.. _`asin(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asin.3.html -.. _`asin(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asin.3posix.html -.. _`asinf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinf.3.html -.. _`asinf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinf.3posix.html -.. _`asinh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinh.3.html -.. _`asinh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinh.3posix.html -.. _`asinhf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinhf.3.html -.. _`asinhf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinhf.3posix.html -.. _`asinhl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinhl.3.html -.. _`asinhl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinhl.3posix.html -.. _`asinl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinl.3.html -.. _`asinl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asinl.3posix.html -.. _`asn1parse(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/asn1parse.1ssl.html -.. _`asprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/asprintf.3.html -.. _`assert(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/assert.3.html -.. _`assert(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/assert.3posix.html -.. _`assert.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/assert.h.7posix.html -.. _`assert_perror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/assert_perror.3.html -.. _`assume_default_colors(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/assume_default_colors.3ncurses.html -.. _`at(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/at.1posix.html -.. _`atan2(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atan2.3.html -.. _`atan2(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atan2.3posix.html -.. _`atan2f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atan2f.3.html -.. _`atan2f(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atan2f.3posix.html -.. _`atan2l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atan2l.3.html -.. _`atan2l(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atan2l.3posix.html -.. _`atan(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atan.3.html -.. _`atan(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atan.3posix.html -.. _`atanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanf.3.html -.. _`atanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanf.3posix.html -.. _`atanh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanh.3.html -.. _`atanh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanh.3posix.html -.. _`atanhf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanhf.3.html -.. _`atanhf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanhf.3posix.html -.. _`atanhl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanhl.3.html -.. _`atanhl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanhl.3posix.html -.. _`atanl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanl.3.html -.. _`atanl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atanl.3posix.html -.. _`atexit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atexit.3.html -.. _`atexit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atexit.3posix.html -.. _`atof(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atof.3.html -.. _`atof(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atof.3posix.html -.. _`atoi(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atoi.3.html -.. _`atoi(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atoi.3posix.html -.. _`atol(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atol.3.html -.. _`atol(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atol.3posix.html -.. _`atoll(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atoll.3.html -.. _`atoll(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atoll.3posix.html -.. _`atoq(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/atoq.3.html -.. _`attr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attr.3ncurses.html -.. _`attr_get(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attr_get.3ncurses.html -.. _`attributes(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attributes.3menu.html -.. _`attr_off(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attr_off.3ncurses.html -.. _`attroff(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attroff.3ncurses.html -.. _`attr_on(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attr_on.3ncurses.html -.. _`attron(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attron.3ncurses.html -.. _`attr_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attr_set.3ncurses.html -.. _`attrset(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/attrset.3ncurses.html -.. _`auth_destroy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/auth_destroy.3.html -.. _`authnone_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/authnone_create.3.html -.. _`authorized_keys(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/authorized_keys.5.html -.. _`authunix_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/authunix_create.3.html -.. _`authunix_create_default(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/authunix_create_default.3.html -.. _`avr-addr2line(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-addr2line.1.html -.. _`avr-ar(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-ar.1.html -.. _`avr-as(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-as.1.html -.. _`avr-c++filt(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-c++filt.1.html -.. _`avr-dlltool(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-dlltool.1.html -.. _`avr-gasp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-gasp.1.html -.. _`avr-gprof(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-gprof.1.html -.. _`avr-ld(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-ld.1.html -.. _`avr-nlmconv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-nlmconv.1.html -.. _`avr-nm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-nm.1.html -.. _`avr-objcopy(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-objcopy.1.html -.. _`avr-objdump(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-objdump.1.html -.. _`avr-ranlib(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-ranlib.1.html -.. _`avr-readelf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-readelf.1.html -.. _`avr-size(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-size.1.html -.. _`avr-strings(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-strings.1.html -.. _`avr-strip(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-strip.1.html -.. _`avr-windmc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-windmc.1.html -.. _`avr-windres(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/avr-windres.1.html -.. _`awk(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/awk.1.html -.. _`awk(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/awk.1posix.html -.. _`backtrace(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/backtrace.3.html -.. _`backtrace_symbols(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/backtrace_symbols.3.html -.. _`backtrace_symbols_fd(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/backtrace_symbols_fd.3.html -.. _`badblocks(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/badblocks.8.html -.. _`base64(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/base64.1.html -.. _`basename(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/basename.1.html -.. _`basename(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/basename.1posix.html -.. _`basename(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/basename.3.html -.. _`basename(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/basename.3posix.html -.. _`bash(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bash.1.html -.. _`bashbug(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bashbug.1.html -.. _`bash-builtins(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/bash-builtins.7.html -.. _`batch(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/batch.1posix.html -.. _`baudrate(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/baudrate.3ncurses.html -.. _`bc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bc.1.html -.. _`bc(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bc.1posix.html -.. _`bcmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bcmp.3.html -.. _`bcmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bcmp.3posix.html -.. _`bcopy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bcopy.3.html -.. _`bcopy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bcopy.3posix.html -.. _`bdflush(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/bdflush.2.html -.. _`be16toh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/be16toh.3.html -.. _`be32toh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/be32toh.3.html -.. _`be64toh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/be64toh.3.html -.. _`beep(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/beep.3ncurses.html -.. _`bg(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bg.1posix.html -.. _`bind(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/bind.2.html -.. _`bind(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bind.3posix.html -.. _`bindresvport(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bindresvport.3.html -.. _`biosdecode(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/biosdecode.8.html -.. _`bison(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bison.1.html -.. _`bison.yacc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bison.yacc.1.html -.. _`bkgd(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bkgd.3ncurses.html -.. _`bkgdset(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bkgdset.3ncurses.html -.. _`bkgrnd(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bkgrnd.3ncurses.html -.. _`bkgrndset(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bkgrndset.3ncurses.html -.. _`blkid(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/blkid.8.html -.. _`blockdev(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/blockdev.8.html -.. _`boot(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/boot.7.html -.. _`bootlogd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/bootlogd.8.html -.. _`bootparam(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/bootparam.7.html -.. _`border(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/border.3ncurses.html -.. _`border_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/border_set.3ncurses.html -.. _`bottom_panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bottom_panel.3curses.html -.. _`box(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/box.3ncurses.html -.. _`box_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/box_set.3ncurses.html -.. _`break(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/break.1posix.html -.. _`break(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/break.2.html -.. _`brk(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/brk.2.html -.. _`bsd-from(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bsd-from.1.html -.. _`bsd_signal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bsd_signal.3.html -.. _`bsd_signal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bsd_signal.3posix.html -.. _`bsd-write(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bsd-write.1.html -.. _`bsearch(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bsearch.3.html -.. _`bsearch(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bsearch.3posix.html -.. _`bstring(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bstring.3.html -.. _`btowc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/btowc.3.html -.. _`btowc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/btowc.3posix.html -.. _`btree(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/btree.3.html -.. _`builtins(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/builtins.7.html -.. _`bunzip2(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bunzip2.1.html -.. _`busybox(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/busybox.1.html -.. _`byteorder(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/byteorder.3.html -.. _`bzcat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzcat.1.html -.. _`bzcmp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzcmp.1.html -.. _`bzdiff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzdiff.1.html -.. _`bzegrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzegrep.1.html -.. _`bzero(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bzero.3.html -.. _`bzero(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/bzero.3posix.html -.. _`bzexe(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzexe.1.html -.. _`bzfgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzfgrep.1.html -.. _`bzgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzgrep.1.html -.. _`bzip2(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzip2.1.html -.. _`bzip2recover(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzip2recover.1.html -.. _`bzless(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzless.1.html -.. _`bzmore(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/bzmore.1.html -.. _`c++(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c++.1.html -.. _`c2html(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c2html.1.html -.. _`c2ph(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c2ph.1.html -.. _`c89(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c89.1.html -.. _`c89-gcc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c89-gcc.1.html -.. _`c99(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c99.1.html -.. _`c99(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c99.1posix.html -.. _`c99-gcc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c99-gcc.1.html -.. _`ca(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ca.1ssl.html -.. _`cabs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cabs.3.html -.. _`cabs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cabs.3posix.html -.. _`cabsf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cabsf.3.html -.. _`cabsf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cabsf.3posix.html -.. _`cabsl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cabsl.3.html -.. _`cabsl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cabsl.3posix.html -.. _`cacheflush(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/cacheflush.2.html -.. _`cacos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacos.3.html -.. _`cacos(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacos.3posix.html -.. _`cacosf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacosf.3.html -.. _`cacosf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacosf.3posix.html -.. _`cacosh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacosh.3.html -.. _`cacosh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacosh.3posix.html -.. _`cacoshf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacoshf.3.html -.. _`cacoshf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacoshf.3posix.html -.. _`cacoshl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacoshl.3.html -.. _`cacoshl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacoshl.3posix.html -.. _`cacosl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacosl.3.html -.. _`cacosl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cacosl.3posix.html -.. _`cal(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cal.1.html -.. _`cal(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cal.1posix.html -.. _`calendar(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/calendar.1.html -.. _`callgrind_annotate(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/callgrind_annotate.1.html -.. _`callgrind_control(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/callgrind_control.1.html -.. _`calloc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/calloc.3.html -.. _`calloc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/calloc.3posix.html -.. _`callrpc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/callrpc.3.html -.. _`can_change_color(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/can_change_color.3ncurses.html -.. _`canonicalize_file_name(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/canonicalize_file_name.3.html -.. _`capabilities(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/capabilities.7.html -.. _`capget(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/capget.2.html -.. _`ca.pl(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ca.pl.1ssl.html -.. _`capset(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/capset.2.html -.. _`captoinfo(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/captoinfo.1.html -.. _`carg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/carg.3.html -.. _`carg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/carg.3posix.html -.. _`cargf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cargf.3.html -.. _`cargf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cargf.3posix.html -.. _`cargl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cargl.3.html -.. _`cargl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cargl.3posix.html -.. _`casin(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casin.3.html -.. _`casin(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casin.3posix.html -.. _`casinf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinf.3.html -.. _`casinf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinf.3posix.html -.. _`casinh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinh.3.html -.. _`casinh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinh.3posix.html -.. _`casinhf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinhf.3.html -.. _`casinhf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinhf.3posix.html -.. _`casinhl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinhl.3.html -.. _`casinhl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinhl.3posix.html -.. _`casinl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinl.3.html -.. _`casinl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/casinl.3posix.html -.. _`cat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cat.1.html -.. _`cat(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cat.1posix.html -.. _`catan(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catan.3.html -.. _`catan(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catan.3posix.html -.. _`catanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanf.3.html -.. _`catanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanf.3posix.html -.. _`catanh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanh.3.html -.. _`catanh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanh.3posix.html -.. _`catanhf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanhf.3.html -.. _`catanhf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanhf.3posix.html -.. _`catanhl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanhl.3.html -.. _`catanhl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanhl.3posix.html -.. _`catanl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanl.3.html -.. _`catanl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catanl.3posix.html -.. _`catchsegv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/catchsegv.1.html -.. _`catclose(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catclose.3.html -.. _`catclose(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catclose.3posix.html -.. _`catgets(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catgets.3.html -.. _`catgets(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catgets.3posix.html -.. _`catman(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/catman.8.html -.. _`catopen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catopen.3.html -.. _`catopen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/catopen.3posix.html -.. _`cbc_crypt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cbc_crypt.3.html -.. _`cbreak(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cbreak.3ncurses.html -.. _`cbrt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cbrt.3.html -.. _`cbrt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cbrt.3posix.html -.. _`cbrtf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cbrtf.3.html -.. _`cbrtf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cbrtf.3posix.html -.. _`cbrtl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cbrtl.3.html -.. _`cbrtl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cbrtl.3posix.html -.. _`cc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cc.1.html -.. _`ccos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccos.3.html -.. _`ccos(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccos.3posix.html -.. _`ccosf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccosf.3.html -.. _`ccosf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccosf.3posix.html -.. _`ccosh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccosh.3.html -.. _`ccosh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccosh.3posix.html -.. _`ccoshf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccoshf.3.html -.. _`ccoshf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccoshf.3posix.html -.. _`ccoshl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccoshl.3.html -.. _`ccoshl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccoshl.3posix.html -.. _`ccosl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccosl.3.html -.. _`ccosl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ccosl.3posix.html -.. _`cd(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cd.1posix.html -.. _`ceil(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ceil.3.html -.. _`ceil(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ceil.3posix.html -.. _`ceilf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ceilf.3.html -.. _`ceilf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ceilf.3posix.html -.. _`ceill(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ceill.3.html -.. _`ceill(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ceill.3posix.html -.. _`cerf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cerf.3.html -.. _`cerfc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cerfc.3.html -.. _`cerfcf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cerfcf.3.html -.. _`cerfcl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cerfcl.3.html -.. _`cerff(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cerff.3.html -.. _`cerfl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cerfl.3.html -.. _`cexp2(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexp2.3.html -.. _`cexp2f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexp2f.3.html -.. _`cexp2l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexp2l.3.html -.. _`cexp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexp.3.html -.. _`cexp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexp.3posix.html -.. _`cexpf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexpf.3.html -.. _`cexpf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexpf.3posix.html -.. _`cexpl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexpl.3.html -.. _`cexpl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cexpl.3posix.html -.. _`cfdisk(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/cfdisk.8.html -.. _`cfgetispeed(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfgetispeed.3.html -.. _`cfgetispeed(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfgetispeed.3posix.html -.. _`cfgetospeed(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfgetospeed.3.html -.. _`cfgetospeed(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfgetospeed.3posix.html -.. _`c++filt(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c++filt.1.html -.. _`cflow(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cflow.1posix.html -.. _`cfmakeraw(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfmakeraw.3.html -.. _`cfree(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfree.3.html -.. _`cfsetispeed(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfsetispeed.3.html -.. _`cfsetispeed(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfsetispeed.3posix.html -.. _`cfsetospeed(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfsetospeed.3.html -.. _`cfsetospeed(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfsetospeed.3posix.html -.. _`cfsetspeed(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cfsetspeed.3.html -.. _`cg_annotate(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cg_annotate.1.html -.. _`chage(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chage.1.html -.. _`charmap(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/charmap.5.html -.. _`charsets(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/charsets.7.html -.. _`chattr(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chattr.1.html -.. _`chcon(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chcon.1.html -.. _`chdir(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/chdir.2.html -.. _`chdir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/chdir.3posix.html -.. _`check_forensic(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/check_forensic.8.html -.. _`checkgid(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/checkgid.8.html -.. _`chfn(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chfn.1.html -.. _`chgat(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/chgat.3ncurses.html -.. _`chgpasswd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/chgpasswd.8.html -.. _`chgrp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chgrp.1.html -.. _`chgrp(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chgrp.1posix.html -.. _`chkdupexe(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chkdupexe.1.html -.. _`chmod(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chmod.1.html -.. _`chmod(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chmod.1posix.html -.. _`chmod(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/chmod.2.html -.. _`chmod(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/chmod.3posix.html -.. _`chown(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chown.1.html -.. _`chown(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chown.1posix.html -.. _`chown(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/chown.2.html -.. _`chown32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/chown32.2.html -.. _`chown(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/chown.3posix.html -.. _`chpasswd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/chpasswd.8.html -.. _`chroot(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/chroot.2.html -.. _`chroot(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/chroot.8.html -.. _`chrt(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chrt.1.html -.. _`chsh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/chsh.1.html -.. _`cimag(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cimag.3.html -.. _`cimag(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cimag.3posix.html -.. _`cimagf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cimagf.3.html -.. _`cimagf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cimagf.3posix.html -.. _`cimagl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cimagl.3.html -.. _`cimagl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cimagl.3posix.html -.. _`ciphers(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ciphers.1ssl.html -.. _`cksum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cksum.1.html -.. _`cksum(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cksum.1posix.html -.. _`clear(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/clear.1.html -.. _`clear(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clear.3ncurses.html -.. _`clear_console(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/clear_console.1.html -.. _`clearenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clearenv.3.html -.. _`clearerr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clearerr.3.html -.. _`clearerr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clearerr.3posix.html -.. _`clearerr_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clearerr_unlocked.3.html -.. _`clearok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clearok.3ncurses.html -.. _`clnt_broadcast(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_broadcast.3.html -.. _`clnt_call(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_call.3.html -.. _`clnt_control(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_control.3.html -.. _`clnt_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_create.3.html -.. _`clnt_destroy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_destroy.3.html -.. _`clnt_freeres(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_freeres.3.html -.. _`clnt_geterr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_geterr.3.html -.. _`clnt_pcreateerror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_pcreateerror.3.html -.. _`clnt_perrno(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_perrno.3.html -.. _`clnt_perror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_perror.3.html -.. _`clntraw_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clntraw_create.3.html -.. _`clnt_spcreateerror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_spcreateerror.3.html -.. _`clnt_sperrno(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_sperrno.3.html -.. _`clnt_sperror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnt_sperror.3.html -.. _`clnttcp_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clnttcp_create.3.html -.. _`clntudp_bufcreate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clntudp_bufcreate.3.html -.. _`clntudp_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clntudp_create.3.html -.. _`clock(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock.3.html -.. _`clock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock.3posix.html -.. _`clock(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/clock.8.html -.. _`clock_getcpuclockid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_getcpuclockid.3.html -.. _`clock_getcpuclockid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_getcpuclockid.3posix.html -.. _`clock_getres(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/clock_getres.2.html -.. _`clock_getres(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_getres.3.html -.. _`clock_getres(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_getres.3posix.html -.. _`clock_gettime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/clock_gettime.2.html -.. _`clock_gettime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_gettime.3.html -.. _`clock_gettime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_gettime.3posix.html -.. _`clock_nanosleep(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/clock_nanosleep.2.html -.. _`clock_nanosleep(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_nanosleep.3posix.html -.. _`clock_settime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/clock_settime.2.html -.. _`clock_settime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_settime.3.html -.. _`clock_settime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clock_settime.3posix.html -.. _`clog10(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clog10.3.html -.. _`clog10f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clog10f.3.html -.. _`clog10l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clog10l.3.html -.. _`clog2(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clog2.3.html -.. _`clog2f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clog2f.3.html -.. _`clog2l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clog2l.3.html -.. _`clog(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clog.3.html -.. _`clog(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clog.3posix.html -.. _`clogf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clogf.3.html -.. _`clogf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clogf.3posix.html -.. _`clogl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clogl.3.html -.. _`clogl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clogl.3posix.html -.. _`__clone2(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/__clone2.2.html -.. _`clone2(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/clone2.2.html -.. _`clone(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/clone.2.html -.. _`close(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/close.2.html -.. _`close(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/close.3posix.html -.. _`closedir(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/closedir.3.html -.. _`closedir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/closedir.3posix.html -.. _`closelog(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/closelog.3.html -.. _`closelog(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/closelog.3posix.html -.. _`clrtobot(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clrtobot.3ncurses.html -.. _`clrtoeol(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/clrtoeol.3ncurses.html -.. _`cmp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cmp.1.html -.. _`cmp(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cmp.1posix.html -.. _`cmsg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cmsg.3.html -.. _`cmsg_align(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cmsg_align.3.html -.. _`cmsg_firsthdr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cmsg_firsthdr.3.html -.. _`cmsg_nxthdr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cmsg_nxthdr.3.html -.. _`cmsg_space(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cmsg_space.3.html -.. _`col(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/col.1.html -.. _`colcrt(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/colcrt.1.html -.. _`colon(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/colon.1posix.html -.. _`color(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/color.3ncurses.html -.. _`color_content(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/color_content.3ncurses.html -.. _`color_pair(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/color_pair.3ncurses.html -.. _`color_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/color_set.3ncurses.html -.. _`colrm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/colrm.1.html -.. _`column(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/column.1.html -.. _`comm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/comm.1.html -.. _`comm(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/comm.1posix.html -.. _`command(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/command.1posix.html -.. _`complex(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/complex.5.html -.. _`complex(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/complex.7.html -.. _`complex.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/complex.h.7posix.html -.. _`compose(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/compose.1.html -.. _`compose(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/compose.5.html -.. _`compress(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/compress.1posix.html -.. _`config(5ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man5/config.5ssl.html -.. _`config_data(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/config_data.1.html -.. _`config::file(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/config::file.3pm.html -.. _`confstr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/confstr.3.html -.. _`confstr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/confstr.3posix.html -.. _`conj(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/conj.3.html -.. _`conj(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/conj.3posix.html -.. _`conjf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/conjf.3.html -.. _`conjf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/conjf.3posix.html -.. _`conjl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/conjl.3.html -.. _`conjl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/conjl.3posix.html -.. _`connect(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/connect.2.html -.. _`connect(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/connect.3posix.html -.. _`console_codes(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/console_codes.4.html -.. _`console_ioctl(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/console_ioctl.4.html -.. _`continue(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/continue.1posix.html -.. _`copysign(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/copysign.3.html -.. _`copysign(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/copysign.3posix.html -.. _`copysignf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/copysignf.3.html -.. _`copysignf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/copysignf.3posix.html -.. _`copysignl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/copysignl.3.html -.. _`copysignl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/copysignl.3posix.html -.. _`copywin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/copywin.3ncurses.html -.. _`core(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/core.5.html -.. _`corelist(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/corelist.1.html -.. _`cos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cos.3.html -.. _`cos(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cos.3posix.html -.. _`cosf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cosf.3.html -.. _`cosf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cosf.3posix.html -.. _`cosh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cosh.3.html -.. _`cosh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cosh.3posix.html -.. _`coshf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/coshf.3.html -.. _`coshf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/coshf.3posix.html -.. _`coshl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/coshl.3.html -.. _`coshl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/coshl.3posix.html -.. _`cosl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cosl.3.html -.. _`cosl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cosl.3posix.html -.. _`cp1251(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/cp1251.7.html -.. _`cp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cp.1.html -.. _`cp(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cp.1posix.html -.. _`cpan(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cpan.1.html -.. _`cpan2dist(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cpan2dist.1.html -.. _`cpanp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cpanp.1.html -.. _`cpgr(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/cpgr.8.html -.. _`cpio(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cpio.1.html -.. _`cpio.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/cpio.h.7posix.html -.. _`cpow(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpow.3.html -.. _`cpow(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpow.3posix.html -.. _`cpowf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpowf.3.html -.. _`cpowf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpowf.3posix.html -.. _`cpowl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpowl.3.html -.. _`cpowl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpowl.3posix.html -.. _`cpp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cpp.1.html -.. _`cpp-4.4(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cpp-4.4.1.html -.. _`cppw(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/cppw.8.html -.. _`cproj(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cproj.3.html -.. _`cproj(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cproj.3posix.html -.. _`cprojf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cprojf.3.html -.. _`cprojf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cprojf.3posix.html -.. _`cprojl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cprojl.3.html -.. _`cprojl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cprojl.3posix.html -.. _`cpu_alloc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_alloc.3.html -.. _`cpu_alloc_size(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_alloc_size.3.html -.. _`cpu_and(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_and.3.html -.. _`cpu_and_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_and_s.3.html -.. _`cpu_clr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_clr.3.html -.. _`cpu_clr_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_clr_s.3.html -.. _`cpu_count(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_count.3.html -.. _`cpu_count_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_count_s.3.html -.. _`cpu_equal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_equal.3.html -.. _`cpu_equal_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_equal_s.3.html -.. _`cpu_free(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_free.3.html -.. _`cpuid(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/cpuid.4.html -.. _`cpu_isset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_isset.3.html -.. _`cpu_isset_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_isset_s.3.html -.. _`cpu_or(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_or.3.html -.. _`cpu_or_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_or_s.3.html -.. _`cpu_set(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_set.3.html -.. _`cpuset(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/cpuset.7.html -.. _`cpu_set_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_set_s.3.html -.. _`cpu_xor(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_xor.3.html -.. _`cpu_xor_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_xor_s.3.html -.. _`cpu_zero(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_zero.3.html -.. _`cpu_zero_s(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cpu_zero_s.3.html -.. _`creal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/creal.3.html -.. _`creal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/creal.3posix.html -.. _`crealf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/crealf.3.html -.. _`crealf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/crealf.3posix.html -.. _`creall(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/creall.3.html -.. _`creall(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/creall.3posix.html -.. _`creat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/creat.2.html -.. _`creat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/creat.3posix.html -.. _`credentials(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/credentials.7.html -.. _`c_rehash(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/c_rehash.1ssl.html -.. _`crl(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/crl.1ssl.html -.. _`crl2pkcs7(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/crl2pkcs7.1ssl.html -.. _`cron(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/cron.8.html -.. _`crontab(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/crontab.1.html -.. _`crontab(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/crontab.1posix.html -.. _`crontab(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/crontab.5.html -.. _`crypt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/crypt.3.html -.. _`crypt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/crypt.3posix.html -.. _`crypt_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/crypt_r.3.html -.. _`csh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/csh.1.html -.. _`csin(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csin.3.html -.. _`csin(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csin.3posix.html -.. _`csinf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinf.3.html -.. _`csinf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinf.3posix.html -.. _`csinh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinh.3.html -.. _`csinh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinh.3posix.html -.. _`csinhf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinhf.3.html -.. _`csinhf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinhf.3posix.html -.. _`csinhl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinhl.3.html -.. _`csinhl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinhl.3posix.html -.. _`csinl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinl.3.html -.. _`csinl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csinl.3posix.html -.. _`csplit(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/csplit.1.html -.. _`csplit(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/csplit.1posix.html -.. _`csqrt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csqrt.3.html -.. _`csqrt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csqrt.3posix.html -.. _`csqrtf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csqrtf.3.html -.. _`csqrtf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csqrtf.3posix.html -.. _`csqrtl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csqrtl.3.html -.. _`csqrtl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/csqrtl.3posix.html -.. _`ctags(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ctags.1posix.html -.. _`ctan(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctan.3.html -.. _`ctan(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctan.3posix.html -.. _`ctanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanf.3.html -.. _`ctanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanf.3posix.html -.. _`ctanh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanh.3.html -.. _`ctanh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanh.3posix.html -.. _`ctanhf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanhf.3.html -.. _`ctanhf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanhf.3posix.html -.. _`ctanhl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanhl.3.html -.. _`ctanhl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanhl.3posix.html -.. _`ctanl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanl.3.html -.. _`ctanl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctanl.3posix.html -.. _`ctermid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctermid.3.html -.. _`ctermid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctermid.3posix.html -.. _`ctime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctime.3.html -.. _`ctime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctime.3posix.html -.. _`ctime_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctime_r.3.html -.. _`ctime_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ctime_r.3posix.html -.. _`ctrlaltdel(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ctrlaltdel.8.html -.. _`ctstat(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ctstat.8.html -.. _`ctype.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ctype.h.7posix.html -.. _`cunit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cunit.3.html -.. _`curl(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/curl.1.html -.. _`current_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/current_field.3form.html -.. _`current_item(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/current_item.3menu.html -.. _`curses_version(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/curses_version.3ncurses.html -.. _`cursor(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cursor.3form.html -.. _`cursor(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cursor.3menu.html -.. _`curs_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/curs_set.3ncurses.html -.. _`cuserid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/cuserid.3.html -.. _`cut(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cut.1.html -.. _`cut(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cut.1posix.html -.. _`cxref(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/cxref.1posix.html -.. _`cytune(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/cytune.8.html -.. _`daemon(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/daemon.3.html -.. _`dash(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dash.1.html -.. _`data(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/data.3form.html -.. _`data_ahead(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/data_ahead.3form.html -.. _`data_behind(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/data_behind.3form.html -.. _`date(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/date.1.html -.. _`date(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/date.1posix.html -.. _`date::format(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/date::format.3pm.html -.. _`date::language(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/date::language.3pm.html -.. _`date::language::hungarian(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/date::language::hungarian.3pm.html -.. _`date::parse(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/date::parse.3pm.html -.. _`daylight(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/daylight.3.html -.. _`daylight(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/daylight.3posix.html -.. _`db(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/db.3.html -.. _`dbm_clearerr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_clearerr.3posix.html -.. _`dbm_close(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_close.3posix.html -.. _`dbm_delete(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_delete.3posix.html -.. _`dbm_error(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_error.3posix.html -.. _`dbm_fetch(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_fetch.3posix.html -.. _`dbm_firstkey(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_firstkey.3posix.html -.. _`dbmmanage(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dbmmanage.1.html -.. _`dbm_nextkey(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_nextkey.3posix.html -.. _`dbm_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_open.3posix.html -.. _`dbm_store(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbm_store.3posix.html -.. _`dbopen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dbopen.3.html -.. _`dd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dd.1.html -.. _`dd(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dd.1posix.html -.. _`ddate(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ddate.1.html -.. _`ddp(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ddp.7.html -.. _`deb(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb.5.html -.. _`debconf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/debconf.1.html -.. _`debconf-apt-progress(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/debconf-apt-progress.1.html -.. _`debconf-communicate(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/debconf-communicate.1.html -.. _`debconf-copydb(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/debconf-copydb.1.html -.. _`debconf-escape(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/debconf-escape.1.html -.. _`debconf-set-selections(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/debconf-set-selections.1.html -.. _`debconf-show(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/debconf-show.1.html -.. _`deb-control(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-control.5.html -.. _`deb-extra-override(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-extra-override.5.html -.. _`deb-old(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-old.5.html -.. _`deb-override(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-override.5.html -.. _`deb-shlibs(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-shlibs.5.html -.. _`deb-split(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-split.5.html -.. _`deb-substvars(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-substvars.5.html -.. _`deb-symbols(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-symbols.5.html -.. _`deb-triggers(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-triggers.5.html -.. _`debugfs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/debugfs.8.html -.. _`deb-version(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deb-version.5.html -.. _`default_colors(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/default_colors.3ncurses.html -.. _`define_key(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/define_key.3ncurses.html -.. _`def_prog_mode(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/def_prog_mode.3ncurses.html -.. _`def_shell_mode(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/def_shell_mode.3ncurses.html -.. _`delay_output(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/delay_output.3ncurses.html -.. _`delch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/delch.3ncurses.html -.. _`del_curterm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/del_curterm.3ncurses.html -.. _`deleteln(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/deleteln.3ncurses.html -.. _`delgroup(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/delgroup.8.html -.. _`del_panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/del_panel.3curses.html -.. _`delpart(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/delpart.8.html -.. _`delscreen(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/delscreen.3ncurses.html -.. _`delta(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/delta.1posix.html -.. _`deluser(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/deluser.8.html -.. _`deluser.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/deluser.conf.5.html -.. _`delwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/delwin.3ncurses.html -.. _`depmod(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/depmod.8.html -.. _`depmod.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/depmod.conf.5.html -.. _`derwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/derwin.3ncurses.html -.. _`des_crypt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/des_crypt.3.html -.. _`des_modes(7ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man7/des_modes.7ssl.html -.. _`des_setparity(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/des_setparity.3.html -.. _`df(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/df.1.html -.. _`df(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/df.1posix.html -.. _`dgst(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dgst.1ssl.html -.. _`dhclient(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/dhclient.8.html -.. _`dhclient.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/dhclient.conf.5.html -.. _`dhclient.leases(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/dhclient.leases.5.html -.. _`dhclient-script(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/dhclient-script.8.html -.. _`dhcp-eval(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/dhcp-eval.5.html -.. _`dhcp-options(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/dhcp-options.5.html -.. _`dh_installxmlcatalogs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dh_installxmlcatalogs.1.html -.. _`dhparam(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dhparam.1ssl.html -.. _`dh_pycentral(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dh_pycentral.1.html -.. _`dh_pysupport(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dh_pysupport.1.html -.. _`dh_python2(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dh_python2.1.html -.. _`diff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/diff.1.html -.. _`diff(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/diff.1posix.html -.. _`diff3(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/diff3.1.html -.. _`diffindex-download(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/diffindex-download.1.html -.. _`diffindex-rred(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/diffindex-rred.1.html -.. _`difftime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/difftime.3.html -.. _`difftime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/difftime.3posix.html -.. _`dir(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dir.1.html -.. _`dircolors(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dircolors.1.html -.. _`dir_colors(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/dir_colors.5.html -.. _`dirent.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/dirent.h.7posix.html -.. _`dirfd(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dirfd.3.html -.. _`dirname(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dirname.1.html -.. _`dirname(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dirname.1posix.html -.. _`dirname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dirname.3.html -.. _`dirname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dirname.3posix.html -.. _`div(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/div.3.html -.. _`div(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/div.3posix.html -.. _`dladdr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dladdr.3.html -.. _`dlclose(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlclose.3.html -.. _`dlclose(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlclose.3posix.html -.. _`dlerror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlerror.3.html -.. _`dlerror(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlerror.3posix.html -.. _`dlfcn.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/dlfcn.h.7posix.html -.. _`dl_iterate_phdr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dl_iterate_phdr.3.html -.. _`dlltool(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dlltool.1.html -.. _`dlopen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlopen.3.html -.. _`dlopen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlopen.3posix.html -.. _`dlsym(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlsym.3.html -.. _`dlsym(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlsym.3posix.html -.. _`dlvsym(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dlvsym.3.html -.. _`dmesg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dmesg.1.html -.. _`dmidecode(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/dmidecode.8.html -.. _`dn_comp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dn_comp.3.html -.. _`dn_expand(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dn_expand.3.html -.. _`dnsdomainname(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dnsdomainname.1.html -.. _`domainname(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/domainname.1.html -.. _`dot(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dot.1posix.html -.. _`doupdate(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/doupdate.3ncurses.html -.. _`dpkg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg.1.html -.. _`dpkg-architecture(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-architecture.1.html -.. _`dpkg-buildflags(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-buildflags.1.html -.. _`dpkg::buildflags(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::buildflags.3.html -.. _`dpkg::buildoptions(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::buildoptions.3.html -.. _`dpkg-buildpackage(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-buildpackage.1.html -.. _`dpkg.cfg(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/dpkg.cfg.5.html -.. _`dpkg::changelog(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::changelog.3.html -.. _`dpkg::changelog::debian(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::changelog::debian.3.html -.. _`dpkg::changelog::entry(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::changelog::entry.3.html -.. _`dpkg::changelog::entry::debian(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::changelog::entry::debian.3.html -.. _`dpkg::changelog::parse(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::changelog::parse.3.html -.. _`dpkg-checkbuilddeps(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-checkbuilddeps.1.html -.. _`dpkg::checksums(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::checksums.3.html -.. _`dpkg::compression(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::compression.3.html -.. _`dpkg::compression::filehandle(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::compression::filehandle.3.html -.. _`dpkg::compression::process(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::compression::process.3.html -.. _`dpkg::conf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::conf.3.html -.. _`dpkg::control(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::control.3.html -.. _`dpkg::control::changelog(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::control::changelog.3.html -.. _`dpkg::control::fields(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::control::fields.3.html -.. _`dpkg::control::hash(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::control::hash.3.html -.. _`dpkg::control::info(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::control::info.3.html -.. _`dpkg::control::types(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::control::types.3.html -.. _`dpkg-deb(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-deb.1.html -.. _`dpkg::deps(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::deps.3.html -.. _`dpkg-distaddfile(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-distaddfile.1.html -.. _`dpkg-divert(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/dpkg-divert.8.html -.. _`dpkg-genchanges(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-genchanges.1.html -.. _`dpkg-gencontrol(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-gencontrol.1.html -.. _`dpkg-gensymbols(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-gensymbols.1.html -.. _`dpkg::index(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::index.3.html -.. _`dpkg::interface::storable(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::interface::storable.3.html -.. _`dpkg::ipc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::ipc.3.html -.. _`dpkg-maintscript-helper(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-maintscript-helper.1.html -.. _`dpkg-mergechangelogs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-mergechangelogs.1.html -.. _`dpkg-name(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-name.1.html -.. _`dpkg-parsechangelog(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-parsechangelog.1.html -.. _`dpkg::path(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::path.3.html -.. _`dpkg-preconfigure(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/dpkg-preconfigure.8.html -.. _`dpkg-query(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-query.1.html -.. _`dpkg-reconfigure(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/dpkg-reconfigure.8.html -.. _`dpkg-scanpackages(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-scanpackages.1.html -.. _`dpkg-scansources(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-scansources.1.html -.. _`dpkg-shlibdeps(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-shlibdeps.1.html -.. _`dpkg-source(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-source.1.html -.. _`dpkg-split(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-split.1.html -.. _`dpkg-statoverride(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/dpkg-statoverride.8.html -.. _`dpkg::substvars(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::substvars.3.html -.. _`dpkg-trigger(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-trigger.1.html -.. _`dpkg-vendor(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dpkg-vendor.1.html -.. _`dpkg::vendor(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::vendor.3.html -.. _`dpkg::vendor::debian(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::vendor::debian.3.html -.. _`dpkg::vendor::default(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::vendor::default.3.html -.. _`dpkg::vendor::ubuntu(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::vendor::ubuntu.3.html -.. _`dpkg::version(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dpkg::version.3.html -.. _`dprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dprintf.3.html -.. _`dprofpp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dprofpp.1.html -.. _`drand48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/drand48.3.html -.. _`drand48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/drand48.3posix.html -.. _`drand48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/drand48_r.3.html -.. _`drem(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/drem.3.html -.. _`dremf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dremf.3.html -.. _`dreml(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dreml.3.html -.. _`driver(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/driver.3form.html -.. _`driver(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/driver.3menu.html -.. _`dsa(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dsa.1ssl.html -.. _`dsaparam(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/dsaparam.1ssl.html -.. _`dsp56k(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/dsp56k.4.html -.. _`du(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/du.1.html -.. _`du(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/du.1posix.html -.. _`dumpe2fs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/dumpe2fs.8.html -.. _`dup2(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/dup2.2.html -.. _`dup2(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dup2.3posix.html -.. _`dup(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/dup.2.html -.. _`dup3(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/dup3.2.html -.. _`dup(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dup.3posix.html -.. _`dup_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dup_field.3form.html -.. _`dupwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dupwin.3ncurses.html -.. _`dynamic_field_info(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dynamic_field_info.3form.html -.. _`dysize(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/dysize.3.html -.. _`e2freefrag(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/e2freefrag.8.html -.. _`e2fsck(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/e2fsck.8.html -.. _`e2fsck.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/e2fsck.conf.5.html -.. _`e2image(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/e2image.8.html -.. _`e2label(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/e2label.8.html -.. _`e2undo(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/e2undo.8.html -.. _`eaccess(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/eaccess.3.html -.. _`ec(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ec.1ssl.html -.. _`ecb_crypt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ecb_crypt.3.html -.. _`echo(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/echo.1.html -.. _`echo(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/echo.1posix.html -.. _`echo(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/echo.3ncurses.html -.. _`echochar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/echochar.3ncurses.html -.. _`echo_wchar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/echo_wchar.3ncurses.html -.. _`ecparam(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ecparam.1ssl.html -.. _`ecvt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ecvt.3.html -.. _`ecvt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ecvt.3posix.html -.. _`ecvt_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ecvt_r.3.html -.. _`ed(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ed.1posix.html -.. _`edata(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/edata.3.html -.. _`edit(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/edit.1.html -.. _`editor(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/editor.1.html -.. _`egrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/egrep.1.html -.. _`elf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/elf.5.html -.. _`enc(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/enc.1ssl.html -.. _`enc2xs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/enc2xs.1.html -.. _`encrypt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/encrypt.3.html -.. _`encrypt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/encrypt.3posix.html -.. _`encrypt_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/encrypt_r.3.html -.. _`end(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/end.3.html -.. _`endaliasent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endaliasent.3.html -.. _`endfsent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endfsent.3.html -.. _`endgrent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endgrent.3.html -.. _`endgrent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endgrent.3posix.html -.. _`endhostent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endhostent.3.html -.. _`endhostent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endhostent.3posix.html -.. _`endian(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endian.3.html -.. _`endmntent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endmntent.3.html -.. _`endnetent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endnetent.3.html -.. _`endnetent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endnetent.3posix.html -.. _`endnetgrent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endnetgrent.3.html -.. _`endprotoent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endprotoent.3.html -.. _`endprotoent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endprotoent.3posix.html -.. _`endpwent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endpwent.3.html -.. _`endpwent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endpwent.3posix.html -.. _`endrpcent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endrpcent.3.html -.. _`endservent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endservent.3.html -.. _`endservent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endservent.3posix.html -.. _`endspent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endspent.3.html -.. _`endttyent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endttyent.3.html -.. _`endusershell(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endusershell.3.html -.. _`endutent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endutent.3.html -.. _`endutxent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endutxent.3.html -.. _`endutxent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endutxent.3posix.html -.. _`endwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/endwin.3ncurses.html -.. _`env(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/env.1.html -.. _`env(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/env.1posix.html -.. _`environ(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/environ.3posix.html -.. _`environ(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/environ.7.html -.. _`envz(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/envz.3.html -.. _`envz_add(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/envz_add.3.html -.. _`envz_entry(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/envz_entry.3.html -.. _`envz_get(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/envz_get.3.html -.. _`envz_merge(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/envz_merge.3.html -.. _`envz_remove(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/envz_remove.3.html -.. _`envz_strip(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/envz_strip.3.html -.. _`epoll(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/epoll.4.html -.. _`epoll(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/epoll.7.html -.. _`epoll_create1(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/epoll_create1.2.html -.. _`epoll_create(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/epoll_create.2.html -.. _`epoll_ctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/epoll_ctl.2.html -.. _`epoll_pwait(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/epoll_pwait.2.html -.. _`epoll_wait(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/epoll_wait.2.html -.. _`eqn(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/eqn.1.html -.. _`erand48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erand48.3.html -.. _`erand48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erand48.3posix.html -.. _`erand48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erand48_r.3.html -.. _`erase(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erase.3ncurses.html -.. _`erasechar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erasechar.3ncurses.html -.. _`erasewchar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erasewchar.3ncurses.html -.. _`erf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erf.3.html -.. _`erf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erf.3posix.html -.. _`erfc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erfc.3.html -.. _`erfc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erfc.3posix.html -.. _`erfcf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erfcf.3.html -.. _`erfcf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erfcf.3posix.html -.. _`erfcl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erfcl.3.html -.. _`erfcl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erfcl.3posix.html -.. _`erff(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erff.3.html -.. _`erff(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erff.3posix.html -.. _`erfl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erfl.3.html -.. _`erfl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/erfl.3posix.html -.. _`err(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/err.3.html -.. _`errno(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/errno.3.html -.. _`errno(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/errno.3posix.html -.. _`errno.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/errno.h.7posix.html -.. _`error(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/error.3.html -.. _`error(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/error.3pm.html -.. _`error_at_line(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/error_at_line.3.html -.. _`error_message_count(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/error_message_count.3.html -.. _`error_on_per_line(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/error_on_per_line.3.html -.. _`error_print_progname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/error_print_progname.3.html -.. _`error::simple(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/error::simple.3pm.html -.. _`errstr(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/errstr.1ssl.html -.. _`errx(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/errx.3.html -.. _`etc-aliases(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/etc-aliases.5.html -.. _`etc-email-addresses(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/etc-email-addresses.5.html -.. _`etext(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/etext.3.html -.. _`ether_aton(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ether_aton.3.html -.. _`ether_aton_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ether_aton_r.3.html -.. _`ether_hostton(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ether_hostton.3.html -.. _`ether_line(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ether_line.3.html -.. _`ether_ntoa(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ether_ntoa.3.html -.. _`ether_ntoa_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ether_ntoa_r.3.html -.. _`ether_ntohost(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ether_ntohost.3.html -.. _`ethers(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/ethers.5.html -.. _`euidaccess(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/euidaccess.3.html -.. _`eval(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/eval.1posix.html -.. _`eventfd2(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/eventfd2.2.html -.. _`eventfd(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/eventfd.2.html -.. _`eventfd_read(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/eventfd_read.3.html -.. _`eventfd_write(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/eventfd_write.3.html -.. _`ex(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ex.1.html -.. _`ex(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ex.1posix.html -.. _`exec(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/exec.1posix.html -.. _`exec(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exec.3.html -.. _`exec(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exec.3posix.html -.. _`execl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execl.3.html -.. _`execl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execl.3posix.html -.. _`execle(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execle.3.html -.. _`execle(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execle.3posix.html -.. _`execlp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execlp.3.html -.. _`execlp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execlp.3posix.html -.. _`execv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execv.3.html -.. _`execv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execv.3posix.html -.. _`execve(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/execve.2.html -.. _`execve(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execve.3posix.html -.. _`execvp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execvp.3.html -.. _`execvp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/execvp.3posix.html -.. _`exicyclog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exicyclog.8.html -.. _`exigrep(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exigrep.8.html -.. _`exim4(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim4.8.html -.. _`exim4-config_files(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4-config_files.5.html -.. _`exim4_exim_crt(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_exim_crt.5.html -.. _`exim4_exim_key(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_exim_key.5.html -.. _`exim4_hubbed_hosts(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_hubbed_hosts.5.html -.. _`exim4_local_domain_dnsbl_whitelist(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_local_domain_dnsbl_whitelist.5.html -.. _`exim4_local_host_blacklist(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_local_host_blacklist.5.html -.. _`exim4_local_host_whitelist(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_local_host_whitelist.5.html -.. _`exim4_local_rcpt_callout(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_local_rcpt_callout.5.html -.. _`exim4_local_sender_blacklist(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_local_sender_blacklist.5.html -.. _`exim4_local_sender_callout(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_local_sender_callout.5.html -.. _`exim4_local_sender_whitelist(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_local_sender_whitelist.5.html -.. _`exim4_passwd(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_passwd.5.html -.. _`exim4_passwd_client(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/exim4_passwd_client.5.html -.. _`exim(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim.8.html -.. _`exim_checkaccess(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim_checkaccess.8.html -.. _`exim_convert4r4(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim_convert4r4.8.html -.. _`exim_db(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim_db.8.html -.. _`exim_dbmbuild(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim_dbmbuild.8.html -.. _`exim_dumpdb(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim_dumpdb.8.html -.. _`exim_fixdb(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim_fixdb.8.html -.. _`exim_lock(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim_lock.8.html -.. _`eximstats(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/eximstats.8.html -.. _`exim_tidydb(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exim_tidydb.8.html -.. _`exinext(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exinext.8.html -.. _`exipick(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exipick.8.html -.. _`exiqgrep(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exiqgrep.8.html -.. _`exiqsumm(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exiqsumm.8.html -.. _`exit(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/exit.1posix.html -.. _`_exit(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/_exit.2.html -.. _`exit(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/exit.2.html -.. _`exit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exit.3.html -.. _`_exit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_exit.3posix.html -.. _`exit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exit.3posix.html -.. _`exit_group(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/exit_group.2.html -.. _`exiwhat(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/exiwhat.8.html -.. _`exp10(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp10.3.html -.. _`exp10f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp10f.3.html -.. _`exp10l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp10l.3.html -.. _`exp2(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp2.3.html -.. _`exp2(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp2.3posix.html -.. _`exp2f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp2f.3.html -.. _`exp2f(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp2f.3posix.html -.. _`exp2l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp2l.3.html -.. _`exp2l(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp2l.3posix.html -.. _`exp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp.3.html -.. _`exp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/exp.3posix.html -.. _`expand(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/expand.1.html -.. _`expand(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/expand.1posix.html -.. _`expf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expf.3.html -.. _`expf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expf.3posix.html -.. _`expiry(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/expiry.1.html -.. _`expl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expl.3.html -.. _`expl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expl.3posix.html -.. _`expm1(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expm1.3.html -.. _`expm1(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expm1.3posix.html -.. _`expm1f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expm1f.3.html -.. _`expm1f(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expm1f.3posix.html -.. _`expm1l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expm1l.3.html -.. _`expm1l(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/expm1l.3posix.html -.. _`export(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/export.1posix.html -.. _`expr(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/expr.1.html -.. _`expr(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/expr.1posix.html -.. _`extensions(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/extensions.3ncurses.html -.. _`fabs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fabs.3.html -.. _`fabs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fabs.3posix.html -.. _`fabsf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fabsf.3.html -.. _`fabsf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fabsf.3posix.html -.. _`fabsl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fabsl.3.html -.. _`fabsl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fabsl.3posix.html -.. _`faccessat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/faccessat.2.html -.. _`factor(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/factor.1.html -.. _`fadvise64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fadvise64.2.html -.. _`fadvise64_64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fadvise64_64.2.html -.. _`faillog(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/faillog.5.html -.. _`faillog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/faillog.8.html -.. _`faked(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/faked.1.html -.. _`faked-sysv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/faked-sysv.1.html -.. _`faked-tcp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/faked-tcp.1.html -.. _`fakeroot(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fakeroot.1.html -.. _`fakeroot-sysv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fakeroot-sysv.1.html -.. _`fakeroot-tcp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fakeroot-tcp.1.html -.. _`fallocate(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fallocate.1.html -.. _`fallocate(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fallocate.2.html -.. _`false(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/false.1.html -.. _`false(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/false.1posix.html -.. _`fattach(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fattach.3posix.html -.. _`__fbufsize(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__fbufsize.3.html -.. _`fc(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fc.1posix.html -.. _`fchdir(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fchdir.2.html -.. _`fchdir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fchdir.3posix.html -.. _`fchmod(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fchmod.2.html -.. _`fchmod(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fchmod.3posix.html -.. _`fchmodat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fchmodat.2.html -.. _`fchown(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fchown.2.html -.. _`fchown32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fchown32.2.html -.. _`fchown(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fchown.3posix.html -.. _`fchownat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fchownat.2.html -.. _`fclose(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fclose.3.html -.. _`fclose(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fclose.3posix.html -.. _`fcloseall(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fcloseall.3.html -.. _`fcntl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fcntl.2.html -.. _`fcntl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fcntl.3posix.html -.. _`fcntl64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fcntl64.2.html -.. _`fcntl.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/fcntl.h.7posix.html -.. _`fcvt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fcvt.3.html -.. _`fcvt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fcvt.3posix.html -.. _`fcvt_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fcvt_r.3.html -.. _`fdatasync(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fdatasync.2.html -.. _`fdatasync(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdatasync.3posix.html -.. _`fd_clr(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fd_clr.2.html -.. _`fd_clr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fd_clr.3.html -.. _`fd_clr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fd_clr.3posix.html -.. _`fdetach(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdetach.3posix.html -.. _`fdformat(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fdformat.8.html -.. _`fdim(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdim.3.html -.. _`fdim(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdim.3posix.html -.. _`fdimf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdimf.3.html -.. _`fdimf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdimf.3posix.html -.. _`fdiml(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdiml.3.html -.. _`fdiml(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdiml.3posix.html -.. _`fdisk(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fdisk.8.html -.. _`fd_isset(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fd_isset.2.html -.. _`fd_isset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fd_isset.3.html -.. _`fd_isset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fd_isset.3posix.html -.. _`fdopen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdopen.3.html -.. _`fdopen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdopen.3posix.html -.. _`fdopendir(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fdopendir.3.html -.. _`fd_set(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fd_set.2.html -.. _`fd_set(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fd_set.3.html -.. _`fd_set(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fd_set.3posix.html -.. _`fd_zero(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fd_zero.2.html -.. _`fd_zero(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fd_zero.3.html -.. _`fd_zero(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fd_zero.3posix.html -.. _`feature_test_macros(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/feature_test_macros.7.html -.. _`feclearexcept(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feclearexcept.3.html -.. _`feclearexcept(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feclearexcept.3posix.html -.. _`fedisableexcept(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fedisableexcept.3.html -.. _`feenableexcept(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feenableexcept.3.html -.. _`fegetenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fegetenv.3.html -.. _`fegetenv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fegetenv.3posix.html -.. _`fegetexcept(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fegetexcept.3.html -.. _`fegetexceptflag(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fegetexceptflag.3.html -.. _`fegetexceptflag(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fegetexceptflag.3posix.html -.. _`fegetround(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fegetround.3.html -.. _`fegetround(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fegetround.3posix.html -.. _`feholdexcept(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feholdexcept.3.html -.. _`feholdexcept(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feholdexcept.3posix.html -.. _`fenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fenv.3.html -.. _`fenv.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/fenv.h.7posix.html -.. _`feof(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feof.3.html -.. _`feof(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feof.3posix.html -.. _`feof_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feof_unlocked.3.html -.. _`feraiseexcept(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feraiseexcept.3.html -.. _`feraiseexcept(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feraiseexcept.3posix.html -.. _`ferror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ferror.3.html -.. _`ferror(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ferror.3posix.html -.. _`ferror_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ferror_unlocked.3.html -.. _`fesetenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fesetenv.3.html -.. _`fesetenv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fesetenv.3posix.html -.. _`fesetexceptflag(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fesetexceptflag.3.html -.. _`fesetexceptflag(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fesetexceptflag.3posix.html -.. _`fesetround(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fesetround.3.html -.. _`fesetround(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fesetround.3posix.html -.. _`fetestexcept(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fetestexcept.3.html -.. _`fetestexcept(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fetestexcept.3posix.html -.. _`feupdateenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feupdateenv.3.html -.. _`feupdateenv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/feupdateenv.3posix.html -.. _`fexecve(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fexecve.3.html -.. _`fflush(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fflush.3.html -.. _`fflush(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fflush.3posix.html -.. _`fflush_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fflush_unlocked.3.html -.. _`ffs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ffs.3.html -.. _`ffs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ffs.3posix.html -.. _`ffsl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ffsl.3.html -.. _`ffsll(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ffsll.3.html -.. _`fg(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fg.1posix.html -.. _`fgetc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetc.3.html -.. _`fgetc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetc.3posix.html -.. _`fgetc_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetc_unlocked.3.html -.. _`fgetgrent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetgrent.3.html -.. _`fgetgrent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetgrent_r.3.html -.. _`fgetpos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetpos.3.html -.. _`fgetpos(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetpos.3posix.html -.. _`fgetpwent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetpwent.3.html -.. _`fgetpwent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetpwent_r.3.html -.. _`fgets(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgets.3.html -.. _`fgets(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgets.3posix.html -.. _`fgetspent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetspent.3.html -.. _`fgetspent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetspent_r.3.html -.. _`fgets_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgets_unlocked.3.html -.. _`fgetwc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetwc.3.html -.. _`fgetwc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetwc.3posix.html -.. _`fgetwc_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetwc_unlocked.3.html -.. _`fgetws(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetws.3.html -.. _`fgetws(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetws.3posix.html -.. _`fgetws_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fgetws_unlocked.3.html -.. _`fgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fgrep.1.html -.. _`field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field.3form.html -.. _`field_arg(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_arg.3form.html -.. _`field_attributes(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_attributes.3form.html -.. _`field_back(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_back.3form.html -.. _`field_buffer(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_buffer.3form.html -.. _`field_count(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_count.3form.html -.. _`field_fore(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_fore.3form.html -.. _`field_index(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_index.3form.html -.. _`field_info(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_info.3form.html -.. _`field_init(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_init.3form.html -.. _`field_just(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_just.3form.html -.. _`field_new(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_new.3form.html -.. _`field_opts(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_opts.3form.html -.. _`field_opts_off(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_opts_off.3form.html -.. _`field_opts_on(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_opts_on.3form.html -.. _`field_pad(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_pad.3form.html -.. _`field_status(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_status.3form.html -.. _`field_term(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_term.3form.html -.. _`field_type(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_type.3form.html -.. _`fieldtype(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fieldtype.3form.html -.. _`field_userptr(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_userptr.3form.html -.. _`field_validation(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/field_validation.3form.html -.. _`fifo(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/fifo.4.html -.. _`fifo(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/fifo.7.html -.. _`file(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/file.1.html -.. _`file(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/file.1posix.html -.. _`filefrag(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/filefrag.8.html -.. _`fileno(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fileno.3.html -.. _`fileno(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fileno.3posix.html -.. _`fileno_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fileno_unlocked.3.html -.. _`filesystems(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/filesystems.5.html -.. _`filter(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/filter.3ncurses.html -.. _`find(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/find.1.html -.. _`find(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/find.1posix.html -.. _`find2perl(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/find2perl.1.html -.. _`findfs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/findfs.8.html -.. _`finite(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/finite.3.html -.. _`finitef(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/finitef.3.html -.. _`finitel(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/finitel.3.html -.. _`flash(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/flash.3ncurses.html -.. _`__flbf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__flbf.3.html -.. _`flex(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/flex.1.html -.. _`flex++(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/flex++.1.html -.. _`float.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/float.h.7posix.html -.. _`flock(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/flock.1.html -.. _`flock(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/flock.2.html -.. _`flockfile(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/flockfile.3.html -.. _`flockfile(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/flockfile.3posix.html -.. _`floor(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/floor.3.html -.. _`floor(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/floor.3posix.html -.. _`floorf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/floorf.3.html -.. _`floorf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/floorf.3posix.html -.. _`floorl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/floorl.3.html -.. _`floorl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/floorl.3posix.html -.. _`flushinp(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/flushinp.3ncurses.html -.. _`_flushlbf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_flushlbf.3.html -.. _`fma(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fma.3.html -.. _`fma(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fma.3posix.html -.. _`fmaf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmaf.3.html -.. _`fmaf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmaf.3posix.html -.. _`fmal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmal.3.html -.. _`fmal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmal.3posix.html -.. _`fmax(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmax.3.html -.. _`fmax(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmax.3posix.html -.. _`fmaxf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmaxf.3.html -.. _`fmaxf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmaxf.3posix.html -.. _`fmaxl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmaxl.3.html -.. _`fmaxl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmaxl.3posix.html -.. _`fmemopen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmemopen.3.html -.. _`fmin(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmin.3.html -.. _`fmin(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmin.3posix.html -.. _`fminf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fminf.3.html -.. _`fminf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fminf.3posix.html -.. _`fminl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fminl.3.html -.. _`fminl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fminl.3posix.html -.. _`fmod(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmod.3.html -.. _`fmod(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmod.3posix.html -.. _`fmodf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmodf.3.html -.. _`fmodf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmodf.3posix.html -.. _`fmodl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmodl.3.html -.. _`fmodl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmodl.3posix.html -.. _`fmt(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fmt.1.html -.. _`fmtmsg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmtmsg.3.html -.. _`fmtmsg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fmtmsg.3posix.html -.. _`fmtmsg.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/fmtmsg.h.7posix.html -.. _`fnmatch(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fnmatch.3.html -.. _`fnmatch(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fnmatch.3posix.html -.. _`fnmatch.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/fnmatch.h.7posix.html -.. _`fold(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fold.1.html -.. _`fold(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fold.1posix.html -.. _`fopen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fopen.3.html -.. _`fopen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fopen.3posix.html -.. _`fopencookie(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fopencookie.3.html -.. _`fork(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fork.2.html -.. _`fork(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fork.3posix.html -.. _`forkpty(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/forkpty.3.html -.. _`form(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form.3form.html -.. _`format(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/format.3menu.html -.. _`form_cursor(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_cursor.3form.html -.. _`form_data(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_data.3form.html -.. _`form_driver(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_driver.3form.html -.. _`form_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field.3form.html -.. _`form_field_attributes(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field_attributes.3form.html -.. _`form_field_buffer(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field_buffer.3form.html -.. _`form_field_info(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field_info.3form.html -.. _`form_field_just(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field_just.3form.html -.. _`form_field_new(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field_new.3form.html -.. _`form_field_opts(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field_opts.3form.html -.. _`form_fields(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_fields.3form.html -.. _`form_fieldtype(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_fieldtype.3form.html -.. _`form_field_userptr(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field_userptr.3form.html -.. _`form_field_validation(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_field_validation.3form.html -.. _`form_hook(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_hook.3form.html -.. _`form_init(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_init.3form.html -.. _`form_new(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_new.3form.html -.. _`form_new_page(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_new_page.3form.html -.. _`form_opts(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_opts.3form.html -.. _`form_opts_off(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_opts_off.3form.html -.. _`form_opts_on(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_opts_on.3form.html -.. _`form_page(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_page.3form.html -.. _`form_post(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_post.3form.html -.. _`form_request_by_name(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_request_by_name.3form.html -.. _`form_request_name(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_request_name.3form.html -.. _`form_requestname(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_requestname.3form.html -.. _`form_sub(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_sub.3form.html -.. _`form_term(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_term.3form.html -.. _`form_userptr(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_userptr.3form.html -.. _`form_win(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/form_win.3form.html -.. _`fort77(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fort77.1posix.html -.. _`fpathconf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fpathconf.3.html -.. _`fpathconf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fpathconf.3posix.html -.. _`fpclassify(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fpclassify.3.html -.. _`fpclassify(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fpclassify.3posix.html -.. _`__fpending(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__fpending.3.html -.. _`fprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fprintf.3.html -.. _`fprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fprintf.3posix.html -.. _`__fpurge(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__fpurge.3.html -.. _`fpurge(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fpurge.3.html -.. _`fputc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputc.3.html -.. _`fputc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputc.3posix.html -.. _`fputc_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputc_unlocked.3.html -.. _`fputs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputs.3.html -.. _`fputs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputs.3posix.html -.. _`fputs_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputs_unlocked.3.html -.. _`fputwc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputwc.3.html -.. _`fputwc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputwc.3posix.html -.. _`fputwc_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputwc_unlocked.3.html -.. _`fputws(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputws.3.html -.. _`fputws(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputws.3posix.html -.. _`fputws_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fputws_unlocked.3.html -.. _`fread(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fread.3.html -.. _`fread(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fread.3posix.html -.. _`__freadable(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__freadable.3.html -.. _`__freading(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__freading.3.html -.. _`fread_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fread_unlocked.3.html -.. _`free(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/free.1.html -.. _`free(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/free.3.html -.. _`free(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/free.3posix.html -.. _`freeaddrinfo(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/freeaddrinfo.3.html -.. _`freeaddrinfo(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/freeaddrinfo.3posix.html -.. _`free_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/free_field.3form.html -.. _`free_fieldtype(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/free_fieldtype.3form.html -.. _`free_form(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/free_form.3form.html -.. _`freehostent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/freehostent.3.html -.. _`free_hugepages(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/free_hugepages.2.html -.. _`freeifaddrs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/freeifaddrs.3.html -.. _`free_item(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/free_item.3menu.html -.. _`free_menu(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/free_menu.3menu.html -.. _`freopen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/freopen.3.html -.. _`freopen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/freopen.3posix.html -.. _`frexp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/frexp.3.html -.. _`frexp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/frexp.3posix.html -.. _`frexpf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/frexpf.3.html -.. _`frexpf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/frexpf.3posix.html -.. _`frexpl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/frexpl.3.html -.. _`frexpl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/frexpl.3posix.html -.. _`from(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/from.1.html -.. _`fs(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/fs.5.html -.. _`fscanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fscanf.3.html -.. _`fscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fscanf.3posix.html -.. _`fsck(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fsck.8.html -.. _`fsck.ext2(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fsck.ext2.8.html -.. _`fsck.ext3(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fsck.ext3.8.html -.. _`fsck.ext4(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fsck.ext4.8.html -.. _`fsck.ext4dev(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fsck.ext4dev.8.html -.. _`fsck.minix(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fsck.minix.8.html -.. _`fsck.nfs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fsck.nfs.8.html -.. _`fseek(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fseek.3.html -.. _`fseek(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fseek.3posix.html -.. _`fseeko(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fseeko.3.html -.. _`fseeko(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fseeko.3posix.html -.. _`__fsetlocking(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__fsetlocking.3.html -.. _`fsetpos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fsetpos.3.html -.. _`fsetpos(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fsetpos.3posix.html -.. _`fsf-funding(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/fsf-funding.7.html -.. _`fstab(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/fstab.5.html -.. _`fstab-decode(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/fstab-decode.8.html -.. _`fstat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fstat.2.html -.. _`fstat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fstat.3posix.html -.. _`fstat64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fstat64.2.html -.. _`fstatat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fstatat.2.html -.. _`fstatat64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fstatat64.2.html -.. _`fstatfs(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fstatfs.2.html -.. _`fstatfs64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fstatfs64.2.html -.. _`fstatvfs(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fstatvfs.2.html -.. _`fstatvfs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fstatvfs.3.html -.. _`fstatvfs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fstatvfs.3posix.html -.. _`fsync(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/fsync.2.html -.. _`fsync(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fsync.3posix.html -.. _`ftell(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftell.3.html -.. _`ftell(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftell.3posix.html -.. _`ftello(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftello.3.html -.. _`ftello(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftello.3posix.html -.. _`ftime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftime.3.html -.. _`ftime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftime.3posix.html -.. _`ftm(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ftm.7.html -.. _`ftok(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftok.3.html -.. _`ftok(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftok.3posix.html -.. _`ftruncate(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ftruncate.2.html -.. _`ftruncate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftruncate.3posix.html -.. _`ftruncate64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ftruncate64.2.html -.. _`ftrylockfile(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftrylockfile.3.html -.. _`ftrylockfile(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftrylockfile.3posix.html -.. _`fts(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fts.3.html -.. _`fts_children(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fts_children.3.html -.. _`fts_close(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fts_close.3.html -.. _`fts_open(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fts_open.3.html -.. _`fts_read(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fts_read.3.html -.. _`fts_set(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fts_set.3.html -.. _`ftw(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftw.3.html -.. _`ftw(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ftw.3posix.html -.. _`ftw.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ftw.h.7posix.html -.. _`full(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/full.4.html -.. _`funlockfile(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/funlockfile.3.html -.. _`funlockfile(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/funlockfile.3posix.html -.. _`fuser(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fuser.1.html -.. _`fuser(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/fuser.1posix.html -.. _`futex(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/futex.2.html -.. _`futex(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/futex.4.html -.. _`futex(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/futex.7.html -.. _`futimens(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/futimens.3.html -.. _`futimes(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/futimes.3.html -.. _`futimesat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/futimesat.2.html -.. _`fwide(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fwide.3.html -.. _`fwide(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fwide.3posix.html -.. _`fwprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fwprintf.3.html -.. _`fwprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fwprintf.3posix.html -.. _`__fwritable(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__fwritable.3.html -.. _`fwrite(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fwrite.3.html -.. _`fwrite(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fwrite.3posix.html -.. _`fwrite_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fwrite_unlocked.3.html -.. _`__fwriting(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__fwriting.3.html -.. _`fwscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/fwscanf.3posix.html -.. _`g++(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/g++.1.html -.. _`g++-4.4(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/g++-4.4.1.html -.. _`gai.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/gai.conf.5.html -.. _`gai_strerror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gai_strerror.3.html -.. _`gai_strerror(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gai_strerror.3posix.html -.. _`gamma(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gamma.3.html -.. _`gammaf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gammaf.3.html -.. _`gammal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gammal.3.html -.. _`gawk(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gawk.1.html -.. _`gcc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gcc.1.html -.. _`gcc-4.4(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gcc-4.4.1.html -.. _`gcore(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gcore.1.html -.. _`gcov(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gcov.1.html -.. _`gcov-4.4(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gcov-4.4.1.html -.. _`gcvt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gcvt.3.html -.. _`gcvt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gcvt.3posix.html -.. _`gdb(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gdb.1.html -.. _`gdbm(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gdbm.3.html -.. _`gdbserver(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gdbserver.1.html -.. _`gdbtui(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gdbtui.1.html -.. _`gencat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gencat.1.html -.. _`gencat(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gencat.1posix.html -.. _`gendsa(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gendsa.1ssl.html -.. _`genrsa(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/genrsa.1ssl.html -.. _`geqn(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/geqn.1.html -.. _`get(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/get.1posix.html -.. _`getaddrinfo(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getaddrinfo.3.html -.. _`getaddrinfo(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getaddrinfo.3posix.html -.. _`getaliasbyname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getaliasbyname.3.html -.. _`getaliasbyname_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getaliasbyname_r.3.html -.. _`getaliasent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getaliasent.3.html -.. _`getaliasent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getaliasent_r.3.html -.. _`getbegx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getbegx.3ncurses.html -.. _`getbegy(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getbegy.3ncurses.html -.. _`getbegyx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getbegyx.3ncurses.html -.. _`getbkgd(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getbkgd.3ncurses.html -.. _`getbkgrnd(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getbkgrnd.3ncurses.html -.. _`getc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getc.3.html -.. _`getc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getc.3posix.html -.. _`getcchar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getcchar.3ncurses.html -.. _`getch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getch.3ncurses.html -.. _`getchar(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getchar.3.html -.. _`getchar(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getchar.3posix.html -.. _`getchar_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getchar_unlocked.3.html -.. _`getchar_unlocked(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getchar_unlocked.3posix.html -.. _`getconf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/getconf.1.html -.. _`getconf(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/getconf.1posix.html -.. _`getcontext(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getcontext.2.html -.. _`getcontext(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getcontext.3posix.html -.. _`getcpu(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getcpu.2.html -.. _`getc_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getc_unlocked.3.html -.. _`getc_unlocked(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getc_unlocked.3posix.html -.. _`get_current_dir_name(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/get_current_dir_name.3.html -.. _`getcurx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getcurx.3ncurses.html -.. _`getcury(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getcury.3ncurses.html -.. _`getcwd(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getcwd.2.html -.. _`getcwd(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getcwd.3.html -.. _`getcwd(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getcwd.3posix.html -.. _`getdate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getdate.3.html -.. _`getdate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getdate.3posix.html -.. _`getdate_err(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getdate_err.3.html -.. _`getdate_err(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getdate_err.3posix.html -.. _`getdate_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getdate_r.3.html -.. _`getdelim(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getdelim.3.html -.. _`getdents(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getdents.2.html -.. _`getdents64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getdents64.2.html -.. _`getdirentries(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getdirentries.3.html -.. _`getdomainname(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getdomainname.2.html -.. _`getdtablesize(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getdtablesize.2.html -.. _`getegid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getegid.2.html -.. _`getegid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getegid32.2.html -.. _`getegid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getegid.3posix.html -.. _`getent(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/getent.1.html -.. _`getenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getenv.3.html -.. _`getenv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getenv.3posix.html -.. _`geteuid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/geteuid.2.html -.. _`geteuid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/geteuid32.2.html -.. _`geteuid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/geteuid.3posix.html -.. _`getfsent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getfsent.3.html -.. _`getfsfile(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getfsfile.3.html -.. _`getfsspec(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getfsspec.3.html -.. _`getgid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getgid.2.html -.. _`getgid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getgid32.2.html -.. _`getgid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgid.3posix.html -.. _`getgrent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrent.3.html -.. _`getgrent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrent.3posix.html -.. _`getgrent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrent_r.3.html -.. _`getgrgid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrgid.3.html -.. _`getgrgid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrgid.3posix.html -.. _`getgrgid_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrgid_r.3.html -.. _`getgrgid_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrgid_r.3posix.html -.. _`getgrnam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrnam.3.html -.. _`getgrnam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrnam.3posix.html -.. _`getgrnam_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrnam_r.3.html -.. _`getgrnam_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrnam_r.3posix.html -.. _`getgrouplist(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgrouplist.3.html -.. _`getgroups(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getgroups.2.html -.. _`getgroups32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getgroups32.2.html -.. _`getgroups(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getgroups.3posix.html -.. _`gethostbyaddr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostbyaddr.3.html -.. _`gethostbyaddr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostbyaddr.3posix.html -.. _`gethostbyaddr_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostbyaddr_r.3.html -.. _`gethostbyname2(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostbyname2.3.html -.. _`gethostbyname2_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostbyname2_r.3.html -.. _`gethostbyname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostbyname.3.html -.. _`gethostbyname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostbyname.3posix.html -.. _`gethostbyname_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostbyname_r.3.html -.. _`gethostent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostent.3.html -.. _`gethostent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostent.3posix.html -.. _`gethostent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostent_r.3.html -.. _`gethostid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/gethostid.2.html -.. _`gethostid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostid.3.html -.. _`gethostid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostid.3posix.html -.. _`gethostname(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/gethostname.2.html -.. _`gethostname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gethostname.3posix.html -.. _`getifaddrs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getifaddrs.3.html -.. _`getipnodebyaddr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getipnodebyaddr.3.html -.. _`getipnodebyname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getipnodebyname.3.html -.. _`getitimer(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getitimer.2.html -.. _`getitimer(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getitimer.3posix.html -.. _`getline(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getline.3.html -.. _`getloadavg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getloadavg.3.html -.. _`getlogin(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getlogin.3.html -.. _`getlogin(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getlogin.3posix.html -.. _`getlogin_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getlogin_r.3.html -.. _`getlogin_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getlogin_r.3posix.html -.. _`getmaxx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getmaxx.3ncurses.html -.. _`getmaxy(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getmaxy.3ncurses.html -.. _`getmaxyx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getmaxyx.3ncurses.html -.. _`get_mempolicy(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/get_mempolicy.2.html -.. _`getmntent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getmntent.3.html -.. _`getmntent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getmntent_r.3.html -.. _`getmouse(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getmouse.3ncurses.html -.. _`getmsg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getmsg.3posix.html -.. _`get_myaddress(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/get_myaddress.3.html -.. _`getnameinfo(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnameinfo.3.html -.. _`getnameinfo(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnameinfo.3posix.html -.. _`getnetbyaddr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetbyaddr.3.html -.. _`getnetbyaddr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetbyaddr.3posix.html -.. _`getnetbyaddr_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetbyaddr_r.3.html -.. _`getnetbyname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetbyname.3.html -.. _`getnetbyname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetbyname.3posix.html -.. _`getnetbyname_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetbyname_r.3.html -.. _`getnetent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetent.3.html -.. _`getnetent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetent.3posix.html -.. _`getnetent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetent_r.3.html -.. _`getnetgrent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetgrent.3.html -.. _`getnetgrent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnetgrent_r.3.html -.. _`getnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getnstr.3ncurses.html -.. _`getn_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getn_wstr.3ncurses.html -.. _`getopt(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/getopt.1.html -.. _`getopt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getopt.3.html -.. _`getopt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getopt.3posix.html -.. _`getopt_long(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getopt_long.3.html -.. _`getopt_long_only(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getopt_long_only.3.html -.. _`getopts(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/getopts.1posix.html -.. _`getpagesize(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getpagesize.2.html -.. _`getparx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getparx.3ncurses.html -.. _`getpary(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpary.3ncurses.html -.. _`getparyx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getparyx.3ncurses.html -.. _`getpass(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpass.3.html -.. _`getpeername(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getpeername.2.html -.. _`getpeername(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpeername.3posix.html -.. _`getpgid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getpgid.2.html -.. _`getpgid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpgid.3posix.html -.. _`getpgrp(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getpgrp.2.html -.. _`getpgrp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpgrp.3posix.html -.. _`getpid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getpid.2.html -.. _`getpid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpid.3posix.html -.. _`getpmsg(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getpmsg.2.html -.. _`getpmsg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpmsg.3posix.html -.. _`getppid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getppid.2.html -.. _`getppid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getppid.3posix.html -.. _`getpriority(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getpriority.2.html -.. _`getpriority(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpriority.3posix.html -.. _`getprotobyname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotobyname.3.html -.. _`getprotobyname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotobyname.3posix.html -.. _`getprotobyname_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotobyname_r.3.html -.. _`getprotobynumber(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotobynumber.3.html -.. _`getprotobynumber(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotobynumber.3posix.html -.. _`getprotobynumber_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotobynumber_r.3.html -.. _`getprotoent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotoent.3.html -.. _`getprotoent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotoent.3posix.html -.. _`getprotoent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getprotoent_r.3.html -.. _`getpt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpt.3.html -.. _`getpw(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpw.3.html -.. _`getpwent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwent.3.html -.. _`getpwent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwent.3posix.html -.. _`getpwent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwent_r.3.html -.. _`getpwnam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwnam.3.html -.. _`getpwnam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwnam.3posix.html -.. _`getpwnam_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwnam_r.3.html -.. _`getpwnam_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwnam_r.3posix.html -.. _`getpwuid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwuid.3.html -.. _`getpwuid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwuid.3posix.html -.. _`getpwuid_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwuid_r.3.html -.. _`getpwuid_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getpwuid_r.3posix.html -.. _`getresgid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getresgid.2.html -.. _`getresgid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getresgid32.2.html -.. _`getresuid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getresuid.2.html -.. _`getresuid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getresuid32.2.html -.. _`getrlimit(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getrlimit.2.html -.. _`getrlimit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrlimit.3posix.html -.. _`getrpcbyname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrpcbyname.3.html -.. _`getrpcbyname_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrpcbyname_r.3.html -.. _`getrpcbynumber(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrpcbynumber.3.html -.. _`getrpcbynumber_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrpcbynumber_r.3.html -.. _`getrpcent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrpcent.3.html -.. _`getrpcent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrpcent_r.3.html -.. _`getrpcport(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrpcport.3.html -.. _`getrusage(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getrusage.2.html -.. _`getrusage(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getrusage.3posix.html -.. _`gets(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gets.3.html -.. _`gets(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gets.3posix.html -.. _`getservbyname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservbyname.3.html -.. _`getservbyname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservbyname.3posix.html -.. _`getservbyname_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservbyname_r.3.html -.. _`getservbyport(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservbyport.3.html -.. _`getservbyport(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservbyport.3posix.html -.. _`getservbyport_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservbyport_r.3.html -.. _`getservent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservent.3.html -.. _`getservent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservent.3posix.html -.. _`getservent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getservent_r.3.html -.. _`getsid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getsid.2.html -.. _`getsid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getsid.3posix.html -.. _`getsockname(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getsockname.2.html -.. _`getsockname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getsockname.3posix.html -.. _`getsockopt(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getsockopt.2.html -.. _`getsockopt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getsockopt.3posix.html -.. _`getspent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getspent.3.html -.. _`getspent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getspent_r.3.html -.. _`getspnam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getspnam.3.html -.. _`getspnam_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getspnam_r.3.html -.. _`getstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getstr.3ncurses.html -.. _`getsubopt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getsubopt.3.html -.. _`getsubopt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getsubopt.3posix.html -.. _`getsyx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getsyx.3ncurses.html -.. _`get_thread_area(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/get_thread_area.2.html -.. _`gettid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/gettid.2.html -.. _`gettimeofday(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/gettimeofday.2.html -.. _`gettimeofday(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gettimeofday.3posix.html -.. _`getttyent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getttyent.3.html -.. _`getttynam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getttynam.3.html -.. _`getty(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/getty.8.html -.. _`getuid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getuid.2.html -.. _`getuid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/getuid32.2.html -.. _`getuid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getuid.3posix.html -.. _`getumask(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getumask.3.html -.. _`getusershell(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getusershell.3.html -.. _`getutent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutent.3.html -.. _`getutent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutent_r.3.html -.. _`getutid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutid.3.html -.. _`getutid_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutid_r.3.html -.. _`getutline(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutline.3.html -.. _`getutline_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutline_r.3.html -.. _`getutmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutmp.3.html -.. _`getutmpx(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutmpx.3.html -.. _`getutxent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutxent.3.html -.. _`getutxent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutxent.3posix.html -.. _`getutxid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutxid.3.html -.. _`getutxid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutxid.3posix.html -.. _`getutxline(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutxline.3.html -.. _`getutxline(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getutxline.3posix.html -.. _`getw(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getw.3.html -.. _`getwc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwc.3.html -.. _`getwc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwc.3posix.html -.. _`get_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/get_wch.3ncurses.html -.. _`getwchar(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwchar.3.html -.. _`getwchar(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwchar.3posix.html -.. _`getwchar_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwchar_unlocked.3.html -.. _`getwc_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwc_unlocked.3.html -.. _`getwd(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwd.3.html -.. _`getwd(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwd.3posix.html -.. _`getwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getwin.3ncurses.html -.. _`get_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/get_wstr.3ncurses.html -.. _`getyx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/getyx.3ncurses.html -.. _`gfdl(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gfdl.7.html -.. _`ginstall-info(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ginstall-info.1.html -.. _`git(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git.1.html -.. _`git(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/git.3pm.html -.. _`git-add(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-add.1.html -.. _`git-am(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-am.1.html -.. _`git-annotate(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-annotate.1.html -.. _`git-apply(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-apply.1.html -.. _`git-archive(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-archive.1.html -.. _`gitattributes(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/gitattributes.5.html -.. _`git-bisect(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-bisect.1.html -.. _`git-blame(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-blame.1.html -.. _`git-branch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-branch.1.html -.. _`git-bundle(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-bundle.1.html -.. _`git-cat-file(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-cat-file.1.html -.. _`git-check-attr(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-check-attr.1.html -.. _`git-checkout(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-checkout.1.html -.. _`git-checkout-index(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-checkout-index.1.html -.. _`git-check-ref-format(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-check-ref-format.1.html -.. _`git-cherry(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-cherry.1.html -.. _`git-cherry-pick(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-cherry-pick.1.html -.. _`git-clean(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-clean.1.html -.. _`gitcli(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gitcli.7.html -.. _`git-clone(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-clone.1.html -.. _`git-commit(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-commit.1.html -.. _`git-commit-tree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-commit-tree.1.html -.. _`git-config(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-config.1.html -.. _`gitcore-tutorial(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gitcore-tutorial.7.html -.. _`git-count-objects(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-count-objects.1.html -.. _`gitcvs-migration(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gitcvs-migration.7.html -.. _`git-daemon(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-daemon.1.html -.. _`git-describe(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-describe.1.html -.. _`git-diff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-diff.1.html -.. _`gitdiffcore(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gitdiffcore.7.html -.. _`git-diff-files(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-diff-files.1.html -.. _`git-diff-index(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-diff-index.1.html -.. _`git-difftool(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-difftool.1.html -.. _`git-diff-tree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-diff-tree.1.html -.. _`git-fast-export(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-fast-export.1.html -.. _`git-fast-import(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-fast-import.1.html -.. _`git-fetch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-fetch.1.html -.. _`git-fetch-pack(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-fetch-pack.1.html -.. _`git-filter-branch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-filter-branch.1.html -.. _`git-fmt-merge-msg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-fmt-merge-msg.1.html -.. _`git-for-each-ref(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-for-each-ref.1.html -.. _`git-format-patch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-format-patch.1.html -.. _`git-fsck(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-fsck.1.html -.. _`git-fsck-objects(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-fsck-objects.1.html -.. _`git-gc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-gc.1.html -.. _`git-get-tar-commit-id(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-get-tar-commit-id.1.html -.. _`gitglossary(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gitglossary.7.html -.. _`git-grep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-grep.1.html -.. _`git-hash-object(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-hash-object.1.html -.. _`git-help(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-help.1.html -.. _`githooks(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/githooks.5.html -.. _`git-http-backend(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-http-backend.1.html -.. _`git-http-fetch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-http-fetch.1.html -.. _`git-http-push(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-http-push.1.html -.. _`gitignore(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/gitignore.5.html -.. _`git-imap-send(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-imap-send.1.html -.. _`git-index-pack(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-index-pack.1.html -.. _`git-init(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-init.1.html -.. _`git-init-db(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-init-db.1.html -.. _`git-instaweb(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-instaweb.1.html -.. _`git-log(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-log.1.html -.. _`git-lost-found(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-lost-found.1.html -.. _`git-ls-files(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-ls-files.1.html -.. _`git-ls-remote(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-ls-remote.1.html -.. _`git-ls-tree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-ls-tree.1.html -.. _`git-mailinfo(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-mailinfo.1.html -.. _`git-mailsplit(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-mailsplit.1.html -.. _`git-merge(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-merge.1.html -.. _`git-merge-base(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-merge-base.1.html -.. _`git-merge-file(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-merge-file.1.html -.. _`git-merge-index(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-merge-index.1.html -.. _`git-merge-one-file(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-merge-one-file.1.html -.. _`git-mergetool(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-mergetool.1.html -.. _`git-mergetool--lib(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-mergetool--lib.1.html -.. _`git-merge-tree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-merge-tree.1.html -.. _`git-mktag(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-mktag.1.html -.. _`git-mktree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-mktree.1.html -.. _`gitmodules(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/gitmodules.5.html -.. _`git-mv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-mv.1.html -.. _`git-name-rev(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-name-rev.1.html -.. _`git-notes(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-notes.1.html -.. _`git-pack-objects(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-pack-objects.1.html -.. _`git-pack-redundant(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-pack-redundant.1.html -.. _`git-pack-refs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-pack-refs.1.html -.. _`git-parse-remote(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-parse-remote.1.html -.. _`git-patch-id(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-patch-id.1.html -.. _`git-peek-remote(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-peek-remote.1.html -.. _`git-prune(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-prune.1.html -.. _`git-prune-packed(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-prune-packed.1.html -.. _`git-pull(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-pull.1.html -.. _`git-push(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-push.1.html -.. _`git-quiltimport(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-quiltimport.1.html -.. _`git-read-tree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-read-tree.1.html -.. _`git-rebase(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-rebase.1.html -.. _`git-receive-pack(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-receive-pack.1.html -.. _`git-reflog(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-reflog.1.html -.. _`git-relink(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-relink.1.html -.. _`git-remote(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-remote.1.html -.. _`git-remote-helpers(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-remote-helpers.1.html -.. _`git-repack(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-repack.1.html -.. _`git-replace(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-replace.1.html -.. _`git-repo-config(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-repo-config.1.html -.. _`gitrepository-layout(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/gitrepository-layout.5.html -.. _`git-request-pull(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-request-pull.1.html -.. _`git-rerere(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-rerere.1.html -.. _`git-reset(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-reset.1.html -.. _`git-revert(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-revert.1.html -.. _`gitrevisions(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gitrevisions.7.html -.. _`git-rev-list(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-rev-list.1.html -.. _`git-rev-parse(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-rev-parse.1.html -.. _`git-rm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-rm.1.html -.. _`git-send-pack(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-send-pack.1.html -.. _`git-shell(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-shell.1.html -.. _`git-shortlog(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-shortlog.1.html -.. _`git-show(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-show.1.html -.. _`git-show-branch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-show-branch.1.html -.. _`git-show-index(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-show-index.1.html -.. _`git-show-ref(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-show-ref.1.html -.. _`git-sh-setup(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-sh-setup.1.html -.. _`git-stage(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-stage.1.html -.. _`git-stash(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-stash.1.html -.. _`git-status(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-status.1.html -.. _`git-stripspace(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-stripspace.1.html -.. _`git-submodule(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-submodule.1.html -.. _`git-symbolic-ref(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-symbolic-ref.1.html -.. _`git-tag(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-tag.1.html -.. _`git-tar-tree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-tar-tree.1.html -.. _`gittutorial-2(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gittutorial-2.7.html -.. _`gittutorial(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gittutorial.7.html -.. _`git-unpack-file(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-unpack-file.1.html -.. _`git-unpack-objects(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-unpack-objects.1.html -.. _`git-update-index(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-update-index.1.html -.. _`git-update-ref(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-update-ref.1.html -.. _`git-update-server-info(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-update-server-info.1.html -.. _`git-upload-archive(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-upload-archive.1.html -.. _`git-upload-pack(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-upload-pack.1.html -.. _`git-var(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-var.1.html -.. _`git-verify-pack(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-verify-pack.1.html -.. _`git-verify-tag(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-verify-tag.1.html -.. _`git-web--browse(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-web--browse.1.html -.. _`git-whatchanged(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-whatchanged.1.html -.. _`gitworkflows(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gitworkflows.7.html -.. _`git-write-tree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/git-write-tree.1.html -.. _`glibc(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/glibc.7.html -.. _`glob(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/glob.3.html -.. _`glob(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/glob.3posix.html -.. _`glob(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/glob.7.html -.. _`globfree(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/globfree.3.html -.. _`globfree(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/globfree.3posix.html -.. _`glob.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/glob.h.7posix.html -.. _`gmtime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gmtime.3.html -.. _`gmtime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gmtime.3posix.html -.. _`gmtime_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gmtime_r.3.html -.. _`gmtime_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gmtime_r.3posix.html -.. _`gnu_dev_major(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gnu_dev_major.3.html -.. _`gnu_dev_makedev(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gnu_dev_makedev.3.html -.. _`gnu_dev_minor(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gnu_dev_minor.3.html -.. _`gnu_get_libc_release(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gnu_get_libc_release.3.html -.. _`gnu_get_libc_version(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gnu_get_libc_version.3.html -.. _`gnupg(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gnupg.7.html -.. _`gold(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gold.1.html -.. _`gpasswd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gpasswd.1.html -.. _`gpg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gpg.1.html -.. _`gpgsplit(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gpgsplit.1.html -.. _`gpgv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gpgv.1.html -.. _`gpg-zip(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gpg-zip.1.html -.. _`gpic(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gpic.1.html -.. _`gpl(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/gpl.7.html -.. _`gprof(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gprof.1.html -.. _`grantpt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/grantpt.3.html -.. _`grantpt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/grantpt.3posix.html -.. _`grep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/grep.1.html -.. _`grep(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/grep.1posix.html -.. _`groff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/groff.1.html -.. _`grog(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/grog.1.html -.. _`grops(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/grops.1.html -.. _`grotty(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/grotty.1.html -.. _`group(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/group.5.html -.. _`groupadd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/groupadd.8.html -.. _`group.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/group.conf.5.html -.. _`groupdel(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/groupdel.8.html -.. _`groupmod(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/groupmod.8.html -.. _`groups(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/groups.1.html -.. _`grpck(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/grpck.8.html -.. _`grpconv(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/grpconv.8.html -.. _`grp.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/grp.h.7posix.html -.. _`grpunconv(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/grpunconv.8.html -.. _`gshadow(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/gshadow.5.html -.. _`gsignal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/gsignal.3.html -.. _`gtbl(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gtbl.1.html -.. _`gtty(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/gtty.2.html -.. _`gunzip(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gunzip.1.html -.. _`gzexe(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gzexe.1.html -.. _`gzip(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/gzip.1.html -.. _`h2ph(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/h2ph.1.html -.. _`h2xs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/h2xs.1.html -.. _`halfdelay(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/halfdelay.3ncurses.html -.. _`halt(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/halt.5.html -.. _`halt(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/halt.8.html -.. _`has_colors(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/has_colors.3ncurses.html -.. _`hash(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/hash.1posix.html -.. _`hash(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hash.3.html -.. _`has_ic(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/has_ic.3ncurses.html -.. _`has_il(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/has_il.3ncurses.html -.. _`has_key(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/has_key.3ncurses.html -.. _`hasmntopt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hasmntopt.3.html -.. _`has_mouse(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/has_mouse.3ncurses.html -.. _`hcreate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hcreate.3.html -.. _`hcreate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hcreate.3posix.html -.. _`hcreate_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hcreate_r.3.html -.. _`hd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/hd.1.html -.. _`hd(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/hd.4.html -.. _`hdestroy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hdestroy.3.html -.. _`hdestroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hdestroy.3posix.html -.. _`hdestroy_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hdestroy_r.3.html -.. _`head(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/head.1.html -.. _`head(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/head.1posix.html -.. _`heirloom-mailx(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/heirloom-mailx.1.html -.. _`helpztags(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/helpztags.1.html -.. _`h_errno(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/h_errno.3.html -.. _`h_errno(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/h_errno.3posix.html -.. _`herror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/herror.3.html -.. _`hexdump(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/hexdump.1.html -.. _`hg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/hg.1.html -.. _`hgignore(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/hgignore.5.html -.. _`hgrc(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/hgrc.5.html -.. _`hg-ssh(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/hg-ssh.8.html -.. _`hide_panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hide_panel.3curses.html -.. _`hier(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/hier.7.html -.. _`history(3readline)` : http://sites.uclouvain.be/SystInfo/manpages/man3/history.3readline.html -.. _`hline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hline.3ncurses.html -.. _`hline_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hline_set.3ncurses.html -.. _`hman(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/hman.1.html -.. _`hook(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hook.3form.html -.. _`hook(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hook.3menu.html -.. _`host.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/host.conf.5.html -.. _`hostid(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/hostid.1.html -.. _`hostname(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/hostname.1.html -.. _`hostname(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/hostname.7.html -.. _`hosts(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/hosts.5.html -.. _`hosts_access(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/hosts_access.5.html -.. _`hosts.allow(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/hosts.allow.5.html -.. _`hosts.deny(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/hosts.deny.5.html -.. _`hosts.equiv(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/hosts.equiv.5.html -.. _`hosts_options(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/hosts_options.5.html -.. _`hsearch(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hsearch.3.html -.. _`hsearch(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hsearch.3posix.html -.. _`hsearch_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hsearch_r.3.html -.. _`hstrerror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hstrerror.3.html -.. _`htcacheclean(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/htcacheclean.8.html -.. _`htdbm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/htdbm.1.html -.. _`htdigest(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/htdigest.1.html -.. _`htobe16(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htobe16.3.html -.. _`htobe32(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htobe32.3.html -.. _`htobe64(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htobe64.3.html -.. _`htole16(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htole16.3.html -.. _`htole32(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htole32.3.html -.. _`htole64(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htole64.3.html -.. _`htonl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htonl.3.html -.. _`htonl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htonl.3posix.html -.. _`htons(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htons.3.html -.. _`htons(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/htons.3posix.html -.. _`htpasswd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/htpasswd.1.html -.. _`httxt2dbm(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/httxt2dbm.8.html -.. _`huge_val(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/huge_val.3.html -.. _`huge_valf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/huge_valf.3.html -.. _`huge_vall(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/huge_vall.3.html -.. _`hwclock(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/hwclock.8.html -.. _`hypot(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hypot.3.html -.. _`hypot(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hypot.3posix.html -.. _`hypotf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hypotf.3.html -.. _`hypotf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hypotf.3posix.html -.. _`hypotl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hypotl.3.html -.. _`hypotl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/hypotl.3posix.html -.. _`i386(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/i386.8.html -.. _`icmp(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/icmp.7.html -.. _`iconv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/iconv.1.html -.. _`iconv(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/iconv.1posix.html -.. _`iconv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iconv.3.html -.. _`iconv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iconv.3posix.html -.. _`iconv_close(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iconv_close.3.html -.. _`iconv_close(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iconv_close.3posix.html -.. _`iconvconfig(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/iconvconfig.8.html -.. _`iconv.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iconv.h.7posix.html -.. _`iconv_open(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iconv_open.3.html -.. _`iconv_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iconv_open.3posix.html -.. _`id(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/id.1.html -.. _`id(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/id.1posix.html -.. _`idcok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/idcok.3ncurses.html -.. _`idle(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/idle.2.html -.. _`idlok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/idlok.3ncurses.html -.. _`ifconfig(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ifconfig.8.html -.. _`ifdown(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ifdown.8.html -.. _`if_freenameindex(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/if_freenameindex.3posix.html -.. _`if.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/if.h.7posix.html -.. _`if_indextoname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/if_indextoname.3posix.html -.. _`if_nameindex(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/if_nameindex.3posix.html -.. _`if_nametoindex(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/if_nametoindex.3posix.html -.. _`ifup(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ifup.8.html -.. _`igawk(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/igawk.1.html -.. _`ilogb(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ilogb.3.html -.. _`ilogb(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ilogb.3posix.html -.. _`ilogbf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ilogbf.3.html -.. _`ilogbf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ilogbf.3posix.html -.. _`ilogbl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ilogbl.3.html -.. _`ilogbl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ilogbl.3posix.html -.. _`imaxabs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/imaxabs.3.html -.. _`imaxabs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/imaxabs.3posix.html -.. _`imaxdiv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/imaxdiv.3.html -.. _`imaxdiv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/imaxdiv.3posix.html -.. _`immedok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/immedok.3ncurses.html -.. _`inb(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inb.2.html -.. _`inb_p(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inb_p.2.html -.. _`inch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inch.3ncurses.html -.. _`inchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inchnstr.3ncurses.html -.. _`inchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inchstr.3ncurses.html -.. _`index(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/index.3.html -.. _`index(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/index.3posix.html -.. _`inet(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet.3.html -.. _`inet_addr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_addr.3.html -.. _`inet_addr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_addr.3posix.html -.. _`inet_aton(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_aton.3.html -.. _`inet.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/inet.h.7posix.html -.. _`inet_lnaof(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_lnaof.3.html -.. _`inet_makeaddr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_makeaddr.3.html -.. _`inet_netof(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_netof.3.html -.. _`inet_network(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_network.3.html -.. _`inet_ntoa(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_ntoa.3.html -.. _`inet_ntoa(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_ntoa.3posix.html -.. _`inet_ntop(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_ntop.3.html -.. _`inet_ntop(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_ntop.3posix.html -.. _`inet_pton(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_pton.3.html -.. _`inet_pton(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inet_pton.3posix.html -.. _`infinity(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/infinity.3.html -.. _`info(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/info.1.html -.. _`info(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/info.5.html -.. _`infobrowser(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/infobrowser.1.html -.. _`infocmp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/infocmp.1.html -.. _`infokey(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/infokey.1.html -.. _`infotocap(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/infotocap.1.html -.. _`in.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/in.h.7posix.html -.. _`init(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/init.8.html -.. _`init_color(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/init_color.3ncurses.html -.. _`initgroups(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/initgroups.3.html -.. _`init_pair(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/init_pair.3ncurses.html -.. _`initramfs.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/initramfs.conf.5.html -.. _`initramfs-tools(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/initramfs-tools.8.html -.. _`initrd(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/initrd.4.html -.. _`initscr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/initscr.3ncurses.html -.. _`initscript(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/initscript.5.html -.. _`initstate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/initstate.3.html -.. _`initstate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/initstate.3posix.html -.. _`initstate_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/initstate_r.3.html -.. _`inittab(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/inittab.5.html -.. _`inl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inl.2.html -.. _`inl_p(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inl_p.2.html -.. _`innetgr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/innetgr.3.html -.. _`innstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/innstr.3ncurses.html -.. _`innwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/innwstr.3ncurses.html -.. _`inopts(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inopts.3ncurses.html -.. _`inotify(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/inotify.7.html -.. _`inotify_add_watch(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inotify_add_watch.2.html -.. _`inotify_init1(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inotify_init1.2.html -.. _`inotify_init(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inotify_init.2.html -.. _`inotify_rm_watch(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inotify_rm_watch.2.html -.. _`insb(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/insb.2.html -.. _`insch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/insch.3ncurses.html -.. _`insdelln(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/insdelln.3ncurses.html -.. _`insertln(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/insertln.3ncurses.html -.. _`insl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/insl.2.html -.. _`insmod(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/insmod.8.html -.. _`insnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/insnstr.3ncurses.html -.. _`ins_nwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ins_nwstr.3ncurses.html -.. _`insque(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/insque.3.html -.. _`insque(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/insque.3posix.html -.. _`insserv(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/insserv.8.html -.. _`insstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/insstr.3ncurses.html -.. _`install(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/install.1.html -.. _`install-info(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/install-info.1.html -.. _`installkernel(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/installkernel.8.html -.. _`install-sgmlcatalog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/install-sgmlcatalog.8.html -.. _`instmodsh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/instmodsh.1.html -.. _`instr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/instr.3ncurses.html -.. _`insw(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/insw.2.html -.. _`ins_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ins_wch.3ncurses.html -.. _`ins_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ins_wstr.3ncurses.html -.. _`interfaces(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/interfaces.5.html -.. _`intrflush(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/intrflush.3ncurses.html -.. _`intro(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/intro.1.html -.. _`intro(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/intro.2.html -.. _`intro(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/intro.3.html -.. _`intro(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/intro.4.html -.. _`intro(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/intro.5.html -.. _`intro(6)` : http://sites.uclouvain.be/SystInfo/manpages/man6/intro.6.html -.. _`intro(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/intro.7.html -.. _`intro(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/intro.8.html -.. _`inttypes.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/inttypes.h.7posix.html -.. _`invoke-rc.d(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/invoke-rc.d.8.html -.. _`inw(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inw.2.html -.. _`in_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/in_wch.3ncurses.html -.. _`in_wchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/in_wchnstr.3ncurses.html -.. _`in_wchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/in_wchstr.3ncurses.html -.. _`inw_p(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/inw_p.2.html -.. _`inwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/inwstr.3ncurses.html -.. _`io_cancel(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/io_cancel.2.html -.. _`ioctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ioctl.2.html -.. _`ioctl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ioctl.3posix.html -.. _`ioctl_list(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ioctl_list.2.html -.. _`io_destroy(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/io_destroy.2.html -.. _`io_getevents(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/io_getevents.2.html -.. _`ionice(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ionice.1.html -.. _`ioperm(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ioperm.2.html -.. _`iopl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/iopl.2.html -.. _`ioprio_get(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ioprio_get.2.html -.. _`ioprio_set(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ioprio_set.2.html -.. _`io_setup(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/io_setup.2.html -.. _`io_submit(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/io_submit.2.html -.. _`ip6tables(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ip6tables.8.html -.. _`ip6tables-apply(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ip6tables-apply.8.html -.. _`ip6tables-restore(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ip6tables-restore.8.html -.. _`ip6tables-save(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ip6tables-save.8.html -.. _`ip(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ip.7.html -.. _`ip(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ip.8.html -.. _`ipc(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ipc.2.html -.. _`ipc(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/ipc.5.html -.. _`ipc.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ipc.h.7posix.html -.. _`ipcmk(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ipcmk.1.html -.. _`ipcrm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ipcrm.1.html -.. _`ipcrm(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ipcrm.1posix.html -.. _`ipcs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ipcs.1.html -.. _`ipcs(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ipcs.1posix.html -.. _`iperf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/iperf.1.html -.. _`ipproto_icmp(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ipproto_icmp.7.html -.. _`iptables(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/iptables.8.html -.. _`iptables-apply(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/iptables-apply.8.html -.. _`iptables-restore(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/iptables-restore.8.html -.. _`iptables-save(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/iptables-save.8.html -.. _`iptables-xml(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/iptables-xml.8.html -.. _`ipv6(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ipv6.7.html -.. _`iruserok(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iruserok.3.html -.. _`isalnum(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isalnum.3.html -.. _`isalnum(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isalnum.3posix.html -.. _`isalpha(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isalpha.3.html -.. _`isalpha(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isalpha.3posix.html -.. _`isascii(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isascii.3.html -.. _`isascii(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isascii.3posix.html -.. _`isastream(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isastream.3posix.html -.. _`isatty(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isatty.3.html -.. _`isatty(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isatty.3posix.html -.. _`isblank(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isblank.3.html -.. _`isblank(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isblank.3posix.html -.. _`is_cleared(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_cleared.3ncurses.html -.. _`iscntrl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iscntrl.3.html -.. _`iscntrl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iscntrl.3posix.html -.. _`isdigit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isdigit.3.html -.. _`isdigit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isdigit.3posix.html -.. _`isendwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isendwin.3ncurses.html -.. _`isfinite(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isfinite.3.html -.. _`isfinite(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isfinite.3posix.html -.. _`isgraph(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isgraph.3.html -.. _`isgraph(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isgraph.3posix.html -.. _`isgreater(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isgreater.3.html -.. _`isgreater(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isgreater.3posix.html -.. _`isgreaterequal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isgreaterequal.3.html -.. _`isgreaterequal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isgreaterequal.3posix.html -.. _`is_idcok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_idcok.3ncurses.html -.. _`is_idlok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_idlok.3ncurses.html -.. _`is_immedok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_immedok.3ncurses.html -.. _`isinf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isinf.3.html -.. _`isinf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isinf.3posix.html -.. _`isinff(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isinff.3.html -.. _`isinfl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isinfl.3.html -.. _`is_keypad(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_keypad.3ncurses.html -.. _`is_leaveok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_leaveok.3ncurses.html -.. _`isless(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isless.3.html -.. _`isless(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isless.3posix.html -.. _`islessequal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/islessequal.3.html -.. _`islessequal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/islessequal.3posix.html -.. _`islessgreater(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/islessgreater.3.html -.. _`islessgreater(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/islessgreater.3posix.html -.. _`is_linetouched(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_linetouched.3ncurses.html -.. _`islower(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/islower.3.html -.. _`islower(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/islower.3posix.html -.. _`isnan(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isnan.3.html -.. _`isnan(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isnan.3posix.html -.. _`isnanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isnanf.3.html -.. _`isnanl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isnanl.3.html -.. _`is_nodelay(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_nodelay.3ncurses.html -.. _`isnormal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isnormal.3.html -.. _`isnormal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isnormal.3posix.html -.. _`is_notimeout(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_notimeout.3ncurses.html -.. _`iso646.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso646.h.7posix.html -.. _`iso_8859_10(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_10.7.html -.. _`iso_8859-10(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-10.7.html -.. _`iso-8859-10(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-10.7.html -.. _`iso_8859_11(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_11.7.html -.. _`iso_8859-11(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-11.7.html -.. _`iso-8859-11(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-11.7.html -.. _`iso_8859_13(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_13.7.html -.. _`iso_8859-13(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-13.7.html -.. _`iso-8859-13(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-13.7.html -.. _`iso_8859_14(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_14.7.html -.. _`iso_8859-14(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-14.7.html -.. _`iso-8859-14(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-14.7.html -.. _`iso_8859_15(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_15.7.html -.. _`iso_8859-15(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-15.7.html -.. _`iso-8859-15(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-15.7.html -.. _`iso_8859_16(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_16.7.html -.. _`iso_8859-16(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-16.7.html -.. _`iso-8859-16(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-16.7.html -.. _`iso_8859_1(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_1.7.html -.. _`iso_8859-1(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-1.7.html -.. _`iso-8859-1(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-1.7.html -.. _`iso_8859_2(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_2.7.html -.. _`iso_8859-2(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-2.7.html -.. _`iso-8859-2(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-2.7.html -.. _`iso_8859_3(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_3.7.html -.. _`iso_8859-3(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-3.7.html -.. _`iso-8859-3(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-3.7.html -.. _`iso_8859_4(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_4.7.html -.. _`iso_8859-4(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-4.7.html -.. _`iso-8859-4(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-4.7.html -.. _`iso_8859_5(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_5.7.html -.. _`iso_8859-5(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-5.7.html -.. _`iso-8859-5(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-5.7.html -.. _`iso_8859_6(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_6.7.html -.. _`iso_8859-6(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-6.7.html -.. _`iso-8859-6(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-6.7.html -.. _`iso_8859_7(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_7.7.html -.. _`iso_8859-7(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-7.7.html -.. _`iso-8859-7(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-7.7.html -.. _`iso_8859_8(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_8.7.html -.. _`iso_8859-8(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-8.7.html -.. _`iso-8859-8(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-8.7.html -.. _`iso_8859_9(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859_9.7.html -.. _`iso_8859-9(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso_8859-9.7.html -.. _`iso-8859-9(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/iso-8859-9.7.html -.. _`isosize(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/isosize.8.html -.. _`is_pad(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_pad.3ncurses.html -.. _`isprint(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isprint.3.html -.. _`isprint(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isprint.3posix.html -.. _`ispunct(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ispunct.3.html -.. _`ispunct(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ispunct.3posix.html -.. _`is_scrollok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_scrollok.3ncurses.html -.. _`isspace(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isspace.3.html -.. _`isspace(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isspace.3posix.html -.. _`is_subwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_subwin.3ncurses.html -.. _`issue(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/issue.5.html -.. _`is_syncok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_syncok.3ncurses.html -.. _`is_term_resized(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_term_resized.3ncurses.html -.. _`isunordered(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isunordered.3.html -.. _`isunordered(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isunordered.3posix.html -.. _`isupper(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isupper.3.html -.. _`isupper(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isupper.3posix.html -.. _`iswalnum(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswalnum.3.html -.. _`iswalnum(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswalnum.3posix.html -.. _`iswalpha(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswalpha.3.html -.. _`iswalpha(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswalpha.3posix.html -.. _`iswblank(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswblank.3.html -.. _`iswblank(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswblank.3posix.html -.. _`iswcntrl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswcntrl.3.html -.. _`iswcntrl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswcntrl.3posix.html -.. _`iswctype(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswctype.3.html -.. _`iswctype(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswctype.3posix.html -.. _`iswdigit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswdigit.3.html -.. _`iswdigit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswdigit.3posix.html -.. _`iswgraph(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswgraph.3.html -.. _`iswgraph(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswgraph.3posix.html -.. _`is_wintouched(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/is_wintouched.3ncurses.html -.. _`iswlower(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswlower.3.html -.. _`iswlower(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswlower.3posix.html -.. _`iswprint(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswprint.3.html -.. _`iswprint(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswprint.3posix.html -.. _`iswpunct(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswpunct.3.html -.. _`iswpunct(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswpunct.3posix.html -.. _`iswspace(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswspace.3.html -.. _`iswspace(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswspace.3posix.html -.. _`iswupper(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswupper.3.html -.. _`iswupper(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswupper.3posix.html -.. _`iswxdigit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswxdigit.3.html -.. _`iswxdigit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/iswxdigit.3posix.html -.. _`isxdigit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isxdigit.3.html -.. _`isxdigit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/isxdigit.3posix.html -.. _`item_count(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_count.3menu.html -.. _`item_description(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_description.3menu.html -.. _`item_index(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_index.3menu.html -.. _`item_init(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_init.3menu.html -.. _`item_name(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_name.3menu.html -.. _`item_opts(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_opts.3menu.html -.. _`item_opts_off(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_opts_off.3menu.html -.. _`item_opts_on(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_opts_on.3menu.html -.. _`items(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/items.3menu.html -.. _`item_term(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_term.3menu.html -.. _`item_userptr(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_userptr.3menu.html -.. _`item_value(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_value.3menu.html -.. _`item_visible(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/item_visible.3menu.html -.. _`j0(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/j0.3.html -.. _`j0(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/j0.3posix.html -.. _`j0f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/j0f.3.html -.. _`j0l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/j0l.3.html -.. _`j1(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/j1.3.html -.. _`j1(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/j1.3posix.html -.. _`j1f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/j1f.3.html -.. _`j1l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/j1l.3.html -.. _`jn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/jn.3.html -.. _`jn(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/jn.3posix.html -.. _`jnf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/jnf.3.html -.. _`jnl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/jnl.3.html -.. _`jobs(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/jobs.1posix.html -.. _`join(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/join.1.html -.. _`join(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/join.1posix.html -.. _`jrand48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/jrand48.3.html -.. _`jrand48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/jrand48.3posix.html -.. _`jrand48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/jrand48_r.3.html -.. _`kernel(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/kernel.3ncurses.html -.. _`keybound(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/keybound.3ncurses.html -.. _`keyctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/keyctl.2.html -.. _`key_decryptsession(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/key_decryptsession.3.html -.. _`key_defined(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/key_defined.3ncurses.html -.. _`key_encryptsession(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/key_encryptsession.3.html -.. _`key_gendes(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/key_gendes.3.html -.. _`key_name(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/key_name.3ncurses.html -.. _`keyname(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/keyname.3ncurses.html -.. _`keyok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/keyok.3ncurses.html -.. _`keypad(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/keypad.3ncurses.html -.. _`key_secretkey_is_set(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/key_secretkey_is_set.3.html -.. _`key_setsecret(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/key_setsecret.3.html -.. _`kill(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/kill.1.html -.. _`kill(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/kill.1posix.html -.. _`kill(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/kill.2.html -.. _`kill(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/kill.3posix.html -.. _`killall(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/killall.1.html -.. _`killall5(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/killall5.8.html -.. _`killchar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/killchar.3ncurses.html -.. _`killpg(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/killpg.2.html -.. _`killpg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/killpg.3posix.html -.. _`killwchar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/killwchar.3ncurses.html -.. _`klogctl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/klogctl.3.html -.. _`kmem(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/kmem.4.html -.. _`koi8-r(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/koi8-r.7.html -.. _`koi8-u(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/koi8-u.7.html -.. _`ksh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ksh.1.html -.. _`ksh93(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ksh93.1.html -.. _`l64a(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/l64a.3.html -.. _`l64a(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/l64a.3posix.html -.. _`labs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/labs.3.html -.. _`labs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/labs.3posix.html -.. _`langinfo.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/langinfo.h.7posix.html -.. _`last(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/last.1.html -.. _`lastb(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lastb.1.html -.. _`lastlog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/lastlog.8.html -.. _`latin10(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin10.7.html -.. _`latin1(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin1.7.html -.. _`latin2(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin2.7.html -.. _`latin3(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin3.7.html -.. _`latin4(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin4.7.html -.. _`latin5(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin5.7.html -.. _`latin6(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin6.7.html -.. _`latin7(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin7.7.html -.. _`latin8(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin8.7.html -.. _`latin9(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/latin9.7.html -.. _`lcf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lcf.1.html -.. _`lchown(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/lchown.2.html -.. _`lchown32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/lchown32.2.html -.. _`lchown(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lchown.3posix.html -.. _`lckpwdf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lckpwdf.3.html -.. _`lcong48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lcong48.3.html -.. _`lcong48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lcong48.3posix.html -.. _`lcong48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lcong48_r.3.html -.. _`ld(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ld.1.html -.. _`ldap.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/ldap.conf.5.html -.. _`ldattach(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ldattach.8.html -.. _`ld.bfd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ld.bfd.1.html -.. _`ldconfig(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ldconfig.8.html -.. _`ldd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ldd.1.html -.. _`ldexp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ldexp.3.html -.. _`ldexp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ldexp.3posix.html -.. _`ldexpf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ldexpf.3.html -.. _`ldexpf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ldexpf.3posix.html -.. _`ldexpl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ldexpl.3.html -.. _`ldexpl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ldexpl.3posix.html -.. _`ldiv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ldiv.3.html -.. _`ldiv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ldiv.3posix.html -.. _`ld-linux(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ld-linux.8.html -.. _`ld-linux.so(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ld-linux.so.8.html -.. _`ldp(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ldp.7.html -.. _`ld.so(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ld.so.8.html -.. _`le16toh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/le16toh.3.html -.. _`le32toh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/le32toh.3.html -.. _`le64toh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/le64toh.3.html -.. _`leaveok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/leaveok.3ncurses.html -.. _`legacy(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/legacy.3ncurses.html -.. _`legacy_coding(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/legacy_coding.3ncurses.html -.. _`less(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/less.1.html -.. _`lessecho(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lessecho.1.html -.. _`lessfile(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lessfile.1.html -.. _`lesskey(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lesskey.1.html -.. _`lesspipe(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lesspipe.1.html -.. _`lex(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lex.1.html -.. _`lex(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lex.1posix.html -.. _`lexgrog(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lexgrog.1.html -.. _`lfind(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lfind.3.html -.. _`lfind(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lfind.3posix.html -.. _`lft(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lft.1.html -.. _`lft.db(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lft.db.1.html -.. _`lgamma(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgamma.3.html -.. _`lgamma(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgamma.3posix.html -.. _`lgammaf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgammaf.3.html -.. _`lgammaf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgammaf.3posix.html -.. _`lgammaf_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgammaf_r.3.html -.. _`lgammal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgammal.3.html -.. _`lgammal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgammal.3posix.html -.. _`lgammal_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgammal_r.3.html -.. _`lgamma_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lgamma_r.3.html -.. _`libc(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/libc.7.html -.. _`libgen.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/libgen.h.7posix.html -.. _`libnetcfg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/libnetcfg.1.html -.. _`libnetlink(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/libnetlink.3.html -.. _`limits.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/limits.conf.5.html -.. _`limits.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/limits.h.7posix.html -.. _`line(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/line.1.html -.. _`link(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/link.1.html -.. _`link(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/link.1posix.html -.. _`link(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/link.2.html -.. _`link(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/link.3posix.html -.. _`linkat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/linkat.2.html -.. _`link_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/link_field.3form.html -.. _`link_fieldtype(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/link_fieldtype.3form.html -.. _`linux32(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/linux32.1.html -.. _`linux64(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/linux64.1.html -.. _`lio_listio(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lio_listio.3posix.html -.. _`listen(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/listen.2.html -.. _`listen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/listen.3posix.html -.. _`list::moreutils(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/list::moreutils.3pm.html -.. _`llabs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llabs.3.html -.. _`llabs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llabs.3posix.html -.. _`lldiv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lldiv.3.html -.. _`lldiv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lldiv.3posix.html -.. _`llrint(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llrint.3.html -.. _`llrint(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llrint.3posix.html -.. _`llrintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llrintf.3.html -.. _`llrintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llrintf.3posix.html -.. _`llrintl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llrintl.3.html -.. _`llrintl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llrintl.3posix.html -.. _`llround(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llround.3.html -.. _`llround(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llround.3posix.html -.. _`llroundf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llroundf.3.html -.. _`llroundf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llroundf.3posix.html -.. _`llroundl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llroundl.3.html -.. _`llroundl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/llroundl.3posix.html -.. _`_llseek(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/_llseek.2.html -.. _`llseek(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/llseek.2.html -.. _`ln(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ln.1.html -.. _`ln(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ln.1posix.html -.. _`lnstat(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/lnstat.8.html -.. _`locale(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/locale.1.html -.. _`locale(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/locale.1posix.html -.. _`locale(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/locale.5.html -.. _`locale(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/locale.7.html -.. _`localeconv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/localeconv.3.html -.. _`localeconv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/localeconv.3posix.html -.. _`localedef(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/localedef.1.html -.. _`localedef(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/localedef.1posix.html -.. _`locale.gen(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/locale.gen.5.html -.. _`locale-gen(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/locale-gen.8.html -.. _`locale::gettext(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/locale::gettext.3pm.html -.. _`locale.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/locale.h.7posix.html -.. _`localtime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/localtime.3.html -.. _`localtime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/localtime.3posix.html -.. _`localtime_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/localtime_r.3.html -.. _`localtime_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/localtime_r.3posix.html -.. _`locate(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/locate.1.html -.. _`locatedb(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/locatedb.5.html -.. _`locate.findutils(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/locate.findutils.1.html -.. _`lock(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/lock.2.html -.. _`lockf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lockf.3.html -.. _`lockf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lockf.3posix.html -.. _`log10(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log10.3.html -.. _`log10(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log10.3posix.html -.. _`log10f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log10f.3.html -.. _`log10f(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log10f.3posix.html -.. _`log10l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log10l.3.html -.. _`log10l(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log10l.3posix.html -.. _`log1p(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log1p.3.html -.. _`log1p(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log1p.3posix.html -.. _`log1pf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log1pf.3.html -.. _`log1pf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log1pf.3posix.html -.. _`log1pl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log1pl.3.html -.. _`log1pl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log1pl.3posix.html -.. _`log2(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log2.3.html -.. _`log2(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log2.3posix.html -.. _`log2f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log2f.3.html -.. _`log2f(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log2f.3posix.html -.. _`log2l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log2l.3.html -.. _`log2l(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log2l.3posix.html -.. _`log(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log.3.html -.. _`log(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/log.3posix.html -.. _`logb(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logb.3.html -.. _`logb(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logb.3posix.html -.. _`logbf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logbf.3.html -.. _`logbf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logbf.3posix.html -.. _`logbl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logbl.3.html -.. _`logbl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logbl.3posix.html -.. _`logf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logf.3.html -.. _`logf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logf.3posix.html -.. _`logger(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/logger.1.html -.. _`logger(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/logger.1posix.html -.. _`login(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/login.1.html -.. _`login(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/login.3.html -.. _`login.defs(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/login.defs.5.html -.. _`login_tty(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/login_tty.3.html -.. _`logl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logl.3.html -.. _`logl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logl.3posix.html -.. _`logname(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/logname.1.html -.. _`logname(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/logname.1posix.html -.. _`logout(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logout.3.html -.. _`logresolve(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/logresolve.1.html -.. _`logrotate(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/logrotate.8.html -.. _`logsave(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/logsave.8.html -.. _`logwtmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/logwtmp.3.html -.. _`longjmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/longjmp.3.html -.. _`_longjmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_longjmp.3posix.html -.. _`longjmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/longjmp.3posix.html -.. _`longname(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/longname.3ncurses.html -.. _`look(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/look.1.html -.. _`lookup_dcookie(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/lookup_dcookie.2.html -.. _`lorder(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lorder.1.html -.. _`losetup(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/losetup.8.html -.. _`lp(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lp.1posix.html -.. _`lp(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/lp.4.html -.. _`lrand48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrand48.3.html -.. _`lrand48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrand48.3posix.html -.. _`lrand48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrand48_r.3.html -.. _`lrint(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrint.3.html -.. _`lrint(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrint.3posix.html -.. _`lrintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrintf.3.html -.. _`lrintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrintf.3posix.html -.. _`lrintl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrintl.3.html -.. _`lrintl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lrintl.3posix.html -.. _`lround(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lround.3.html -.. _`lround(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lround.3posix.html -.. _`lroundf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lroundf.3.html -.. _`lroundf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lroundf.3posix.html -.. _`lroundl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lroundl.3.html -.. _`lroundl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lroundl.3posix.html -.. _`ls(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ls.1.html -.. _`ls(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ls.1posix.html -.. _`lsattr(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lsattr.1.html -.. _`lscpu(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lscpu.1.html -.. _`lsearch(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lsearch.3.html -.. _`lsearch(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lsearch.3posix.html -.. _`lseek(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/lseek.2.html -.. _`lseek(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lseek.3posix.html -.. _`lseek64(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lseek64.3.html -.. _`lsinitramfs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/lsinitramfs.8.html -.. _`lsmod(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/lsmod.8.html -.. _`lsof(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/lsof.8.html -.. _`lspgpot(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lspgpot.1.html -.. _`lstat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/lstat.2.html -.. _`lstat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lstat.3posix.html -.. _`lstat64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/lstat64.2.html -.. _`lutimes(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/lutimes.3.html -.. _`lzcat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzcat.1.html -.. _`lzcmp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzcmp.1.html -.. _`lzdiff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzdiff.1.html -.. _`lzegrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzegrep.1.html -.. _`lzfgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzfgrep.1.html -.. _`lzgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzgrep.1.html -.. _`lzless(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzless.1.html -.. _`lzma(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzma.1.html -.. _`lzmainfo(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzmainfo.1.html -.. _`lzmore(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzmore.1.html -.. _`lzop(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/lzop.1.html -.. _`m4(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/m4.1.html -.. _`m4(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/m4.1posix.html -.. _`madvise1(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/madvise1.2.html -.. _`madvise(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/madvise.2.html -.. _`magic(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/magic.5.html -.. _`mail(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mail.1.html -.. _`mailaddr(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/mailaddr.7.html -.. _`mailcap(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/mailcap.5.html -.. _`mailcap.order(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/mailcap.order.5.html -.. _`mailname(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/mailname.5.html -.. _`mailq(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mailq.8.html -.. _`mailx(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mailx.1.html -.. _`mailx(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mailx.1posix.html -.. _`major(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/major.3.html -.. _`make(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/make.1.html -.. _`make(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/make.1posix.html -.. _`makecontext(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/makecontext.3.html -.. _`makecontext(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/makecontext.3posix.html -.. _`makedev(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/makedev.3.html -.. _`make-ssl-cert(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/make-ssl-cert.8.html -.. _`malloc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/malloc.3.html -.. _`malloc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/malloc.3posix.html -.. _`__malloc_hook(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__malloc_hook.3.html -.. _`malloc_hook(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/malloc_hook.3.html -.. _`mallopt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mallopt.3.html -.. _`man(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/man.1.html -.. _`man(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/man.1posix.html -.. _`man2html(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/man2html.1.html -.. _`man(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/man.7.html -.. _`manconv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/manconv.1.html -.. _`mandb(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mandb.8.html -.. _`man-pages(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/man-pages.7.html -.. _`manpath(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/manpath.1.html -.. _`manpath(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/manpath.5.html -.. _`mark(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mark.3menu.html -.. _`matherr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/matherr.3.html -.. _`math_error(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/math_error.7.html -.. _`math.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/math.h.7posix.html -.. _`mawk(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mawk.1.html -.. _`mb_cur_max(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mb_cur_max.3.html -.. _`mbind(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mbind.2.html -.. _`mblen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mblen.3.html -.. _`mblen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mblen.3posix.html -.. _`mb_len_max(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mb_len_max.3.html -.. _`mbox(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/mbox.5.html -.. _`mbrlen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbrlen.3.html -.. _`mbrlen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbrlen.3posix.html -.. _`mbrtowc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbrtowc.3.html -.. _`mbrtowc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbrtowc.3posix.html -.. _`mbsinit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbsinit.3.html -.. _`mbsinit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbsinit.3posix.html -.. _`mbsnrtowcs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbsnrtowcs.3.html -.. _`mbsrtowcs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbsrtowcs.3.html -.. _`mbsrtowcs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbsrtowcs.3posix.html -.. _`mbstowcs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbstowcs.3.html -.. _`mbstowcs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbstowcs.3posix.html -.. _`mbtowc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbtowc.3.html -.. _`mbtowc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mbtowc.3posix.html -.. _`mcookie(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mcookie.1.html -.. _`mcprint(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mcprint.3ncurses.html -.. _`md2(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/md2.1ssl.html -.. _`md4(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/md4.1ssl.html -.. _`md5(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/md5.1ssl.html -.. _`md5sum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/md5sum.1.html -.. _`md5sum.textutils(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/md5sum.textutils.1.html -.. _`mdc2(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mdc2.1ssl.html -.. _`mdoc(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/mdoc.7.html -.. _`mem(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/mem.4.html -.. _`memalign(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memalign.3.html -.. _`memccpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memccpy.3.html -.. _`memccpy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memccpy.3posix.html -.. _`memchr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memchr.3.html -.. _`memchr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memchr.3posix.html -.. _`memcmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memcmp.3.html -.. _`memcmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memcmp.3posix.html -.. _`memcpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memcpy.3.html -.. _`memcpy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memcpy.3posix.html -.. _`memfrob(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memfrob.3.html -.. _`memleaks(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memleaks.3ncurses.html -.. _`memmem(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memmem.3.html -.. _`memmove(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memmove.3.html -.. _`memmove(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memmove.3posix.html -.. _`mempcpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mempcpy.3.html -.. _`memrchr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memrchr.3.html -.. _`memset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memset.3.html -.. _`memset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/memset.3posix.html -.. _`menu(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu.3menu.html -.. _`menu_attributes(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_attributes.3menu.html -.. _`menu_back(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_back.3menu.html -.. _`menu_current(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_current.3menu.html -.. _`menu_cursor(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_cursor.3menu.html -.. _`menu_driver(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_driver.3menu.html -.. _`menu_fore(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_fore.3menu.html -.. _`menu_format(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_format.3menu.html -.. _`menu_grey(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_grey.3menu.html -.. _`menu_hook(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_hook.3menu.html -.. _`menu_init(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_init.3menu.html -.. _`menu_items(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_items.3menu.html -.. _`menu_mark(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_mark.3menu.html -.. _`menu_name(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_name.3menu.html -.. _`menu_new(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_new.3menu.html -.. _`menu_opts(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_opts.3menu.html -.. _`menu_opts_off(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_opts_off.3menu.html -.. _`menu_opts_on(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_opts_on.3menu.html -.. _`menu_pad(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_pad.3menu.html -.. _`menu_pattern(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_pattern.3menu.html -.. _`menu_post(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_post.3menu.html -.. _`menu_request_by_name(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_request_by_name.3menu.html -.. _`menu_request_name(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_request_name.3menu.html -.. _`menu_requestname(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_requestname.3menu.html -.. _`menu_spacing(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_spacing.3menu.html -.. _`menu_sub(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_sub.3menu.html -.. _`menu_term(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_term.3menu.html -.. _`menu_userptr(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_userptr.3menu.html -.. _`menu_value(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_value.3menu.html -.. _`menu_visible(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_visible.3menu.html -.. _`menu_win(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/menu_win.3menu.html -.. _`mesg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mesg.1.html -.. _`mesg(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mesg.1posix.html -.. _`meta(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/meta.3ncurses.html -.. _`migrate_pages(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/migrate_pages.2.html -.. _`mii-tool(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mii-tool.8.html -.. _`mincore(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mincore.2.html -.. _`minor(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/minor.3.html -.. _`missing(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/missing.7.html -.. _`mitem_current(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mitem_current.3menu.html -.. _`mitem_name(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mitem_name.3menu.html -.. _`mitem_new(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mitem_new.3menu.html -.. _`mitem_opts(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mitem_opts.3menu.html -.. _`mitem_userptr(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mitem_userptr.3menu.html -.. _`mitem_value(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mitem_value.3menu.html -.. _`mitem_visible(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mitem_visible.3menu.html -.. _`mkdir(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mkdir.1.html -.. _`mkdir(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mkdir.1posix.html -.. _`mkdir(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mkdir.2.html -.. _`mkdir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkdir.3posix.html -.. _`mkdirat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mkdirat.2.html -.. _`mkdtemp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkdtemp.3.html -.. _`mke2fs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mke2fs.8.html -.. _`mke2fs.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/mke2fs.conf.5.html -.. _`mkfifo(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mkfifo.1.html -.. _`mkfifo(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mkfifo.1posix.html -.. _`mkfifo(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkfifo.3.html -.. _`mkfifo(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkfifo.3posix.html -.. _`mkfifoat(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkfifoat.3.html -.. _`mkfs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkfs.8.html -.. _`mkfs.bfs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkfs.bfs.8.html -.. _`mkfs.ext2(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkfs.ext2.8.html -.. _`mkfs.ext3(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkfs.ext3.8.html -.. _`mkfs.ext4(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkfs.ext4.8.html -.. _`mkfs.ext4dev(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkfs.ext4dev.8.html -.. _`mkfs.minix(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkfs.minix.8.html -.. _`mkhomedir_helper(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkhomedir_helper.8.html -.. _`mkinitramfs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkinitramfs.8.html -.. _`mkinitramfs-kpkg(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkinitramfs-kpkg.8.html -.. _`mklost+found(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mklost+found.8.html -.. _`mknod(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mknod.1.html -.. _`mknod(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mknod.2.html -.. _`mknod(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mknod.3posix.html -.. _`mknodat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mknodat.2.html -.. _`mkostemp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkostemp.3.html -.. _`mkostemps(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkostemps.3.html -.. _`mkstemp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkstemp.3.html -.. _`mkstemp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkstemp.3posix.html -.. _`mkstemps(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mkstemps.3.html -.. _`mkswap(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mkswap.8.html -.. _`mktemp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mktemp.1.html -.. _`mktemp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mktemp.3.html -.. _`mktemp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mktemp.3posix.html -.. _`mktime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mktime.3.html -.. _`mktime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mktime.3posix.html -.. _`mlock(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mlock.2.html -.. _`mlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mlock.3posix.html -.. _`mlockall(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mlockall.2.html -.. _`mlockall(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mlockall.3posix.html -.. _`mman.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/mman.h.7posix.html -.. _`mmap2(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mmap2.2.html -.. _`mmap(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mmap.2.html -.. _`mmap(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mmap.3posix.html -.. _`mmap64(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mmap64.3.html -.. _`mmdf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/mmdf.5.html -.. _`modf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/modf.3.html -.. _`modf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/modf.3posix.html -.. _`modff(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/modff.3.html -.. _`modff(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/modff.3posix.html -.. _`modfl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/modfl.3.html -.. _`modfl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/modfl.3posix.html -.. _`modify_ldt(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/modify_ldt.2.html -.. _`modinfo(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/modinfo.8.html -.. _`modprobe(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/modprobe.8.html -.. _`modprobe.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/modprobe.conf.5.html -.. _`modules(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/modules.5.html -.. _`modules.dep(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/modules.dep.5.html -.. _`moduli(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/moduli.5.html -.. _`monetary.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/monetary.h.7posix.html -.. _`more(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/more.1.html -.. _`more(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/more.1posix.html -.. _`motd(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/motd.5.html -.. _`motd.tail(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/motd.tail.5.html -.. _`mount(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mount.2.html -.. _`mount(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/mount.8.html -.. _`mountpoint(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mountpoint.1.html -.. _`mouse(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mouse.3ncurses.html -.. _`mouse(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/mouse.4.html -.. _`mouseinterval(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mouseinterval.3ncurses.html -.. _`mousemask(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mousemask.3ncurses.html -.. _`mouse_trafo(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mouse_trafo.3ncurses.html -.. _`move(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/move.3ncurses.html -.. _`move_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/move_field.3form.html -.. _`move_pages(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/move_pages.2.html -.. _`move_panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/move_panel.3curses.html -.. _`mpool(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mpool.3.html -.. _`mprotect(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mprotect.2.html -.. _`mprotect(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mprotect.3posix.html -.. _`mpx(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mpx.2.html -.. _`mq_close(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_close.3.html -.. _`mq_close(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_close.3posix.html -.. _`mq_getattr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_getattr.3.html -.. _`mq_getattr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_getattr.3posix.html -.. _`mq_getsetattr(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mq_getsetattr.2.html -.. _`mq_notify(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mq_notify.2.html -.. _`mq_notify(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_notify.3.html -.. _`mq_notify(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_notify.3posix.html -.. _`mq_open(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mq_open.2.html -.. _`mq_open(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_open.3.html -.. _`mq_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_open.3posix.html -.. _`mq_overview(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/mq_overview.7.html -.. _`mq_receive(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_receive.3.html -.. _`mq_receive(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_receive.3posix.html -.. _`mq_send(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_send.3.html -.. _`mq_send(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_send.3posix.html -.. _`mq_setattr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_setattr.3.html -.. _`mq_setattr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_setattr.3posix.html -.. _`mq_timedreceive(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mq_timedreceive.2.html -.. _`mq_timedreceive(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_timedreceive.3.html -.. _`mq_timedreceive(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_timedreceive.3posix.html -.. _`mq_timedsend(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mq_timedsend.2.html -.. _`mq_timedsend(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_timedsend.3.html -.. _`mq_timedsend(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_timedsend.3posix.html -.. _`mqueue.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/mqueue.h.7posix.html -.. _`mq_unlink(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mq_unlink.2.html -.. _`mq_unlink(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_unlink.3.html -.. _`mq_unlink(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mq_unlink.3posix.html -.. _`mrand48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mrand48.3.html -.. _`mrand48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mrand48.3posix.html -.. _`mrand48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mrand48_r.3.html -.. _`mremap(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/mremap.2.html -.. _`msgctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/msgctl.2.html -.. _`msgctl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/msgctl.3posix.html -.. _`msgget(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/msgget.2.html -.. _`msgget(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/msgget.3posix.html -.. _`msg.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/msg.h.7posix.html -.. _`msgop(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/msgop.2.html -.. _`msgrcv(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/msgrcv.2.html -.. _`msgrcv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/msgrcv.3posix.html -.. _`msgsnd(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/msgsnd.2.html -.. _`msgsnd(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/msgsnd.3posix.html -.. _`ms_print(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ms_print.1.html -.. _`msr(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/msr.4.html -.. _`msync(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/msync.2.html -.. _`msync(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/msync.3posix.html -.. _`mt(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mt.1.html -.. _`mt-gnu(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mt-gnu.1.html -.. _`mtrace(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mtrace.1.html -.. _`mtrace(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mtrace.3.html -.. _`munlock(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/munlock.2.html -.. _`munlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/munlock.3posix.html -.. _`munlockall(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/munlockall.2.html -.. _`munlockall(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/munlockall.3posix.html -.. _`munmap(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/munmap.2.html -.. _`munmap(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/munmap.3posix.html -.. _`muntrace(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/muntrace.3.html -.. _`mutt(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mutt.1.html -.. _`mutt_dotlock(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mutt_dotlock.1.html -.. _`muttrc(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/muttrc.5.html -.. _`mv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mv.1.html -.. _`mv(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/mv.1posix.html -.. _`mvaddch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvaddch.3ncurses.html -.. _`mvaddchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvaddchnstr.3ncurses.html -.. _`mvaddchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvaddchstr.3ncurses.html -.. _`mvaddnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvaddnstr.3ncurses.html -.. _`mvaddnwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvaddnwstr.3ncurses.html -.. _`mvaddstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvaddstr.3ncurses.html -.. _`mvadd_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvadd_wch.3ncurses.html -.. _`mvadd_wchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvadd_wchnstr.3ncurses.html -.. _`mvadd_wchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvadd_wchstr.3ncurses.html -.. _`mvaddwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvaddwstr.3ncurses.html -.. _`mvchgat(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvchgat.3ncurses.html -.. _`mvcur(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvcur.3ncurses.html -.. _`mvdelch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvdelch.3ncurses.html -.. _`mvderwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvderwin.3ncurses.html -.. _`mvgetch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvgetch.3ncurses.html -.. _`mvgetnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvgetnstr.3ncurses.html -.. _`mvgetn_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvgetn_wstr.3ncurses.html -.. _`mvgetstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvgetstr.3ncurses.html -.. _`mvget_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvget_wch.3ncurses.html -.. _`mvget_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvget_wstr.3ncurses.html -.. _`mvhline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvhline.3ncurses.html -.. _`mvhline_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvhline_set.3ncurses.html -.. _`mvinch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinch.3ncurses.html -.. _`mvinchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinchnstr.3ncurses.html -.. _`mvinchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinchstr.3ncurses.html -.. _`mvinnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinnstr.3ncurses.html -.. _`mvinnwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinnwstr.3ncurses.html -.. _`mvinsch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinsch.3ncurses.html -.. _`mvinsnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinsnstr.3ncurses.html -.. _`mvins_nwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvins_nwstr.3ncurses.html -.. _`mvinsstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinsstr.3ncurses.html -.. _`mvinstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinstr.3ncurses.html -.. _`mvins_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvins_wch.3ncurses.html -.. _`mvins_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvins_wstr.3ncurses.html -.. _`mvin_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvin_wch.3ncurses.html -.. _`mvin_wchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvin_wchnstr.3ncurses.html -.. _`mvin_wchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvin_wchstr.3ncurses.html -.. _`mvinwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvinwstr.3ncurses.html -.. _`mvprintw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvprintw.3ncurses.html -.. _`mvscanw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvscanw.3ncurses.html -.. _`mvvline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvvline.3ncurses.html -.. _`mvvline_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvvline_set.3ncurses.html -.. _`mvwaddch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwaddch.3ncurses.html -.. _`mvwaddchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwaddchnstr.3ncurses.html -.. _`mvwaddchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwaddchstr.3ncurses.html -.. _`mvwaddnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwaddnstr.3ncurses.html -.. _`mvwaddnwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwaddnwstr.3ncurses.html -.. _`mvwaddstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwaddstr.3ncurses.html -.. _`mvwadd_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwadd_wch.3ncurses.html -.. _`mvwadd_wchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwadd_wchnstr.3ncurses.html -.. _`mvwadd_wchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwadd_wchstr.3ncurses.html -.. _`mvwaddwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwaddwstr.3ncurses.html -.. _`mvwchgat(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwchgat.3ncurses.html -.. _`mvwdelch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwdelch.3ncurses.html -.. _`mvwgetch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwgetch.3ncurses.html -.. _`mvwgetnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwgetnstr.3ncurses.html -.. _`mvwgetn_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwgetn_wstr.3ncurses.html -.. _`mvwgetstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwgetstr.3ncurses.html -.. _`mvwget_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwget_wch.3ncurses.html -.. _`mvwget_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwget_wstr.3ncurses.html -.. _`mvwhline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwhline.3ncurses.html -.. _`mvwhline_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwhline_set.3ncurses.html -.. _`mvwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwin.3ncurses.html -.. _`mvwinch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinch.3ncurses.html -.. _`mvwinchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinchnstr.3ncurses.html -.. _`mvwinchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinchstr.3ncurses.html -.. _`mvwinnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinnstr.3ncurses.html -.. _`mvwinnwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinnwstr.3ncurses.html -.. _`mvwinsch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinsch.3ncurses.html -.. _`mvwinsnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinsnstr.3ncurses.html -.. _`mvwins_nwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwins_nwstr.3ncurses.html -.. _`mvwinsstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinsstr.3ncurses.html -.. _`mvwinstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinstr.3ncurses.html -.. _`mvwins_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwins_wch.3ncurses.html -.. _`mvwins_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwins_wstr.3ncurses.html -.. _`mvwin_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwin_wch.3ncurses.html -.. _`mvwin_wchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwin_wchnstr.3ncurses.html -.. _`mvwin_wchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwin_wchstr.3ncurses.html -.. _`mvwinwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwinwstr.3ncurses.html -.. _`mvwprintw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwprintw.3ncurses.html -.. _`mvwscanw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwscanw.3ncurses.html -.. _`mvwvline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwvline.3ncurses.html -.. _`mvwvline_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/mvwvline_set.3ncurses.html -.. _`namei(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/namei.1.html -.. _`nameif(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/nameif.8.html -.. _`namespace.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/namespace.conf.5.html -.. _`nan(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nan.3.html -.. _`nan(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nan.3posix.html -.. _`nanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nanf.3.html -.. _`nanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nanf.3posix.html -.. _`nanl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nanl.3.html -.. _`nanl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nanl.3posix.html -.. _`nano(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nano.1.html -.. _`nanorc(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/nanorc.5.html -.. _`nanosleep(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/nanosleep.2.html -.. _`nanosleep(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nanosleep.3posix.html -.. _`napms(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/napms.3ncurses.html -.. _`nawk(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nawk.1.html -.. _`nc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nc.1.html -.. _`ncal(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ncal.1.html -.. _`_nc_freeall(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_nc_freeall.3ncurses.html -.. _`_nc_free_and_exit(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_nc_free_and_exit.3ncurses.html -.. _`_nc_tracebits(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_nc_tracebits.3ncurses.html -.. _`nc_traditional(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nc_traditional.1.html -.. _`ncurses(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ncurses.3ncurses.html -.. _`ncurses5-config(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ncurses5-config.1.html -.. _`ncursesw5-config(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ncursesw5-config.1.html -.. _`ndbm.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ndbm.h.7posix.html -.. _`nearbyint(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nearbyint.3.html -.. _`nearbyint(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nearbyint.3posix.html -.. _`nearbyintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nearbyintf.3.html -.. _`nearbyintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nearbyintf.3posix.html -.. _`nearbyintl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nearbyintl.3.html -.. _`nearbyintl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nearbyintl.3posix.html -.. _`neqn(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/neqn.1.html -.. _`netcat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/netcat.1.html -.. _`netdb.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/netdb.h.7posix.html -.. _`netdevice(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/netdevice.7.html -.. _`netlink(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/netlink.3.html -.. _`netlink(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/netlink.7.html -.. _`netlink_route(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/netlink_route.7.html -.. _`netstat(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/netstat.8.html -.. _`networks(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/networks.5.html -.. _`new(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new.3form.html -.. _`new(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new.3menu.html -.. _`newaliases(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/newaliases.8.html -.. _`new_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new_field.3form.html -.. _`new_fieldtype(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new_fieldtype.3form.html -.. _`new_form(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new_form.3form.html -.. _`newgrp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/newgrp.1.html -.. _`newgrp(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/newgrp.1posix.html -.. _`new_item(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new_item.3menu.html -.. _`new_menu(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new_menu.3menu.html -.. _`newpad(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/newpad.3ncurses.html -.. _`new_page(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new_page.3form.html -.. _`new_panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/new_panel.3curses.html -.. _`_newselect(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/_newselect.2.html -.. _`newterm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/newterm.3ncurses.html -.. _`newusers(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/newusers.8.html -.. _`newwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/newwin.3ncurses.html -.. _`nextafter(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nextafter.3.html -.. _`nextafter(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nextafter.3posix.html -.. _`nextafterf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nextafterf.3.html -.. _`nextafterf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nextafterf.3posix.html -.. _`nextafterl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nextafterl.3.html -.. _`nextafterl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nextafterl.3posix.html -.. _`nexttoward(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nexttoward.3.html -.. _`nexttoward(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nexttoward.3posix.html -.. _`nexttowardf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nexttowardf.3.html -.. _`nexttowardf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nexttowardf.3posix.html -.. _`nexttowardl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nexttowardl.3.html -.. _`nexttowardl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nexttowardl.3posix.html -.. _`nfsservctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/nfsservctl.2.html -.. _`nftw(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nftw.3.html -.. _`nftw(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nftw.3posix.html -.. _`nice(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nice.1.html -.. _`nice(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nice.1posix.html -.. _`nice(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/nice.2.html -.. _`nice(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nice.3posix.html -.. _`nisdomainname(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nisdomainname.1.html -.. _`nl(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nl.1.html -.. _`nl(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nl.1posix.html -.. _`nl(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nl.3ncurses.html -.. _`nl_langinfo(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nl_langinfo.3.html -.. _`nl_langinfo(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nl_langinfo.3posix.html -.. _`nlmconv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nlmconv.1.html -.. _`nl_types.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/nl_types.h.7posix.html -.. _`nm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nm.1.html -.. _`nm(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nm.1posix.html -.. _`nocbreak(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nocbreak.3ncurses.html -.. _`nodelay(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nodelay.3ncurses.html -.. _`noecho(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/noecho.3ncurses.html -.. _`nofilter(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nofilter.3ncurses.html -.. _`nohup(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nohup.1.html -.. _`nohup(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nohup.1posix.html -.. _`nologin(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/nologin.5.html -.. _`nologin(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/nologin.8.html -.. _`nonl(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nonl.3ncurses.html -.. _`noqiflush(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/noqiflush.3ncurses.html -.. _`noraw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/noraw.3ncurses.html -.. _`notimeout(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/notimeout.3ncurses.html -.. _`nproc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nproc.1.html -.. _`nrand48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nrand48.3.html -.. _`nrand48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nrand48.3posix.html -.. _`nrand48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/nrand48_r.3.html -.. _`nroff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nroff.1.html -.. _`nseq(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/nseq.1ssl.html -.. _`nsswitch.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/nsswitch.conf.5.html -.. _`nstat(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/nstat.8.html -.. _`ntohl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ntohl.3.html -.. _`ntohl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ntohl.3posix.html -.. _`ntohs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ntohs.3.html -.. _`ntohs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ntohs.3posix.html -.. _`null(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/null.4.html -.. _`numa(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/numa.7.html -.. _`numa_maps(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/numa_maps.5.html -.. _`objcopy(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/objcopy.1.html -.. _`objdump(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/objdump.1.html -.. _`ocsp(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ocsp.1ssl.html -.. _`od(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/od.1.html -.. _`od(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/od.1posix.html -.. _`offsetof(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/offsetof.3.html -.. _`oldfind(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/oldfind.1.html -.. _`oldfstat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/oldfstat.2.html -.. _`oldlstat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/oldlstat.2.html -.. _`oldolduname(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/oldolduname.2.html -.. _`oldstat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/oldstat.2.html -.. _`olduname(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/olduname.2.html -.. _`omshell(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/omshell.1.html -.. _`on_exit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/on_exit.3.html -.. _`opaque(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/opaque.3ncurses.html -.. _`open(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/open.2.html -.. _`open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/open.3posix.html -.. _`openat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/openat.2.html -.. _`opendir(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/opendir.3.html -.. _`opendir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/opendir.3posix.html -.. _`openlog(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/openlog.3.html -.. _`openlog(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/openlog.3posix.html -.. _`open_memstream(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/open_memstream.3.html -.. _`openpty(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/openpty.3.html -.. _`openssl(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/openssl.1ssl.html -.. _`open_wmemstream(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/open_wmemstream.3.html -.. _`operator(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/operator.7.html -.. _`optarg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/optarg.3.html -.. _`optarg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/optarg.3posix.html -.. _`opterr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/opterr.3.html -.. _`opterr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/opterr.3posix.html -.. _`optind(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/optind.3.html -.. _`optind(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/optind.3posix.html -.. _`optopt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/optopt.3.html -.. _`optopt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/optopt.3posix.html -.. _`opts(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/opts.3form.html -.. _`opts(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/opts.3menu.html -.. _`outb(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outb.2.html -.. _`outb_p(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outb_p.2.html -.. _`outl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outl.2.html -.. _`outl_p(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outl_p.2.html -.. _`outopts(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/outopts.3ncurses.html -.. _`outsb(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outsb.2.html -.. _`outsl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outsl.2.html -.. _`outsw(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outsw.2.html -.. _`outw(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outw.2.html -.. _`outw_p(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/outw_p.2.html -.. _`overlay(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/overlay.3ncurses.html -.. _`overwrite(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/overwrite.3ncurses.html -.. _`ownership(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ownership.8.html -.. _`packet(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/packet.7.html -.. _`pad(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pad.3ncurses.html -.. _`page(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/page.3form.html -.. _`pager(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pager.1.html -.. _`pair_content(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pair_content.3ncurses.html -.. _`pair_number(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pair_number.3ncurses.html -.. _`pam(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pam.7.html -.. _`pam_access(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_access.8.html -.. _`pam-auth-update(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam-auth-update.8.html -.. _`pam.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/pam.conf.5.html -.. _`pam.d(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/pam.d.5.html -.. _`pam_debug(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_debug.8.html -.. _`pam_deny(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_deny.8.html -.. _`pam_echo(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_echo.8.html -.. _`pam_env(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_env.8.html -.. _`pam_env.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/pam_env.conf.5.html -.. _`pam_exec(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_exec.8.html -.. _`pam_faildelay(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_faildelay.8.html -.. _`pam_filter(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_filter.8.html -.. _`pam_ftp(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_ftp.8.html -.. _`pam_getenv(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_getenv.8.html -.. _`pam_group(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_group.8.html -.. _`pam_issue(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_issue.8.html -.. _`pam_keyinit(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_keyinit.8.html -.. _`pam_lastlog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_lastlog.8.html -.. _`pam_limits(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_limits.8.html -.. _`pam_listfile(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_listfile.8.html -.. _`pam_localuser(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_localuser.8.html -.. _`pam_loginuid(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_loginuid.8.html -.. _`pam_mail(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_mail.8.html -.. _`pam_mkhomedir(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_mkhomedir.8.html -.. _`pam_motd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_motd.8.html -.. _`pam_namespace(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_namespace.8.html -.. _`pam_nologin(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_nologin.8.html -.. _`pam_permit(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_permit.8.html -.. _`pam_pwhistory(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_pwhistory.8.html -.. _`pam_rhosts(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_rhosts.8.html -.. _`pam_rootok(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_rootok.8.html -.. _`pam_securetty(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_securetty.8.html -.. _`pam_selinux(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_selinux.8.html -.. _`pam_sepermit(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_sepermit.8.html -.. _`pam_shells(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_shells.8.html -.. _`pam_succeed_if(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_succeed_if.8.html -.. _`pam_tally2(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_tally2.8.html -.. _`pam_tally(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_tally.8.html -.. _`pam_time(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_time.8.html -.. _`pam_timestamp(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_timestamp.8.html -.. _`pam_timestamp_check(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_timestamp_check.8.html -.. _`pam_umask(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_umask.8.html -.. _`pam_unix(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_unix.8.html -.. _`pam_userdb(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_userdb.8.html -.. _`pam_warn(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_warn.8.html -.. _`pam_wheel(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_wheel.8.html -.. _`pam_xauth(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pam_xauth.8.html -.. _`panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/panel.3curses.html -.. _`panel_above(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/panel_above.3curses.html -.. _`panel_below(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/panel_below.3curses.html -.. _`panel_hidden(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/panel_hidden.3curses.html -.. _`panel_userptr(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/panel_userptr.3curses.html -.. _`panel_window(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/panel_window.3curses.html -.. _`partx(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/partx.8.html -.. _`passwd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/passwd.1.html -.. _`passwd(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/passwd.1ssl.html -.. _`passwd2des(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/passwd2des.3.html -.. _`passwd(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/passwd.5.html -.. _`paste(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/paste.1.html -.. _`paste(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/paste.1posix.html -.. _`patch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/patch.1.html -.. _`patch(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/patch.1posix.html -.. _`pathchk(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pathchk.1.html -.. _`pathchk(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pathchk.1posix.html -.. _`pathconf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pathconf.3.html -.. _`pathconf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pathconf.3posix.html -.. _`path_resolution(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/path_resolution.2.html -.. _`path_resolution(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/path_resolution.7.html -.. _`pattern(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pattern.3menu.html -.. _`pause(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pause.2.html -.. _`pause(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pause.3posix.html -.. _`pax(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pax.1posix.html -.. _`pciconfig_iobase(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pciconfig_iobase.2.html -.. _`pciconfig_read(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pciconfig_read.2.html -.. _`pciconfig_write(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pciconfig_write.2.html -.. _`pclose(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pclose.3.html -.. _`pclose(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pclose.3posix.html -.. _`pcrepattern(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pcrepattern.3.html -.. _`pcretest(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pcretest.1.html -.. _`pdb(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pdb.1.html -.. _`pdb2.6(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pdb2.6.1.html -.. _`pechochar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pechochar.3ncurses.html -.. _`pecho_wchar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pecho_wchar.3ncurses.html -.. _`peekfd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/peekfd.1.html -.. _`perf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/perf.1.html -.. _`perl(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/perl.1.html -.. _`perl5(10.1.1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/perl5.10.1.1.html -.. _`perlbug(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/perlbug.1.html -.. _`perlivp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/perlivp.1.html -.. _`perlthanks(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/perlthanks.1.html -.. _`perror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/perror.3.html -.. _`perror(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/perror.3posix.html -.. _`personality(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/personality.2.html -.. _`pf_inet6(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pf_inet6.7.html -.. _`pf_local(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pf_local.7.html -.. _`pf_netlink(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pf_netlink.7.html -.. _`pf_packet(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pf_packet.7.html -.. _`pf_unix(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pf_unix.7.html -.. _`pf_x25(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pf_x25.7.html -.. _`pg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pg.1.html -.. _`pgawk(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pgawk.1.html -.. _`pgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pgrep.1.html -.. _`pic(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pic.1.html -.. _`pico(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pico.1.html -.. _`piconv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/piconv.1.html -.. _`pidof(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pidof.8.html -.. _`ping6(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ping6.8.html -.. _`ping(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ping.8.html -.. _`pinky(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pinky.1.html -.. _`pipe2(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pipe2.2.html -.. _`pipe(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pipe.2.html -.. _`pipe(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pipe.3posix.html -.. _`pipe(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pipe.7.html -.. _`pivot_root(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pivot_root.2.html -.. _`pivot_root(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pivot_root.8.html -.. _`pkcs12(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pkcs12.1ssl.html -.. _`pkcs7(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pkcs7.1ssl.html -.. _`pkcs8(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pkcs8.1ssl.html -.. _`pkill(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pkill.1.html -.. _`pl2pm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pl2pm.1.html -.. _`plipconfig(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/plipconfig.8.html -.. _`pmap(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pmap.1.html -.. _`pmap_getmaps(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pmap_getmaps.3.html -.. _`pmap_getport(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pmap_getport.3.html -.. _`pmap_rmtcall(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pmap_rmtcall.3.html -.. _`pmap_set(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pmap_set.3.html -.. _`pmap_unset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pmap_unset.3.html -.. _`pnoutrefresh(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pnoutrefresh.3ncurses.html -.. _`pod2html(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pod2html.1.html -.. _`pod2latex(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pod2latex.1.html -.. _`pod2man(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pod2man.1.html -.. _`pod2text(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pod2text.1.html -.. _`pod2usage(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pod2usage.1.html -.. _`podchecker(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/podchecker.1.html -.. _`podselect(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/podselect.1.html -.. _`poll(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/poll.2.html -.. _`poll(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/poll.3posix.html -.. _`poll.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/poll.h.7posix.html -.. _`popen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/popen.3.html -.. _`popen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/popen.3posix.html -.. _`port(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/port.4.html -.. _`pos_form_cursor(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pos_form_cursor.3form.html -.. _`posix_fadvise(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/posix_fadvise.2.html -.. _`posix_fadvise(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_fadvise.3posix.html -.. _`posix_fallocate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_fallocate.3.html -.. _`posix_fallocate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_fallocate.3posix.html -.. _`posix_madvise(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_madvise.3posix.html -.. _`posix_memalign(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_memalign.3.html -.. _`posix_memalign(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_memalign.3posix.html -.. _`posix_mem_offset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_mem_offset.3posix.html -.. _`posix_openpt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_openpt.3.html -.. _`posix_openpt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_openpt.3posix.html -.. _`posixoptions(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/posixoptions.7.html -.. _`posix_spawn(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawn.3posix.html -.. _`posix_spawnattr_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_destroy.3posix.html -.. _`posix_spawnattr_getflags(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_getflags.3posix.html -.. _`posix_spawnattr_getpgroup(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_getpgroup.3posix.html -.. _`posix_spawnattr_getschedparam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_getschedparam.3posix.html -.. _`posix_spawnattr_getschedpolicy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_getschedpolicy.3posix.html -.. _`posix_spawnattr_getsigdefault(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_getsigdefault.3posix.html -.. _`posix_spawnattr_getsigmask(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_getsigmask.3posix.html -.. _`posix_spawnattr_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_init.3posix.html -.. _`posix_spawnattr_setflags(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_setflags.3posix.html -.. _`posix_spawnattr_setpgroup(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_setpgroup.3posix.html -.. _`posix_spawnattr_setschedparam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_setschedparam.3posix.html -.. _`posix_spawnattr_setschedpolicy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_setschedpolicy.3posix.html -.. _`posix_spawnattr_setsigdefault(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_setsigdefault.3posix.html -.. _`posix_spawnattr_setsigmask(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnattr_setsigmask.3posix.html -.. _`posix_spawn_file_actions_addclose(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawn_file_actions_addclose.3posix.html -.. _`posix_spawn_file_actions_adddup2(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawn_file_actions_adddup2.3posix.html -.. _`posix_spawn_file_actions_addopen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawn_file_actions_addopen.3posix.html -.. _`posix_spawn_file_actions_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawn_file_actions_destroy.3posix.html -.. _`posix_spawn_file_actions_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawn_file_actions_init.3posix.html -.. _`posix_spawnp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_spawnp.3posix.html -.. _`posix_trace_attr_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_destroy.3posix.html -.. _`posix_trace_attr_getclockres(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getclockres.3posix.html -.. _`posix_trace_attr_getcreatetime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getcreatetime.3posix.html -.. _`posix_trace_attr_getgenversion(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getgenversion.3posix.html -.. _`posix_trace_attr_getinherited(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getinherited.3posix.html -.. _`posix_trace_attr_getlogfullpolicy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getlogfullpolicy.3posix.html -.. _`posix_trace_attr_getlogsize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getlogsize.3posix.html -.. _`posix_trace_attr_getmaxdatasize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getmaxdatasize.3posix.html -.. _`posix_trace_attr_getmaxsystemeventsize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getmaxsystemeventsize.3posix.html -.. _`posix_trace_attr_getmaxusereventsize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getmaxusereventsize.3posix.html -.. _`posix_trace_attr_getname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getname.3posix.html -.. _`posix_trace_attr_getstreamfullpolicy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getstreamfullpolicy.3posix.html -.. _`posix_trace_attr_getstreamsize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_getstreamsize.3posix.html -.. _`posix_trace_attr_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_init.3posix.html -.. _`posix_trace_attr_setinherited(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_setinherited.3posix.html -.. _`posix_trace_attr_setlogfullpolicy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_setlogfullpolicy.3posix.html -.. _`posix_trace_attr_setlogsize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_setlogsize.3posix.html -.. _`posix_trace_attr_setmaxdatasize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_setmaxdatasize.3posix.html -.. _`posix_trace_attr_setname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_setname.3posix.html -.. _`posix_trace_attr_setstreamfullpolicy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_setstreamfullpolicy.3posix.html -.. _`posix_trace_attr_setstreamsize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_attr_setstreamsize.3posix.html -.. _`posix_trace_clear(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_clear.3posix.html -.. _`posix_trace_close(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_close.3posix.html -.. _`posix_trace_create(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_create.3posix.html -.. _`posix_trace_create_withlog(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_create_withlog.3posix.html -.. _`posix_trace_event(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_event.3posix.html -.. _`posix_trace_eventid_equal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventid_equal.3posix.html -.. _`posix_trace_eventid_get_name(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventid_get_name.3posix.html -.. _`posix_trace_eventid_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventid_open.3posix.html -.. _`posix_trace_eventset_add(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventset_add.3posix.html -.. _`posix_trace_eventset_del(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventset_del.3posix.html -.. _`posix_trace_eventset_empty(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventset_empty.3posix.html -.. _`posix_trace_eventset_fill(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventset_fill.3posix.html -.. _`posix_trace_eventset_ismember(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventset_ismember.3posix.html -.. _`posix_trace_eventtypelist_getnext_id(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventtypelist_getnext_id.3posix.html -.. _`posix_trace_eventtypelist_rewind(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_eventtypelist_rewind.3posix.html -.. _`posix_trace_flush(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_flush.3posix.html -.. _`posix_trace_get_attr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_get_attr.3posix.html -.. _`posix_trace_get_filter(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_get_filter.3posix.html -.. _`posix_trace_getnext_event(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_getnext_event.3posix.html -.. _`posix_trace_get_status(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_get_status.3posix.html -.. _`posix_trace_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_open.3posix.html -.. _`posix_trace_rewind(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_rewind.3posix.html -.. _`posix_trace_set_filter(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_set_filter.3posix.html -.. _`posix_trace_shutdown(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_shutdown.3posix.html -.. _`posix_trace_start(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_start.3posix.html -.. _`posix_trace_stop(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_stop.3posix.html -.. _`posix_trace_timedgetnext_event(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_timedgetnext_event.3posix.html -.. _`posix_trace_trid_eventid_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_trid_eventid_open.3posix.html -.. _`posix_trace_trygetnext_event(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_trace_trygetnext_event.3posix.html -.. _`posix_typed_mem_get_info(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_typed_mem_get_info.3posix.html -.. _`posix_typed_mem_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/posix_typed_mem_open.3posix.html -.. _`pos_menu_cursor(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pos_menu_cursor.3menu.html -.. _`post(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/post.3form.html -.. _`post(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/post.3menu.html -.. _`post_form(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/post_form.3form.html -.. _`post_menu(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/post_menu.3menu.html -.. _`pow10(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pow10.3.html -.. _`pow10f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pow10f.3.html -.. _`pow10l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pow10l.3.html -.. _`pow(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pow.3.html -.. _`pow(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pow.3posix.html -.. _`poweroff(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/poweroff.8.html -.. _`powf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/powf.3.html -.. _`powf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/powf.3posix.html -.. _`powl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/powl.3.html -.. _`powl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/powl.3posix.html -.. _`ppoll(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ppoll.2.html -.. _`pr(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pr.1.html -.. _`pr(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pr.1posix.html -.. _`prctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/prctl.2.html -.. _`pread(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pread.2.html -.. _`pread(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pread.3posix.html -.. _`pread64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pread64.2.html -.. _`preconv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/preconv.1.html -.. _`prefresh(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/prefresh.3ncurses.html -.. _`prename(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/prename.1.html -.. _`print(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/print.1.html -.. _`print(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/print.3ncurses.html -.. _`printenv(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/printenv.1.html -.. _`printerbanner(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/printerbanner.1.html -.. _`printf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/printf.1.html -.. _`printf(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/printf.1posix.html -.. _`printf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/printf.3.html -.. _`printf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/printf.3posix.html -.. _`printw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/printw.3ncurses.html -.. _`proc(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/proc.5.html -.. _`prof(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/prof.2.html -.. _`profil(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/profil.3.html -.. _`program_invocation_name(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/program_invocation_name.3.html -.. _`program_invocation_short_name(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/program_invocation_short_name.3.html -.. _`protocols(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/protocols.5.html -.. _`prove(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/prove.1.html -.. _`prs(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/prs.1posix.html -.. _`prtstat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/prtstat.1.html -.. _`ps(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ps.1.html -.. _`ps(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ps.1posix.html -.. _`psed(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/psed.1.html -.. _`pselect(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pselect.2.html -.. _`pselect(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pselect.3posix.html -.. _`pselect6(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pselect6.2.html -.. _`psignal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/psignal.3.html -.. _`pstree(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pstree.1.html -.. _`pstree.x11(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pstree.x11.1.html -.. _`pstruct(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pstruct.1.html -.. _`ptar(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ptar.1.html -.. _`ptardiff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ptardiff.1.html -.. _`pthread_atfork(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_atfork.3posix.html -.. _`pthread_attr_destroy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_destroy.3.html -.. _`pthread_attr_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_destroy.3posix.html -.. _`pthread_attr_getaffinity_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getaffinity_np.3.html -.. _`pthread_attr_getdetachstate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getdetachstate.3.html -.. _`pthread_attr_getdetachstate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getdetachstate.3posix.html -.. _`pthread_attr_getguardsize(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getguardsize.3.html -.. _`pthread_attr_getguardsize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getguardsize.3posix.html -.. _`pthread_attr_getinheritsched(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getinheritsched.3.html -.. _`pthread_attr_getinheritsched(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getinheritsched.3posix.html -.. _`pthread_attr_getschedparam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getschedparam.3.html -.. _`pthread_attr_getschedparam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getschedparam.3posix.html -.. _`pthread_attr_getschedpolicy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getschedpolicy.3.html -.. _`pthread_attr_getschedpolicy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getschedpolicy.3posix.html -.. _`pthread_attr_getscope(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getscope.3.html -.. _`pthread_attr_getscope(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getscope.3posix.html -.. _`pthread_attr_getstack(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getstack.3.html -.. _`pthread_attr_getstack(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getstack.3posix.html -.. _`pthread_attr_getstackaddr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getstackaddr.3.html -.. _`pthread_attr_getstackaddr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getstackaddr.3posix.html -.. _`pthread_attr_getstacksize(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getstacksize.3.html -.. _`pthread_attr_getstacksize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_getstacksize.3posix.html -.. _`pthread_attr_init(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_init.3.html -.. _`pthread_attr_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_init.3posix.html -.. _`pthread_attr_setaffinity_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setaffinity_np.3.html -.. _`pthread_attr_setdetachstate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setdetachstate.3.html -.. _`pthread_attr_setdetachstate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setdetachstate.3posix.html -.. _`pthread_attr_setguardsize(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setguardsize.3.html -.. _`pthread_attr_setguardsize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setguardsize.3posix.html -.. _`pthread_attr_setinheritsched(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setinheritsched.3.html -.. _`pthread_attr_setinheritsched(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setinheritsched.3posix.html -.. _`pthread_attr_setschedparam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setschedparam.3.html -.. _`pthread_attr_setschedparam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setschedparam.3posix.html -.. _`pthread_attr_setschedpolicy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setschedpolicy.3.html -.. _`pthread_attr_setschedpolicy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setschedpolicy.3posix.html -.. _`pthread_attr_setscope(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setscope.3.html -.. _`pthread_attr_setscope(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setscope.3posix.html -.. _`pthread_attr_setstack(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setstack.3.html -.. _`pthread_attr_setstack(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setstack.3posix.html -.. _`pthread_attr_setstackaddr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setstackaddr.3.html -.. _`pthread_attr_setstackaddr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setstackaddr.3posix.html -.. _`pthread_attr_setstacksize(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setstacksize.3.html -.. _`pthread_attr_setstacksize(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_attr_setstacksize.3posix.html -.. _`pthread_barrierattr_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_barrierattr_destroy.3posix.html -.. _`pthread_barrierattr_getpshared(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_barrierattr_getpshared.3posix.html -.. _`pthread_barrierattr_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_barrierattr_init.3posix.html -.. _`pthread_barrierattr_setpshared(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_barrierattr_setpshared.3posix.html -.. _`pthread_barrier_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_barrier_destroy.3posix.html -.. _`pthread_barrier_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_barrier_init.3posix.html -.. _`pthread_barrier_wait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_barrier_wait.3posix.html -.. _`pthread_cancel(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cancel.3.html -.. _`pthread_cancel(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cancel.3posix.html -.. _`pthread_cleanup_pop(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cleanup_pop.3.html -.. _`pthread_cleanup_pop(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cleanup_pop.3posix.html -.. _`pthread_cleanup_pop_restore_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cleanup_pop_restore_np.3.html -.. _`pthread_cleanup_push(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cleanup_push.3.html -.. _`pthread_cleanup_push(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cleanup_push.3posix.html -.. _`pthread_cleanup_push_defer_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cleanup_push_defer_np.3.html -.. _`pthread_condattr_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_condattr_destroy.3posix.html -.. _`pthread_condattr_getclock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_condattr_getclock.3posix.html -.. _`pthread_condattr_getpshared(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_condattr_getpshared.3posix.html -.. _`pthread_condattr_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_condattr_init.3posix.html -.. _`pthread_condattr_setclock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_condattr_setclock.3posix.html -.. _`pthread_condattr_setpshared(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_condattr_setpshared.3posix.html -.. _`pthread_cond_broadcast(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cond_broadcast.3posix.html -.. _`pthread_cond_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cond_destroy.3posix.html -.. _`pthread_cond_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cond_init.3posix.html -.. _`pthread_cond_signal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cond_signal.3posix.html -.. _`pthread_cond_timedwait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cond_timedwait.3posix.html -.. _`pthread_cond_wait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_cond_wait.3posix.html -.. _`pthread_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_create.3.html -.. _`pthread_create(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_create.3posix.html -.. _`pthread_detach(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_detach.3.html -.. _`pthread_detach(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_detach.3posix.html -.. _`pthread_equal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_equal.3.html -.. _`pthread_equal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_equal.3posix.html -.. _`pthread_exit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_exit.3.html -.. _`pthread_exit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_exit.3posix.html -.. _`pthread_getaffinity_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getaffinity_np.3.html -.. _`pthread_getattr_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getattr_np.3.html -.. _`pthread_getconcurrency(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getconcurrency.3.html -.. _`pthread_getconcurrency(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getconcurrency.3posix.html -.. _`pthread_getcpuclockid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getcpuclockid.3.html -.. _`pthread_getcpuclockid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getcpuclockid.3posix.html -.. _`pthread_getschedparam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getschedparam.3.html -.. _`pthread_getschedparam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getschedparam.3posix.html -.. _`pthread_getspecific(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_getspecific.3posix.html -.. _`pthread.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pthread.h.7posix.html -.. _`pthread_join(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_join.3.html -.. _`pthread_join(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_join.3posix.html -.. _`pthread_key_create(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_key_create.3posix.html -.. _`pthread_key_delete(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_key_delete.3posix.html -.. _`pthread_kill(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_kill.3.html -.. _`pthread_kill(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_kill.3posix.html -.. _`pthread_kill_other_threads_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_kill_other_threads_np.3.html -.. _`pthread_mutexattr_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_destroy.3posix.html -.. _`pthread_mutexattr_getprioceiling(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_getprioceiling.3posix.html -.. _`pthread_mutexattr_getprotocol(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_getprotocol.3posix.html -.. _`pthread_mutexattr_getpshared(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_getpshared.3posix.html -.. _`pthread_mutexattr_gettype(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_gettype.3posix.html -.. _`pthread_mutexattr_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_init.3posix.html -.. _`pthread_mutexattr_setprioceiling(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_setprioceiling.3posix.html -.. _`pthread_mutexattr_setprotocol(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_setprotocol.3posix.html -.. _`pthread_mutexattr_setpshared(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_setpshared.3posix.html -.. _`pthread_mutexattr_settype(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutexattr_settype.3posix.html -.. _`pthread_mutex_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutex_destroy.3posix.html -.. _`pthread_mutex_getprioceiling(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutex_getprioceiling.3posix.html -.. _`pthread_mutex_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutex_init.3posix.html -.. _`pthread_mutex_lock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutex_lock.3posix.html -.. _`pthread_mutex_setprioceiling(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutex_setprioceiling.3posix.html -.. _`pthread_mutex_timedlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutex_timedlock.3posix.html -.. _`pthread_mutex_trylock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutex_trylock.3posix.html -.. _`pthread_mutex_unlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_mutex_unlock.3posix.html -.. _`pthread_once(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_once.3posix.html -.. _`pthread_rwlockattr_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlockattr_destroy.3posix.html -.. _`pthread_rwlockattr_getpshared(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlockattr_getpshared.3posix.html -.. _`pthread_rwlockattr_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlockattr_init.3posix.html -.. _`pthread_rwlockattr_setpshared(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlockattr_setpshared.3posix.html -.. _`pthread_rwlock_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_destroy.3posix.html -.. _`pthread_rwlock_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_init.3posix.html -.. _`pthread_rwlock_rdlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_rdlock.3posix.html -.. _`pthread_rwlock_timedrdlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_timedrdlock.3posix.html -.. _`pthread_rwlock_timedwrlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_timedwrlock.3posix.html -.. _`pthread_rwlock_tryrdlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_tryrdlock.3posix.html -.. _`pthread_rwlock_trywrlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_trywrlock.3posix.html -.. _`pthread_rwlock_unlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_unlock.3posix.html -.. _`pthread_rwlock_wrlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_rwlock_wrlock.3posix.html -.. _`pthreads(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pthreads.7.html -.. _`pthread_self(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_self.3.html -.. _`pthread_self(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_self.3posix.html -.. _`pthread_setaffinity_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setaffinity_np.3.html -.. _`pthread_setcancelstate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setcancelstate.3.html -.. _`pthread_setcancelstate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setcancelstate.3posix.html -.. _`pthread_setcanceltype(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setcanceltype.3.html -.. _`pthread_setcanceltype(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setcanceltype.3posix.html -.. _`pthread_setconcurrency(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setconcurrency.3.html -.. _`pthread_setconcurrency(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setconcurrency.3posix.html -.. _`pthread_setschedparam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setschedparam.3.html -.. _`pthread_setschedparam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setschedparam.3posix.html -.. _`pthread_setschedprio(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setschedprio.3.html -.. _`pthread_setschedprio(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setschedprio.3posix.html -.. _`pthread_setspecific(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_setspecific.3posix.html -.. _`pthread_sigmask(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_sigmask.3.html -.. _`pthread_sigmask(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_sigmask.3posix.html -.. _`pthread_spin_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_spin_destroy.3posix.html -.. _`pthread_spin_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_spin_init.3posix.html -.. _`pthread_spin_lock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_spin_lock.3posix.html -.. _`pthread_spin_trylock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_spin_trylock.3posix.html -.. _`pthread_spin_unlock(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_spin_unlock.3posix.html -.. _`pthread_testcancel(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_testcancel.3.html -.. _`pthread_testcancel(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_testcancel.3posix.html -.. _`pthread_timedjoin_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_timedjoin_np.3.html -.. _`pthread_tryjoin_np(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_tryjoin_np.3.html -.. _`pthread_yield(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pthread_yield.3.html -.. _`ptmx(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/ptmx.4.html -.. _`ptrace(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ptrace.2.html -.. _`pts(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/pts.4.html -.. _`ptsname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ptsname.3.html -.. _`ptsname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ptsname.3posix.html -.. _`ptsname_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ptsname_r.3.html -.. _`ptx(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ptx.1.html -.. _`pty(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pty.7.html -.. _`putc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putc.3.html -.. _`putc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putc.3posix.html -.. _`putchar(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putchar.3.html -.. _`putchar(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putchar.3posix.html -.. _`putchar_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putchar_unlocked.3.html -.. _`putchar_unlocked(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putchar_unlocked.3posix.html -.. _`putc_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putc_unlocked.3.html -.. _`putc_unlocked(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putc_unlocked.3posix.html -.. _`putenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putenv.3.html -.. _`putenv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putenv.3posix.html -.. _`putgrent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putgrent.3.html -.. _`putmsg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putmsg.3posix.html -.. _`putp(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putp.3ncurses.html -.. _`putpmsg(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/putpmsg.2.html -.. _`putpmsg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putpmsg.3posix.html -.. _`putpwent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putpwent.3.html -.. _`puts(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/puts.3.html -.. _`puts(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/puts.3posix.html -.. _`putspent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putspent.3.html -.. _`pututline(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pututline.3.html -.. _`pututxline(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pututxline.3.html -.. _`pututxline(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pututxline.3posix.html -.. _`putw(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putw.3.html -.. _`putwc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putwc.3.html -.. _`putwc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putwc.3posix.html -.. _`putwchar(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putwchar.3.html -.. _`putwchar(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putwchar.3posix.html -.. _`putwchar_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putwchar_unlocked.3.html -.. _`putwc_unlocked(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putwc_unlocked.3.html -.. _`putwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/putwin.3ncurses.html -.. _`pwck(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pwck.8.html -.. _`pwconv(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pwconv.8.html -.. _`pwd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pwd.1.html -.. _`pwd(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pwd.1posix.html -.. _`pwd.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/pwd.h.7posix.html -.. _`pwdx(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pwdx.1.html -.. _`pwrite(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pwrite.2.html -.. _`pwrite(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/pwrite.3posix.html -.. _`pwrite64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/pwrite64.2.html -.. _`pwunconv(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/pwunconv.8.html -.. _`pycentral(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pycentral.1.html -.. _`pyclean(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pyclean.1.html -.. _`pycompile(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pycompile.1.html -.. _`py_compilefiles(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/py_compilefiles.1.html -.. _`pydoc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pydoc.1.html -.. _`pydoc2.6(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pydoc2.6.1.html -.. _`pygettext(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pygettext.1.html -.. _`pygettext2.6(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pygettext2.6.1.html -.. _`python(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/python.1.html -.. _`python2.6(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/python2.6.1.html -.. _`pyversions(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/pyversions.1.html -.. _`qalter(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qalter.1posix.html -.. _`qdel(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qdel.1posix.html -.. _`qecvt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/qecvt.3.html -.. _`qecvt_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/qecvt_r.3.html -.. _`qfcvt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/qfcvt.3.html -.. _`qfcvt_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/qfcvt_r.3.html -.. _`qgcvt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/qgcvt.3.html -.. _`qhold(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qhold.1posix.html -.. _`qiflush(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/qiflush.3ncurses.html -.. _`qmove(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qmove.1posix.html -.. _`qmsg(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qmsg.1posix.html -.. _`qrerun(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qrerun.1posix.html -.. _`qrls(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qrls.1posix.html -.. _`qselect(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qselect.1posix.html -.. _`qsig(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qsig.1posix.html -.. _`qsort(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/qsort.3.html -.. _`qsort(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/qsort.3posix.html -.. _`qstat(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qstat.1posix.html -.. _`qsub(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/qsub.1posix.html -.. _`queue(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/queue.3.html -.. _`quotactl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/quotactl.2.html -.. _`raise(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/raise.3.html -.. _`raise(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/raise.3posix.html -.. _`ram(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/ram.4.html -.. _`ramsize(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ramsize.8.html -.. _`rand(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rand.1ssl.html -.. _`rand(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rand.3.html -.. _`rand(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rand.3posix.html -.. _`random(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/random.3.html -.. _`random(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/random.3posix.html -.. _`random(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/random.4.html -.. _`random_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/random_r.3.html -.. _`rand_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rand_r.3.html -.. _`rand_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rand_r.3posix.html -.. _`ranlib(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ranlib.1.html -.. _`rarp(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rarp.8.html -.. _`raw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/raw.3ncurses.html -.. _`raw(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/raw.7.html -.. _`raw(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/raw.8.html -.. _`rawmemchr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rawmemchr.3.html -.. _`rbash(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rbash.1.html -.. _`rcmd(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rcmd.3.html -.. _`rcp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rcp.1.html -.. _`rcs(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/rcs.5.html -.. _`rdev(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rdev.8.html -.. _`read(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/read.1posix.html -.. _`read(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/read.2.html -.. _`read(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/read.3posix.html -.. _`readahead(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/readahead.2.html -.. _`readdir(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/readdir.2.html -.. _`readdir(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/readdir.3.html -.. _`readdir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/readdir.3posix.html -.. _`readdir_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/readdir_r.3.html -.. _`readdir_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/readdir_r.3posix.html -.. _`readelf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/readelf.1.html -.. _`readline(3readline)` : http://sites.uclouvain.be/SystInfo/manpages/man3/readline.3readline.html -.. _`readlink(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/readlink.1.html -.. _`readlink(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/readlink.2.html -.. _`readlink(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/readlink.3posix.html -.. _`readlinkat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/readlinkat.2.html -.. _`readonly(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/readonly.1posix.html -.. _`readprofile(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/readprofile.1.html -.. _`readv(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/readv.2.html -.. _`readv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/readv.3posix.html -.. _`realloc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/realloc.3.html -.. _`realloc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/realloc.3posix.html -.. _`realpath(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/realpath.3.html -.. _`realpath(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/realpath.3posix.html -.. _`reboot(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/reboot.2.html -.. _`reboot(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/reboot.8.html -.. _`recno(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/recno.3.html -.. _`re_comp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/re_comp.3.html -.. _`recv(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/recv.2.html -.. _`recv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/recv.3posix.html -.. _`recvfrom(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/recvfrom.2.html -.. _`recvfrom(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/recvfrom.3posix.html -.. _`recvmsg(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/recvmsg.2.html -.. _`recvmsg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/recvmsg.3posix.html -.. _`redrawwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/redrawwin.3ncurses.html -.. _`re_exec(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/re_exec.3.html -.. _`re_format(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/re_format.7.html -.. _`refresh(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/refresh.3ncurses.html -.. _`regcomp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regcomp.3.html -.. _`regcomp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regcomp.3posix.html -.. _`regerror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regerror.3.html -.. _`regerror(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regerror.3posix.html -.. _`regex(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regex.3.html -.. _`regex(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/regex.7.html -.. _`regexec(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regexec.3.html -.. _`regexec(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regexec.3posix.html -.. _`regex.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/regex.h.7posix.html -.. _`regexp::assemble(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regexp::assemble.3pm.html -.. _`regfree(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regfree.3.html -.. _`regfree(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/regfree.3posix.html -.. _`registerrpc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/registerrpc.3.html -.. _`remainder(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remainder.3.html -.. _`remainder(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remainder.3posix.html -.. _`remainderf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remainderf.3.html -.. _`remainderf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remainderf.3posix.html -.. _`remainderl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remainderl.3.html -.. _`remainderl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remainderl.3posix.html -.. _`remap_file_pages(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/remap_file_pages.2.html -.. _`remove(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remove.3.html -.. _`remove(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remove.3posix.html -.. _`remove-shell(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/remove-shell.8.html -.. _`remque(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remque.3.html -.. _`remque(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remque.3posix.html -.. _`remquo(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remquo.3.html -.. _`remquo(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remquo.3posix.html -.. _`remquof(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remquof.3.html -.. _`remquof(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remquof.3posix.html -.. _`remquol(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remquol.3.html -.. _`remquol(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/remquol.3posix.html -.. _`rename(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rename.1.html -.. _`rename(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rename.2.html -.. _`rename(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rename.3posix.html -.. _`renameat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/renameat.2.html -.. _`rename.ul(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rename.ul.1.html -.. _`renice(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/renice.1.html -.. _`renice(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/renice.1posix.html -.. _`replace_panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/replace_panel.3curses.html -.. _`req(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/req.1ssl.html -.. _`request_key(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/request_key.2.html -.. _`requestname(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/requestname.3form.html -.. _`requestname(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/requestname.3menu.html -.. _`reset(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/reset.1.html -.. _`reset_prog_mode(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/reset_prog_mode.3ncurses.html -.. _`reset_shell_mode(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/reset_shell_mode.3ncurses.html -.. _`resetty(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/resetty.3ncurses.html -.. _`res_init(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/res_init.3.html -.. _`resize2fs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/resize2fs.8.html -.. _`resize_term(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/resize_term.3ncurses.html -.. _`resizeterm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/resizeterm.3ncurses.html -.. _`res_mkquery(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/res_mkquery.3.html -.. _`resolv.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/resolv.conf.5.html -.. _`resolver(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/resolver.3.html -.. _`resolver(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/resolver.5.html -.. _`resource.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/resource.h.7posix.html -.. _`res_query(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/res_query.3.html -.. _`res_querydomain(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/res_querydomain.3.html -.. _`res_search(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/res_search.3.html -.. _`res_send(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/res_send.3.html -.. _`restartterm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/restartterm.3ncurses.html -.. _`return(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/return.1posix.html -.. _`rev(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rev.1.html -.. _`rewind(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rewind.3.html -.. _`rewind(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rewind.3posix.html -.. _`rewinddir(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rewinddir.3.html -.. _`rewinddir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rewinddir.3posix.html -.. _`rexec(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rexec.3.html -.. _`rgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rgrep.1.html -.. _`rindex(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rindex.3.html -.. _`rindex(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rindex.3posix.html -.. _`rint(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rint.3.html -.. _`rint(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rint.3posix.html -.. _`rintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rintf.3.html -.. _`rintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rintf.3posix.html -.. _`rintl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rintl.3.html -.. _`rintl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rintl.3posix.html -.. _`ripemd160(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ripemd160.1ssl.html -.. _`ripoffline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ripoffline.3ncurses.html -.. _`rlogin(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rlogin.1.html -.. _`rm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rm.1.html -.. _`rm(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rm.1posix.html -.. _`rmail(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rmail.8.html -.. _`rmdel(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rmdel.1posix.html -.. _`rmdir(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rmdir.1.html -.. _`rmdir(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rmdir.1posix.html -.. _`rmdir(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rmdir.2.html -.. _`rmdir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rmdir.3posix.html -.. _`rmmod(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rmmod.8.html -.. _`rmt(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rmt.8.html -.. _`rmt-tar(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rmt-tar.8.html -.. _`rnano(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rnano.1.html -.. _`rootflags(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rootflags.8.html -.. _`rotatelogs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rotatelogs.8.html -.. _`round(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/round.3.html -.. _`round(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/round.3posix.html -.. _`roundf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/roundf.3.html -.. _`roundf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/roundf.3posix.html -.. _`roundl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/roundl.3.html -.. _`roundl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/roundl.3posix.html -.. _`route(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/route.8.html -.. _`routef(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/routef.8.html -.. _`routel(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/routel.8.html -.. _`rpc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rpc.3.html -.. _`rpc(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/rpc.5.html -.. _`rpcgen(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rpcgen.1.html -.. _`rpcinfo(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rpcinfo.8.html -.. _`rpmatch(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rpmatch.3.html -.. _`rresvport(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rresvport.3.html -.. _`rsa(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rsa.1ssl.html -.. _`rsautl(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rsautl.1ssl.html -.. _`rsh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rsh.1.html -.. _`rsmtp(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rsmtp.8.html -.. _`rsync(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rsync.1.html -.. _`rsyncd.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/rsyncd.conf.5.html -.. _`rsyslog.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/rsyslog.conf.5.html -.. _`rsyslogd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rsyslogd.8.html -.. _`rtacct(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rtacct.8.html -.. _`rtc(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/rtc.4.html -.. _`rtcwake(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rtcwake.8.html -.. _`rtime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rtime.3.html -.. _`rtld-audit(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/rtld-audit.7.html -.. _`rtmon(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rtmon.8.html -.. _`rtnetlink(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/rtnetlink.3.html -.. _`rtnetlink(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/rtnetlink.7.html -.. _`rt_sigaction(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rt_sigaction.2.html -.. _`rt_sigpending(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rt_sigpending.2.html -.. _`rt_sigprocmask(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rt_sigprocmask.2.html -.. _`rt_sigqueueinfo(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rt_sigqueueinfo.2.html -.. _`rt_sigreturn(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rt_sigreturn.2.html -.. _`rt_sigsuspend(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rt_sigsuspend.2.html -.. _`rt_sigtimedwait(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/rt_sigtimedwait.2.html -.. _`rtstat(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/rtstat.8.html -.. _`runcon(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/runcon.1.html -.. _`runlevel(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/runlevel.8.html -.. _`run-mailcap(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/run-mailcap.1.html -.. _`run-parts(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/run-parts.8.html -.. _`runq(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/runq.8.html -.. _`ruserok(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ruserok.3.html -.. _`rview(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rview.1.html -.. _`rvim(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rvim.1.html -.. _`rzsh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/rzsh.1.html -.. _`s2p(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/s2p.1.html -.. _`sact(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sact.1posix.html -.. _`safe_finger(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/safe_finger.8.html -.. _`savelog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/savelog.8.html -.. _`savetty(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/savetty.3ncurses.html -.. _`sbrk(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sbrk.2.html -.. _`scalb(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalb.3.html -.. _`scalb(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalb.3posix.html -.. _`scalbf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbf.3.html -.. _`scalbl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbl.3.html -.. _`scalbln(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbln.3.html -.. _`scalbln(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbln.3posix.html -.. _`scalblnf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalblnf.3.html -.. _`scalblnf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalblnf.3posix.html -.. _`scalblnl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalblnl.3.html -.. _`scalblnl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalblnl.3posix.html -.. _`scalbn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbn.3.html -.. _`scalbn(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbn.3posix.html -.. _`scalbnf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbnf.3.html -.. _`scalbnf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbnf.3posix.html -.. _`scalbnl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbnl.3.html -.. _`scalbnl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scalbnl.3posix.html -.. _`scale_form(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scale_form.3form.html -.. _`scale_menu(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scale_menu.3menu.html -.. _`scandir(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scandir.3.html -.. _`scanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scanf.3.html -.. _`scanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scanf.3posix.html -.. _`scanw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scanw.3ncurses.html -.. _`sccs(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sccs.1posix.html -.. _`sched_getaffinity(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_getaffinity.2.html -.. _`sched_getcpu(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_getcpu.3.html -.. _`sched_getparam(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_getparam.2.html -.. _`sched_getparam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_getparam.3posix.html -.. _`sched_get_priority_max(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_get_priority_max.2.html -.. _`sched_get_priority_max(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_get_priority_max.3posix.html -.. _`sched_get_priority_min(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_get_priority_min.2.html -.. _`sched_get_priority_min(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_get_priority_min.3posix.html -.. _`sched_getscheduler(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_getscheduler.2.html -.. _`sched_getscheduler(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_getscheduler.3posix.html -.. _`sched.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sched.h.7posix.html -.. _`sched_rr_get_interval(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_rr_get_interval.2.html -.. _`sched_rr_get_interval(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_rr_get_interval.3posix.html -.. _`sched_setaffinity(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_setaffinity.2.html -.. _`sched_setparam(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_setparam.2.html -.. _`sched_setparam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_setparam.3posix.html -.. _`sched_setscheduler(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_setscheduler.2.html -.. _`sched_setscheduler(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_setscheduler.3posix.html -.. _`sched_yield(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sched_yield.2.html -.. _`sched_yield(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sched_yield.3posix.html -.. _`s_client(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/s_client.1ssl.html -.. _`scp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/scp.1.html -.. _`scr_dump(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scr_dump.3ncurses.html -.. _`screen(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/screen.1.html -.. _`scr_init(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scr_init.3ncurses.html -.. _`script(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/script.1.html -.. _`scriptreplay(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/scriptreplay.1.html -.. _`scrl(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scrl.3ncurses.html -.. _`scroll(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scroll.3ncurses.html -.. _`scrollok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scrollok.3ncurses.html -.. _`scr_restore(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scr_restore.3ncurses.html -.. _`scr_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/scr_set.3ncurses.html -.. _`scsi_id(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/scsi_id.8.html -.. _`sd(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/sd.4.html -.. _`sdiff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sdiff.1.html -.. _`search.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/search.h.7posix.html -.. _`securetty(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/securetty.5.html -.. _`security(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/security.2.html -.. _`sed(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sed.1.html -.. _`sed(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sed.1posix.html -.. _`see(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/see.1.html -.. _`seed48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/seed48.3.html -.. _`seed48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/seed48.3posix.html -.. _`seed48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/seed48_r.3.html -.. _`seekdir(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/seekdir.3.html -.. _`seekdir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/seekdir.3posix.html -.. _`select(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/select.2.html -.. _`select(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/select.3posix.html -.. _`select.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/select.h.7posix.html -.. _`select_tut(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/select_tut.2.html -.. _`semaphore.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/semaphore.h.7posix.html -.. _`sem_close(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_close.3.html -.. _`sem_close(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_close.3posix.html -.. _`semctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/semctl.2.html -.. _`semctl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/semctl.3posix.html -.. _`sem_destroy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_destroy.3.html -.. _`sem_destroy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_destroy.3posix.html -.. _`semget(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/semget.2.html -.. _`semget(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/semget.3posix.html -.. _`sem_getvalue(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_getvalue.3.html -.. _`sem_getvalue(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_getvalue.3posix.html -.. _`sem.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sem.h.7posix.html -.. _`sem_init(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_init.3.html -.. _`sem_init(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_init.3posix.html -.. _`semop(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/semop.2.html -.. _`semop(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/semop.3posix.html -.. _`sem_open(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_open.3.html -.. _`sem_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_open.3posix.html -.. _`sem_overview(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sem_overview.7.html -.. _`sem_post(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_post.3.html -.. _`sem_post(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_post.3posix.html -.. _`semtimedop(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/semtimedop.2.html -.. _`sem_timedwait(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_timedwait.3.html -.. _`sem_timedwait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_timedwait.3posix.html -.. _`sem_trywait(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_trywait.3.html -.. _`sem_trywait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_trywait.3posix.html -.. _`sem_unlink(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_unlink.3.html -.. _`sem_unlink(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_unlink.3posix.html -.. _`sem_wait(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_wait.3.html -.. _`sem_wait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sem_wait.3posix.html -.. _`send(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/send.2.html -.. _`send(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/send.3posix.html -.. _`sendfile(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sendfile.2.html -.. _`sendfile64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sendfile64.2.html -.. _`sendmail(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sendmail.8.html -.. _`sendmsg(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sendmsg.2.html -.. _`sendmsg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sendmsg.3posix.html -.. _`sendto(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sendto.2.html -.. _`sendto(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sendto.3posix.html -.. _`sensible-browser(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sensible-browser.1.html -.. _`sensible-editor(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sensible-editor.1.html -.. _`sensible-pager(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sensible-pager.1.html -.. _`sepermit.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/sepermit.conf.5.html -.. _`seq(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/seq.1.html -.. _`service(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/service.8.html -.. _`services(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/services.5.html -.. _`sess_id(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sess_id.1ssl.html -.. _`set(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/set.1posix.html -.. _`setaliasent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setaliasent.3.html -.. _`setarch(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/setarch.8.html -.. _`setbuf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setbuf.3.html -.. _`setbuf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setbuf.3posix.html -.. _`setbuffer(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setbuffer.3.html -.. _`setcchar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setcchar.3ncurses.html -.. _`setcontext(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setcontext.2.html -.. _`setcontext(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setcontext.3posix.html -.. _`set_current_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_current_field.3form.html -.. _`set_current_item(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_current_item.3menu.html -.. _`set_curterm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_curterm.3ncurses.html -.. _`setdomainname(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setdomainname.2.html -.. _`setegid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setegid.2.html -.. _`setegid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setegid.3posix.html -.. _`setenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setenv.3.html -.. _`setenv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setenv.3posix.html -.. _`set_escdelay(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_escdelay.3ncurses.html -.. _`seteuid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/seteuid.2.html -.. _`seteuid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/seteuid.3posix.html -.. _`set_field_back(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_back.3form.html -.. _`set_field_buffer(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_buffer.3form.html -.. _`set_field_fore(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_fore.3form.html -.. _`set_field_init(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_init.3form.html -.. _`set_field_just(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_just.3form.html -.. _`set_field_opts(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_opts.3form.html -.. _`set_field_pad(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_pad.3form.html -.. _`set_field_status(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_status.3form.html -.. _`set_field_term(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_term.3form.html -.. _`set_field_type(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_type.3form.html -.. _`set_fieldtype_arg(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_fieldtype_arg.3form.html -.. _`set_fieldtype_choice(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_fieldtype_choice.3form.html -.. _`set_field_userptr(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_field_userptr.3form.html -.. _`set_form_fields(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_form_fields.3form.html -.. _`set_form_init(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_form_init.3form.html -.. _`set_form_opts(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_form_opts.3form.html -.. _`set_form_page(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_form_page.3form.html -.. _`set_form_sub(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_form_sub.3form.html -.. _`set_form_term(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_form_term.3form.html -.. _`set_form_userptr(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_form_userptr.3form.html -.. _`set_form_win(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_form_win.3form.html -.. _`__setfpucw(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/__setfpucw.3.html -.. _`setfsent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setfsent.3.html -.. _`setfsgid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setfsgid.2.html -.. _`setfsgid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setfsgid32.2.html -.. _`setfsuid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setfsuid.2.html -.. _`setfsuid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setfsuid32.2.html -.. _`setgid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setgid.2.html -.. _`setgid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setgid32.2.html -.. _`setgid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setgid.3posix.html -.. _`setgrent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setgrent.3.html -.. _`setgrent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setgrent.3posix.html -.. _`setgroups(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setgroups.2.html -.. _`setgroups32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setgroups32.2.html -.. _`sethostent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sethostent.3.html -.. _`sethostent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sethostent.3posix.html -.. _`sethostid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sethostid.2.html -.. _`sethostid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sethostid.3.html -.. _`sethostname(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sethostname.2.html -.. _`set_item_init(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_item_init.3menu.html -.. _`set_item_opts(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_item_opts.3menu.html -.. _`set_item_term(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_item_term.3menu.html -.. _`set_item_userptr(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_item_userptr.3menu.html -.. _`set_item_value(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_item_value.3menu.html -.. _`setitimer(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setitimer.2.html -.. _`setitimer(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setitimer.3posix.html -.. _`setjmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setjmp.3.html -.. _`_setjmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_setjmp.3posix.html -.. _`setjmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setjmp.3posix.html -.. _`setjmp.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/setjmp.h.7posix.html -.. _`setkey(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setkey.3.html -.. _`setkey(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setkey.3posix.html -.. _`setkey_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setkey_r.3.html -.. _`setlinebuf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setlinebuf.3.html -.. _`setlocale(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setlocale.3.html -.. _`setlocale(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setlocale.3posix.html -.. _`setlogmask(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setlogmask.3.html -.. _`setlogmask(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setlogmask.3posix.html -.. _`set_max_field(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_max_field.3form.html -.. _`set_menu_back(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_back.3menu.html -.. _`set_menu_fore(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_fore.3menu.html -.. _`set_menu_format(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_format.3menu.html -.. _`set_menu_grey(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_grey.3menu.html -.. _`set_menu_init(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_init.3menu.html -.. _`set_menu_items(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_items.3menu.html -.. _`set_menu_mark(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_mark.3menu.html -.. _`set_menu_opts(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_opts.3menu.html -.. _`set_menu_pad(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_pad.3menu.html -.. _`set_menu_pattern(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_pattern.3menu.html -.. _`set_menu_spacing(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_spacing.3menu.html -.. _`set_menu_sub(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_sub.3menu.html -.. _`set_menu_term(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_term.3menu.html -.. _`set_menu_userptr(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_userptr.3menu.html -.. _`set_menu_win(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_menu_win.3menu.html -.. _`setmntent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setmntent.3.html -.. _`setnetent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setnetent.3.html -.. _`setnetent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setnetent.3posix.html -.. _`setnetgrent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setnetgrent.3.html -.. _`set_new_page(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_new_page.3form.html -.. _`set_panel_userptr(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_panel_userptr.3curses.html -.. _`setpgid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setpgid.2.html -.. _`setpgid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setpgid.3posix.html -.. _`setpgrp(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setpgrp.2.html -.. _`setpgrp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setpgrp.3posix.html -.. _`setpriority(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setpriority.2.html -.. _`setpriority(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setpriority.3posix.html -.. _`setprotoent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setprotoent.3.html -.. _`setprotoent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setprotoent.3posix.html -.. _`setpwent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setpwent.3.html -.. _`setpwent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setpwent.3posix.html -.. _`setregid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setregid.2.html -.. _`setregid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setregid32.2.html -.. _`setregid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setregid.3posix.html -.. _`setresgid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setresgid.2.html -.. _`setresgid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setresgid32.2.html -.. _`setresuid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setresuid.2.html -.. _`setresuid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setresuid32.2.html -.. _`setreuid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setreuid.2.html -.. _`setreuid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setreuid32.2.html -.. _`setreuid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setreuid.3posix.html -.. _`setrlimit(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setrlimit.2.html -.. _`setrlimit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setrlimit.3posix.html -.. _`setrpcent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setrpcent.3.html -.. _`setscrreg(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setscrreg.3ncurses.html -.. _`setservent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setservent.3.html -.. _`setservent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setservent.3posix.html -.. _`setsid(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/setsid.1.html -.. _`setsid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setsid.2.html -.. _`setsid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setsid.3posix.html -.. _`setsockopt(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setsockopt.2.html -.. _`setsockopt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setsockopt.3posix.html -.. _`setspent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setspent.3.html -.. _`setstate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setstate.3.html -.. _`setstate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setstate.3posix.html -.. _`setstate_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setstate_r.3.html -.. _`setsyx(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setsyx.3ncurses.html -.. _`set_tabsize(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_tabsize.3ncurses.html -.. _`setterm(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/setterm.1.html -.. _`set_term(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_term.3ncurses.html -.. _`setterm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setterm.3ncurses.html -.. _`set_thread_area(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/set_thread_area.2.html -.. _`set_tid_address(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/set_tid_address.2.html -.. _`settimeofday(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/settimeofday.2.html -.. _`set_top_row(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/set_top_row.3menu.html -.. _`setttyent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setttyent.3.html -.. _`setuid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setuid.2.html -.. _`setuid32(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setuid32.2.html -.. _`setuid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setuid.3posix.html -.. _`setup(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/setup.2.html -.. _`setupterm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setupterm.3ncurses.html -.. _`setusershell(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setusershell.3.html -.. _`setutent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setutent.3.html -.. _`setutxent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setutxent.3.html -.. _`setutxent(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setutxent.3posix.html -.. _`setvbuf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setvbuf.3.html -.. _`setvbuf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/setvbuf.3posix.html -.. _`sfdisk(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sfdisk.8.html -.. _`sftp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sftp.1.html -.. _`sftp-server(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sftp-server.8.html -.. _`sg(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sg.1.html -.. _`sgetmask(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sgetmask.2.html -.. _`sgetspent(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sgetspent.3.html -.. _`sgetspent_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sgetspent_r.3.html -.. _`sh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sh.1.html -.. _`sh(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sh.1posix.html -.. _`sha1(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sha1.1ssl.html -.. _`sha(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sha.1ssl.html -.. _`sha1sum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sha1sum.1.html -.. _`sha224sum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sha224sum.1.html -.. _`sha256sum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sha256sum.1.html -.. _`sha384sum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sha384sum.1.html -.. _`sha512sum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sha512sum.1.html -.. _`shadow(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/shadow.5.html -.. _`shadowconfig(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/shadowconfig.8.html -.. _`shasum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/shasum.1.html -.. _`shcomp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/shcomp.1.html -.. _`sh.distrib(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sh.distrib.1.html -.. _`shells(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/shells.5.html -.. _`shift(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/shift.1posix.html -.. _`shmat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/shmat.2.html -.. _`shmat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shmat.3posix.html -.. _`shmctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/shmctl.2.html -.. _`shmctl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shmctl.3posix.html -.. _`shmdt(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/shmdt.2.html -.. _`shmdt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shmdt.3posix.html -.. _`shmget(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/shmget.2.html -.. _`shmget(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shmget.3posix.html -.. _`shm.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/shm.h.7posix.html -.. _`shmop(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/shmop.2.html -.. _`shm_open(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shm_open.3.html -.. _`shm_open(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shm_open.3posix.html -.. _`shm_overview(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/shm_overview.7.html -.. _`shm_unlink(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shm_unlink.3.html -.. _`shm_unlink(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shm_unlink.3posix.html -.. _`show_panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/show_panel.3curses.html -.. _`shred(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/shred.1.html -.. _`shuf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/shuf.1.html -.. _`shutdown(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/shutdown.2.html -.. _`shutdown(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/shutdown.3posix.html -.. _`shutdown(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/shutdown.8.html -.. _`sigaction(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigaction.2.html -.. _`sigaction(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigaction.3posix.html -.. _`sigaddset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigaddset.3.html -.. _`sigaddset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigaddset.3posix.html -.. _`sigaltstack(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigaltstack.2.html -.. _`sigaltstack(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigaltstack.3posix.html -.. _`sigandset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigandset.3.html -.. _`sigblock(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigblock.3.html -.. _`sigdelset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigdelset.3.html -.. _`sigdelset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigdelset.3posix.html -.. _`sigemptyset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigemptyset.3.html -.. _`sigemptyset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigemptyset.3posix.html -.. _`sigevent(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sigevent.7.html -.. _`sigfillset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigfillset.3.html -.. _`sigfillset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigfillset.3posix.html -.. _`siggetmask(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/siggetmask.3.html -.. _`sighold(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sighold.3.html -.. _`sighold(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sighold.3posix.html -.. _`sigignore(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigignore.3.html -.. _`sigignore(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigignore.3posix.html -.. _`siginterrupt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/siginterrupt.3.html -.. _`siginterrupt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/siginterrupt.3posix.html -.. _`sigisemptyset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigisemptyset.3.html -.. _`sigismember(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigismember.3.html -.. _`sigismember(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigismember.3posix.html -.. _`siglongjmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/siglongjmp.3.html -.. _`siglongjmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/siglongjmp.3posix.html -.. _`sigmask(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigmask.3.html -.. _`signal(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/signal.2.html -.. _`signal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/signal.3posix.html -.. _`signal(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/signal.7.html -.. _`signalfd(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/signalfd.2.html -.. _`signalfd4(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/signalfd4.2.html -.. _`signal.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/signal.h.7posix.html -.. _`signbit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/signbit.3.html -.. _`signbit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/signbit.3posix.html -.. _`signgam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/signgam.3.html -.. _`signgam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/signgam.3posix.html -.. _`significand(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/significand.3.html -.. _`significandf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/significandf.3.html -.. _`significandl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/significandl.3.html -.. _`sigorset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigorset.3.html -.. _`sigpause(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigpause.3.html -.. _`sigpause(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigpause.3posix.html -.. _`sigpending(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigpending.2.html -.. _`sigpending(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigpending.3posix.html -.. _`sigprocmask(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigprocmask.2.html -.. _`sigprocmask(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigprocmask.3posix.html -.. _`sigqueue(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigqueue.2.html -.. _`sigqueue(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigqueue.3posix.html -.. _`sigrelse(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigrelse.3.html -.. _`sigrelse(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigrelse.3posix.html -.. _`sigreturn(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigreturn.2.html -.. _`sigset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigset.3.html -.. _`sigset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigset.3posix.html -.. _`sigsetjmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigsetjmp.3.html -.. _`sigsetjmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigsetjmp.3posix.html -.. _`sigsetmask(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigsetmask.3.html -.. _`sigsetops(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigsetops.3.html -.. _`sigsuspend(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigsuspend.2.html -.. _`sigsuspend(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigsuspend.3posix.html -.. _`sigtimedwait(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigtimedwait.2.html -.. _`sigtimedwait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigtimedwait.3posix.html -.. _`sigvec(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigvec.3.html -.. _`sigwait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigwait.3posix.html -.. _`sigwaitinfo(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sigwaitinfo.2.html -.. _`sigwaitinfo(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sigwaitinfo.3posix.html -.. _`sin(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sin.3.html -.. _`sin(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sin.3posix.html -.. _`sincos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sincos.3.html -.. _`sincosf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sincosf.3.html -.. _`sincosl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sincosl.3.html -.. _`sinf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinf.3.html -.. _`sinf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinf.3posix.html -.. _`sinh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinh.3.html -.. _`sinh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinh.3posix.html -.. _`sinhf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinhf.3.html -.. _`sinhf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinhf.3posix.html -.. _`sinhl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinhl.3.html -.. _`sinhl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinhl.3posix.html -.. _`sinl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinl.3.html -.. _`sinl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sinl.3posix.html -.. _`size(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/size.1.html -.. _`sk98lin(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/sk98lin.4.html -.. _`skill(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/skill.1.html -.. _`slabinfo(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/slabinfo.5.html -.. _`slabtop(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/slabtop.1.html -.. _`slattach(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/slattach.8.html -.. _`sleep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sleep.1.html -.. _`sleep(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sleep.1posix.html -.. _`sleep(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sleep.3.html -.. _`sleep(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sleep.3posix.html -.. _`slk(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk.3ncurses.html -.. _`slk_attr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_attr.3ncurses.html -.. _`slk_attr_off(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_attr_off.3ncurses.html -.. _`slk_attroff(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_attroff.3ncurses.html -.. _`slk_attr_on(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_attr_on.3ncurses.html -.. _`slk_attron(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_attron.3ncurses.html -.. _`slk_attr_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_attr_set.3ncurses.html -.. _`slk_attrset(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_attrset.3ncurses.html -.. _`slk_clear(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_clear.3ncurses.html -.. _`slk_color(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_color.3ncurses.html -.. _`slk_init(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_init.3ncurses.html -.. _`slk_label(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_label.3ncurses.html -.. _`slk_noutrefresh(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_noutrefresh.3ncurses.html -.. _`slk_refresh(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_refresh.3ncurses.html -.. _`slk_restore(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_restore.3ncurses.html -.. _`slk_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_set.3ncurses.html -.. _`slk_touch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/slk_touch.3ncurses.html -.. _`slogin(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/slogin.1.html -.. _`smime(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/smime.1ssl.html -.. _`smime_keys(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/smime_keys.1.html -.. _`snice(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/snice.1.html -.. _`snprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/snprintf.3.html -.. _`snprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/snprintf.3posix.html -.. _`sockatmark(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sockatmark.3.html -.. _`sockatmark(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sockatmark.3posix.html -.. _`socket(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/socket.2.html -.. _`socket(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/socket.3posix.html -.. _`socket(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/socket.7.html -.. _`socketcall(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/socketcall.2.html -.. _`socket.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/socket.h.7posix.html -.. _`socketpair(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/socketpair.2.html -.. _`socketpair(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/socketpair.3posix.html -.. _`sock_raw(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sock_raw.7.html -.. _`soelim(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/soelim.1.html -.. _`sort(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sort.1.html -.. _`sort(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sort.1posix.html -.. _`sources.list(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/sources.list.5.html -.. _`spacing(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/spacing.3menu.html -.. _`spawn.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/spawn.h.7posix.html -.. _`speed(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/speed.1ssl.html -.. _`spkac(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/spkac.1ssl.html -.. _`splain(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/splain.1.html -.. _`splice(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/splice.2.html -.. _`split(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/split.1.html -.. _`split(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/split.1posix.html -.. _`split-logfile(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/split-logfile.8.html -.. _`sprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sprintf.3.html -.. _`sprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sprintf.3posix.html -.. _`sprof(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sprof.1.html -.. _`spu_create(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/spu_create.2.html -.. _`spufs(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/spufs.7.html -.. _`spu_run(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/spu_run.2.html -.. _`sqlite3(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sqlite3.1.html -.. _`sqrt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sqrt.3.html -.. _`sqrt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sqrt.3posix.html -.. _`sqrtf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sqrtf.3.html -.. _`sqrtf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sqrtf.3posix.html -.. _`sqrtl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sqrtl.3.html -.. _`sqrtl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sqrtl.3posix.html -.. _`srand(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/srand.3.html -.. _`srand(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/srand.3posix.html -.. _`srand48(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/srand48.3.html -.. _`srand48(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/srand48.3posix.html -.. _`srand48_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/srand48_r.3.html -.. _`srandom(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/srandom.3.html -.. _`srandom(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/srandom.3posix.html -.. _`srandom_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/srandom_r.3.html -.. _`ss(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ss.8.html -.. _`sscanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sscanf.3.html -.. _`sscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sscanf.3posix.html -.. _`s_server(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/s_server.1ssl.html -.. _`ssetmask(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ssetmask.2.html -.. _`ssh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ssh.1.html -.. _`ssh-add(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ssh-add.1.html -.. _`ssh-agent(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ssh-agent.1.html -.. _`ssh-argv0(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ssh-argv0.1.html -.. _`ssh_config(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/ssh_config.5.html -.. _`ssh-copy-id(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ssh-copy-id.1.html -.. _`sshd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sshd.8.html -.. _`sshd_config(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/sshd_config.5.html -.. _`ssh-keygen(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ssh-keygen.1.html -.. _`ssh-keyscan(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ssh-keyscan.1.html -.. _`ssh-keysign(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ssh-keysign.8.html -.. _`ssh-pkcs11-helper(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/ssh-pkcs11-helper.8.html -.. _`ssh-vulnkey(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ssh-vulnkey.1.html -.. _`ssignal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ssignal.3.html -.. _`st(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/st.4.html -.. _`standards(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/standards.7.html -.. _`standend(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/standend.3ncurses.html -.. _`standout(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/standout.3ncurses.html -.. _`start_color(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/start_color.3ncurses.html -.. _`startpar(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/startpar.8.html -.. _`start-stop-daemon(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/start-stop-daemon.8.html -.. _`stat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/stat.1.html -.. _`stat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/stat.2.html -.. _`stat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stat.3posix.html -.. _`stat64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/stat64.2.html -.. _`statfs(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/statfs.2.html -.. _`statfs64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/statfs64.2.html -.. _`stat.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/stat.h.7posix.html -.. _`statvfs(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/statvfs.2.html -.. _`statvfs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/statvfs.3.html -.. _`statvfs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/statvfs.3posix.html -.. _`statvfs.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/statvfs.h.7posix.html -.. _`stdarg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stdarg.3.html -.. _`stdarg.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/stdarg.h.7posix.html -.. _`stdbool.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/stdbool.h.7posix.html -.. _`stdbuf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/stdbuf.1.html -.. _`stddef.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/stddef.h.7posix.html -.. _`stderr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stderr.3.html -.. _`stderr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stderr.3posix.html -.. _`stdin(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stdin.3.html -.. _`stdin(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stdin.3posix.html -.. _`stdint.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/stdint.h.7posix.html -.. _`stdio(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stdio.3.html -.. _`stdio_ext(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stdio_ext.3.html -.. _`stdio.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/stdio.h.7posix.html -.. _`stdlib.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/stdlib.h.7posix.html -.. _`stdout(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stdout.3.html -.. _`stdout(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stdout.3posix.html -.. _`s_time(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/s_time.1ssl.html -.. _`stime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/stime.2.html -.. _`stpcpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stpcpy.3.html -.. _`stpncpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/stpncpy.3.html -.. _`strace(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/strace.1.html -.. _`strcasecmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcasecmp.3.html -.. _`strcasecmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcasecmp.3posix.html -.. _`strcasestr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcasestr.3.html -.. _`strcat(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcat.3.html -.. _`strcat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcat.3posix.html -.. _`strchr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strchr.3.html -.. _`strchr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strchr.3posix.html -.. _`strchrnul(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strchrnul.3.html -.. _`strcmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcmp.3.html -.. _`strcmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcmp.3posix.html -.. _`strcoll(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcoll.3.html -.. _`strcoll(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcoll.3posix.html -.. _`strcpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcpy.3.html -.. _`strcpy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcpy.3posix.html -.. _`strcspn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcspn.3.html -.. _`strcspn(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strcspn.3posix.html -.. _`strdup(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strdup.3.html -.. _`strdup(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strdup.3posix.html -.. _`strdupa(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strdupa.3.html -.. _`strerror(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strerror.3.html -.. _`strerror(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strerror.3posix.html -.. _`strerror_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strerror_r.3.html -.. _`strerror_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strerror_r.3posix.html -.. _`strfmon(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strfmon.3.html -.. _`strfmon(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strfmon.3posix.html -.. _`strfry(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strfry.3.html -.. _`strftime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strftime.3.html -.. _`strftime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strftime.3posix.html -.. _`string(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/string.3.html -.. _`string.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/string.h.7posix.html -.. _`strings(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/strings.1.html -.. _`strings(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/strings.1posix.html -.. _`strings.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/strings.h.7posix.html -.. _`strip(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/strip.1.html -.. _`strip(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/strip.1posix.html -.. _`strlen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strlen.3.html -.. _`strlen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strlen.3posix.html -.. _`strncasecmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strncasecmp.3.html -.. _`strncasecmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strncasecmp.3posix.html -.. _`strncat(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strncat.3.html -.. _`strncat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strncat.3posix.html -.. _`strncmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strncmp.3.html -.. _`strncmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strncmp.3posix.html -.. _`strncpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strncpy.3.html -.. _`strncpy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strncpy.3posix.html -.. _`strndup(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strndup.3.html -.. _`strndupa(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strndupa.3.html -.. _`strnlen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strnlen.3.html -.. _`stropts.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/stropts.h.7posix.html -.. _`strpbrk(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strpbrk.3.html -.. _`strpbrk(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strpbrk.3posix.html -.. _`strptime(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strptime.3.html -.. _`strptime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strptime.3posix.html -.. _`strrchr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strrchr.3.html -.. _`strrchr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strrchr.3posix.html -.. _`strsep(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strsep.3.html -.. _`strsignal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strsignal.3.html -.. _`strspn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strspn.3.html -.. _`strspn(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strspn.3posix.html -.. _`strstr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strstr.3.html -.. _`strstr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strstr.3posix.html -.. _`strtod(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtod.3.html -.. _`strtod(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtod.3posix.html -.. _`strtof(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtof.3.html -.. _`strtof(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtof.3posix.html -.. _`strtoimax(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoimax.3.html -.. _`strtoimax(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoimax.3posix.html -.. _`strtok(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtok.3.html -.. _`strtok(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtok.3posix.html -.. _`strtok_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtok_r.3.html -.. _`strtok_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtok_r.3posix.html -.. _`strtol(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtol.3.html -.. _`strtol(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtol.3posix.html -.. _`strtold(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtold.3.html -.. _`strtold(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtold.3posix.html -.. _`strtoll(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoll.3.html -.. _`strtoll(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoll.3posix.html -.. _`strtoq(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoq.3.html -.. _`strtoul(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoul.3.html -.. _`strtoul(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoul.3posix.html -.. _`strtoull(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoull.3.html -.. _`strtoull(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoull.3posix.html -.. _`strtoumax(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoumax.3.html -.. _`strtoumax(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtoumax.3posix.html -.. _`strtouq(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strtouq.3.html -.. _`strverscmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strverscmp.3.html -.. _`strxfrm(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strxfrm.3.html -.. _`strxfrm(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/strxfrm.3posix.html -.. _`stty(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/stty.1.html -.. _`stty(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/stty.1posix.html -.. _`stty(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/stty.2.html -.. _`su(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/su.1.html -.. _`subpad(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/subpad.3ncurses.html -.. _`subwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/subwin.3ncurses.html -.. _`sudo(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sudo.8.html -.. _`sudoedit(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sudoedit.8.html -.. _`sudoers(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/sudoers.5.html -.. _`sudoreplay(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sudoreplay.8.html -.. _`suffixes(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/suffixes.7.html -.. _`sulogin(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sulogin.8.html -.. _`sum(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sum.1.html -.. _`svc_destroy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_destroy.3.html -.. _`svcerr_auth(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcerr_auth.3.html -.. _`svcerr_decode(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcerr_decode.3.html -.. _`svcerr_noproc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcerr_noproc.3.html -.. _`svcerr_noprog(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcerr_noprog.3.html -.. _`svcerr_progvers(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcerr_progvers.3.html -.. _`svcerr_systemerr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcerr_systemerr.3.html -.. _`svcerr_weakauth(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcerr_weakauth.3.html -.. _`svcfd_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcfd_create.3.html -.. _`svc_freeargs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_freeargs.3.html -.. _`svc_getargs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_getargs.3.html -.. _`svc_getcaller(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_getcaller.3.html -.. _`svc_getreq(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_getreq.3.html -.. _`svc_getreqset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_getreqset.3.html -.. _`svcraw_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcraw_create.3.html -.. _`svc_register(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_register.3.html -.. _`svc_run(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_run.3.html -.. _`svc_sendreply(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_sendreply.3.html -.. _`svctcp_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svctcp_create.3.html -.. _`svcudp_bufcreate(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcudp_bufcreate.3.html -.. _`svcudp_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svcudp_create.3.html -.. _`svc_unregister(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/svc_unregister.3.html -.. _`svipc(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/svipc.7.html -.. _`svn(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/svn.1.html -.. _`svnadmin(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/svnadmin.1.html -.. _`svndumpfilter(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/svndumpfilter.1.html -.. _`svnlook(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/svnlook.1.html -.. _`svnserve(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/svnserve.8.html -.. _`svnserve.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/svnserve.conf.5.html -.. _`svnsync(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/svnsync.1.html -.. _`svnversion(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/svnversion.1.html -.. _`swab(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/swab.3.html -.. _`swab(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/swab.3posix.html -.. _`swapcontext(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/swapcontext.3.html -.. _`swapcontext(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/swapcontext.3posix.html -.. _`swapoff(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/swapoff.2.html -.. _`swapoff(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/swapoff.8.html -.. _`swapon(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/swapon.2.html -.. _`swapon(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/swapon.8.html -.. _`switch_root(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/switch_root.8.html -.. _`swprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/swprintf.3.html -.. _`swprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/swprintf.3posix.html -.. _`swscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/swscanf.3posix.html -.. _`symlink(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/symlink.2.html -.. _`symlink(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/symlink.3posix.html -.. _`symlink(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/symlink.7.html -.. _`symlinkat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/symlinkat.2.html -.. _`sync(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/sync.1.html -.. _`sync(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sync.2.html -.. _`sync(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sync.3posix.html -.. _`sync(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sync.8.html -.. _`sync_file_range(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sync_file_range.2.html -.. _`syncok(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/syncok.3ncurses.html -.. _`_syscall(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/_syscall.2.html -.. _`syscall(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/syscall.2.html -.. _`syscalls(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/syscalls.2.html -.. _`sysconf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sysconf.3.html -.. _`sysconf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sysconf.3posix.html -.. _`_sysctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/_sysctl.2.html -.. _`sysctl(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sysctl.2.html -.. _`sysctl(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/sysctl.8.html -.. _`sysctl.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/sysctl.conf.5.html -.. _`sys_errlist(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sys_errlist.3.html -.. _`sysfs(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sysfs.2.html -.. _`sysinfo(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/sysinfo.2.html -.. _`sys_ipc.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_ipc.h.7posix.html -.. _`syslog2eximlog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/syslog2eximlog.8.html -.. _`syslog(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/syslog.2.html -.. _`syslog(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/syslog.3.html -.. _`syslog(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/syslog.3posix.html -.. _`syslog.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/syslog.h.7posix.html -.. _`sys_mman.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_mman.h.7posix.html -.. _`sys_msg.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_msg.h.7posix.html -.. _`sys_nerr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sys_nerr.3.html -.. _`sys_resource.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_resource.h.7posix.html -.. _`sys_select.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_select.h.7posix.html -.. _`sys_sem.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_sem.h.7posix.html -.. _`sys_shm.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_shm.h.7posix.html -.. _`sys_socket.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_socket.h.7posix.html -.. _`sys_stat.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_stat.h.7posix.html -.. _`sys_statvfs.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_statvfs.h.7posix.html -.. _`system(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/system.3.html -.. _`system(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/system.3posix.html -.. _`sys_timeb.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_timeb.h.7posix.html -.. _`sys_time.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_time.h.7posix.html -.. _`sys_times.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_times.h.7posix.html -.. _`sys_types.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_types.h.7posix.html -.. _`sys_uio.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_uio.h.7posix.html -.. _`sys_un.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_un.h.7posix.html -.. _`sys_utsname.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_utsname.h.7posix.html -.. _`sysv_signal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/sysv_signal.3.html -.. _`sys_wait.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/sys_wait.h.7posix.html -.. _`tabs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tabs.1.html -.. _`tabs(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tabs.1posix.html -.. _`tac(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tac.1.html -.. _`tail(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tail.1.html -.. _`tail(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tail.1posix.html -.. _`tailf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tailf.1.html -.. _`talk(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/talk.1posix.html -.. _`tan(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tan.3.html -.. _`tan(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tan.3posix.html -.. _`tanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanf.3.html -.. _`tanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanf.3posix.html -.. _`tanh(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanh.3.html -.. _`tanh(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanh.3posix.html -.. _`tanhf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanhf.3.html -.. _`tanhf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanhf.3posix.html -.. _`tanhl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanhl.3.html -.. _`tanhl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanhl.3posix.html -.. _`tanl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanl.3.html -.. _`tanl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tanl.3posix.html -.. _`tar(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tar.1.html -.. _`tar.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/tar.h.7posix.html -.. _`tasksel(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tasksel.8.html -.. _`taskset(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/taskset.1.html -.. _`tbl(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tbl.1.html -.. _`tc(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc.8.html -.. _`tc-bfifo(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-bfifo.8.html -.. _`tc-cbq(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-cbq.8.html -.. _`tc-cbq-details(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-cbq-details.8.html -.. _`tcdrain(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcdrain.3.html -.. _`tcdrain(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcdrain.3posix.html -.. _`tc-drr(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-drr.8.html -.. _`tcflow(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcflow.3.html -.. _`tcflow(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcflow.3posix.html -.. _`tcflush(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcflush.3.html -.. _`tcflush(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcflush.3posix.html -.. _`tcgetattr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcgetattr.3.html -.. _`tcgetattr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcgetattr.3posix.html -.. _`tcgetpgrp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcgetpgrp.3.html -.. _`tcgetpgrp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcgetpgrp.3posix.html -.. _`tcgetsid(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcgetsid.3.html -.. _`tcgetsid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcgetsid.3posix.html -.. _`tc-htb(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-htb.8.html -.. _`tcp(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/tcp.7.html -.. _`tcpd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tcpd.8.html -.. _`tcpdchk(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tcpdchk.8.html -.. _`tcpdmatch(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tcpdmatch.8.html -.. _`tc-pfifo(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-pfifo.8.html -.. _`tc-pfifo_fast(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-pfifo_fast.8.html -.. _`tcp.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/tcp.h.7posix.html -.. _`tc-prio(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-prio.8.html -.. _`tcptraceroute(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tcptraceroute.8.html -.. _`tcptraceroute.db(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tcptraceroute.db.8.html -.. _`tc-red(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-red.8.html -.. _`tcsendbreak(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcsendbreak.3.html -.. _`tcsendbreak(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcsendbreak.3posix.html -.. _`tcsetattr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcsetattr.3.html -.. _`tcsetattr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcsetattr.3posix.html -.. _`tcsetpgrp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcsetpgrp.3.html -.. _`tcsetpgrp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tcsetpgrp.3posix.html -.. _`tc-sfq(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-sfq.8.html -.. _`tcsh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tcsh.1.html -.. _`tc-tbf(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tc-tbf.8.html -.. _`tdelete(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tdelete.3.html -.. _`tdelete(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tdelete.3posix.html -.. _`tdestroy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tdestroy.3.html -.. _`tee(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tee.1.html -.. _`tee(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tee.1posix.html -.. _`tee(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/tee.2.html -.. _`telinit(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/telinit.8.html -.. _`telldir(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/telldir.3.html -.. _`telldir(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/telldir.3posix.html -.. _`telnet(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/telnet.1.html -.. _`telnet.netkit(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/telnet.netkit.1.html -.. _`tempfile(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tempfile.1.html -.. _`tempnam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tempnam.3.html -.. _`tempnam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tempnam.3posix.html -.. _`term(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/term.5.html -.. _`term(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/term.7.html -.. _`term_attrs(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/term_attrs.3ncurses.html -.. _`termattrs(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/termattrs.3ncurses.html -.. _`termcap(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/termcap.3ncurses.html -.. _`termcap(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/termcap.5.html -.. _`terminfo(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/terminfo.3ncurses.html -.. _`terminfo(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/terminfo.5.html -.. _`termio(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/termio.7.html -.. _`termios(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/termios.3.html -.. _`termios.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/termios.h.7posix.html -.. _`termname(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/termname.3ncurses.html -.. _`test(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/test.1.html -.. _`test(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/test.1posix.html -.. _`text::charwidth(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/text::charwidth.3pm.html -.. _`text::iconv(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/text::iconv.3pm.html -.. _`text::wrapi18n(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/text::wrapi18n.3pm.html -.. _`tfind(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tfind.3.html -.. _`tfind(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tfind.3posix.html -.. _`tgamma(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgamma.3.html -.. _`tgamma(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgamma.3posix.html -.. _`tgammaf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgammaf.3.html -.. _`tgammaf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgammaf.3posix.html -.. _`tgammal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgammal.3.html -.. _`tgammal(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgammal.3posix.html -.. _`tgetent(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgetent.3ncurses.html -.. _`tgetflag(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgetflag.3ncurses.html -.. _`tgetnum(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgetnum.3ncurses.html -.. _`tgetstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgetstr.3ncurses.html -.. _`tgkill(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/tgkill.2.html -.. _`tgmath.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/tgmath.h.7posix.html -.. _`tgoto(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tgoto.3ncurses.html -.. _`threads(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/threads.3ncurses.html -.. _`tic(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tic.1.html -.. _`tigetflag(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tigetflag.3ncurses.html -.. _`tigetnum(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tigetnum.3ncurses.html -.. _`tigetstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tigetstr.3ncurses.html -.. _`time(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/time.1posix.html -.. _`time(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/time.2.html -.. _`time(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/time.3posix.html -.. _`time(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/time.7.html -.. _`timeb.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/timeb.h.7posix.html -.. _`time.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/time.conf.5.html -.. _`timegm(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timegm.3.html -.. _`time.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/time.h.7posix.html -.. _`timelocal(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timelocal.3.html -.. _`timeout(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/timeout.1.html -.. _`timeout(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timeout.3ncurses.html -.. _`timeradd(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timeradd.3.html -.. _`timerclear(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timerclear.3.html -.. _`timercmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timercmp.3.html -.. _`timer_create(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/timer_create.2.html -.. _`timer_create(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timer_create.3posix.html -.. _`timer_delete(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/timer_delete.2.html -.. _`timer_delete(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timer_delete.3posix.html -.. _`timerfd_create(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/timerfd_create.2.html -.. _`timerfd_gettime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/timerfd_gettime.2.html -.. _`timerfd_settime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/timerfd_settime.2.html -.. _`timer_getoverrun(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/timer_getoverrun.2.html -.. _`timer_getoverrun(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timer_getoverrun.3posix.html -.. _`timer_gettime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/timer_gettime.2.html -.. _`timer_gettime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timer_gettime.3posix.html -.. _`timerisset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timerisset.3.html -.. _`timer_settime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/timer_settime.2.html -.. _`timer_settime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timer_settime.3posix.html -.. _`timersub(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timersub.3.html -.. _`times(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/times.1posix.html -.. _`times(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/times.2.html -.. _`times(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/times.3posix.html -.. _`times.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/times.h.7posix.html -.. _`timezone(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timezone.3.html -.. _`time::zone(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/time::zone.3pm.html -.. _`timezone(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/timezone.3posix.html -.. _`tiparm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tiparm.3ncurses.html -.. _`tis-620(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/tis-620.7.html -.. _`tkill(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/tkill.2.html -.. _`tload(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tload.1.html -.. _`tmpfile(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tmpfile.3.html -.. _`tmpfile(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tmpfile.3posix.html -.. _`tmpnam(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tmpnam.3.html -.. _`tmpnam(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tmpnam.3posix.html -.. _`tmpnam_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tmpnam_r.3.html -.. _`toascii(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/toascii.3.html -.. _`toascii(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/toascii.3posix.html -.. _`toe(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/toe.1.html -.. _`tolower(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tolower.3.html -.. _`_tolower(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tolower.3posix.html -.. _`tolower(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tolower.3posix.html -.. _`top(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/top.1.html -.. _`top_panel(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/top_panel.3curses.html -.. _`top_row(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/top_row.3menu.html -.. _`touch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/touch.1.html -.. _`touch(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/touch.1posix.html -.. _`touch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/touch.3ncurses.html -.. _`touchline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/touchline.3ncurses.html -.. _`touchwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/touchwin.3ncurses.html -.. _`toupper(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/toupper.3.html -.. _`_toupper(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_toupper.3posix.html -.. _`toupper(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/toupper.3posix.html -.. _`towctrans(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/towctrans.3.html -.. _`towctrans(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/towctrans.3posix.html -.. _`towlower(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/towlower.3.html -.. _`towlower(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/towlower.3posix.html -.. _`towupper(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/towupper.3.html -.. _`towupper(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/towupper.3posix.html -.. _`tparm(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tparm.3ncurses.html -.. _`tput(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tput.1.html -.. _`tput(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tput.1posix.html -.. _`tputs(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tputs.3ncurses.html -.. _`tr(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tr.1.html -.. _`tr(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tr.1posix.html -.. _`trace(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/trace.3ncurses.html -.. _`_traceattr2(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_traceattr2.3ncurses.html -.. _`_traceattr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_traceattr.3ncurses.html -.. _`_tracecchar_t2(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tracecchar_t2.3ncurses.html -.. _`_tracecchar_t(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tracecchar_t.3ncurses.html -.. _`_tracechar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tracechar.3ncurses.html -.. _`_tracechtype2(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tracechtype2.3ncurses.html -.. _`_tracechtype(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tracechtype.3ncurses.html -.. _`_tracedump(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tracedump.3ncurses.html -.. _`_tracef(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tracef.3ncurses.html -.. _`trace.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/trace.h.7posix.html -.. _`_tracemouse(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/_tracemouse.3ncurses.html -.. _`traceproto(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/traceproto.1.html -.. _`traceproto.db(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/traceproto.db.1.html -.. _`traceroute(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/traceroute.1.html -.. _`traceroute6(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/traceroute6.1.html -.. _`traceroute6.db(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/traceroute6.db.1.html -.. _`traceroute.db(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/traceroute.db.1.html -.. _`traceroute-nanog(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/traceroute-nanog.1.html -.. _`trap(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/trap.1posix.html -.. _`troff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/troff.1.html -.. _`true(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/true.1.html -.. _`true(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/true.1posix.html -.. _`trunc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/trunc.3.html -.. _`trunc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/trunc.3posix.html -.. _`truncate(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/truncate.1.html -.. _`truncate(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/truncate.2.html -.. _`truncate(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/truncate.3posix.html -.. _`truncate64(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/truncate64.2.html -.. _`truncf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/truncf.3.html -.. _`truncf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/truncf.3posix.html -.. _`truncl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/truncl.3.html -.. _`truncl(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/truncl.3posix.html -.. _`try-from(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/try-from.8.html -.. _`tsearch(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tsearch.3.html -.. _`tsearch(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tsearch.3posix.html -.. _`tset(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tset.1.html -.. _`tsort(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tsort.1.html -.. _`tsort(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tsort.1posix.html -.. _`tty(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tty.1.html -.. _`tty(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tty.1posix.html -.. _`tty(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/tty.4.html -.. _`tty_ioctl(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/tty_ioctl.4.html -.. _`ttyname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ttyname.3.html -.. _`ttyname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ttyname.3posix.html -.. _`ttyname_r(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ttyname_r.3.html -.. _`ttyname_r(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ttyname_r.3posix.html -.. _`ttys(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/ttys.4.html -.. _`ttyslot(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ttyslot.3.html -.. _`tune2fs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tune2fs.8.html -.. _`tunelp(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tunelp.8.html -.. _`tuxcall(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/tuxcall.2.html -.. _`twalk(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/twalk.3.html -.. _`twalk(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/twalk.3posix.html -.. _`type(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/type.1posix.html -.. _`typeahead(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/typeahead.3ncurses.html -.. _`types.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/types.h.7posix.html -.. _`tzfile(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/tzfile.5.html -.. _`tzname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tzname.3.html -.. _`tzname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tzname.3posix.html -.. _`tzselect(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/tzselect.1.html -.. _`tzselect(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/tzselect.8.html -.. _`tzset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tzset.3.html -.. _`tzset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/tzset.3posix.html -.. _`ualarm(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ualarm.3.html -.. _`ualarm(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ualarm.3posix.html -.. _`ucf(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ucf.1.html -.. _`ucf.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/ucf.conf.5.html -.. _`ucfq(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ucfq.1.html -.. _`ucfr(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ucfr.1.html -.. _`ucontext.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ucontext.h.7posix.html -.. _`udev(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/udev.7.html -.. _`udevadm(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/udevadm.8.html -.. _`udevd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/udevd.8.html -.. _`udp(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/udp.7.html -.. _`udplite(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/udplite.7.html -.. _`ugetrlimit(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ugetrlimit.2.html -.. _`uio.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/uio.h.7posix.html -.. _`ul(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ul.1.html -.. _`ulckpwdf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ulckpwdf.3.html -.. _`ulimit(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ulimit.1posix.html -.. _`ulimit(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ulimit.3.html -.. _`ulimit(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ulimit.3posix.html -.. _`ulimit.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/ulimit.h.7posix.html -.. _`umask(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/umask.1posix.html -.. _`umask(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/umask.2.html -.. _`umask(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/umask.3posix.html -.. _`umount2(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/umount2.2.html -.. _`umount(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/umount.2.html -.. _`umount(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/umount.8.html -.. _`unalias(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unalias.1posix.html -.. _`uname(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uname.1.html -.. _`uname(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uname.1posix.html -.. _`uname(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/uname.2.html -.. _`uname(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/uname.3posix.html -.. _`uncompress(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uncompress.1.html -.. _`uncompress(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uncompress.1posix.html -.. _`unctrl(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unctrl.3ncurses.html -.. _`undocumented(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/undocumented.3.html -.. _`undocumented(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/undocumented.7.html -.. _`unexpand(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unexpand.1.html -.. _`unexpand(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unexpand.1posix.html -.. _`unget(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unget.1posix.html -.. _`ungetc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ungetc.3.html -.. _`ungetc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ungetc.3posix.html -.. _`ungetch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ungetch.3ncurses.html -.. _`ungetmouse(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ungetmouse.3ncurses.html -.. _`ungetwc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ungetwc.3.html -.. _`ungetwc(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ungetwc.3posix.html -.. _`unget_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unget_wch.3ncurses.html -.. _`un.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/un.h.7posix.html -.. _`unicode(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/unicode.7.html -.. _`unimplemented(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/unimplemented.2.html -.. _`uniq(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uniq.1.html -.. _`uniq(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uniq.1posix.html -.. _`unistd.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/unistd.h.7posix.html -.. _`units(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/units.7.html -.. _`unix(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/unix.7.html -.. _`unix_chkpwd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/unix_chkpwd.8.html -.. _`unix_update(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/unix_update.8.html -.. _`unlink(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unlink.1.html -.. _`unlink(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unlink.1posix.html -.. _`unlink(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/unlink.2.html -.. _`unlink(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unlink.3posix.html -.. _`unlinkat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/unlinkat.2.html -.. _`unlocked_stdio(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unlocked_stdio.3.html -.. _`unlockpt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unlockpt.3.html -.. _`unlockpt(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unlockpt.3posix.html -.. _`unlzma(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unlzma.1.html -.. _`unpost_form(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unpost_form.3form.html -.. _`unpost_menu(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unpost_menu.3menu.html -.. _`unset(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unset.1posix.html -.. _`unsetenv(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unsetenv.3.html -.. _`unsetenv(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/unsetenv.3posix.html -.. _`unshare(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unshare.1.html -.. _`unshare(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/unshare.2.html -.. _`untouchwin(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/untouchwin.3ncurses.html -.. _`unxz(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/unxz.1.html -.. _`update-alternatives(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-alternatives.8.html -.. _`update-ca-certificates(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-ca-certificates.8.html -.. _`update-catalog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-catalog.8.html -.. _`updatedb(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/updatedb.1.html -.. _`updatedb.findutils(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/updatedb.findutils.1.html -.. _`update-exim4.conf(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-exim4.conf.8.html -.. _`update-exim4.conf.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/update-exim4.conf.conf.5.html -.. _`update-exim4.conf.template(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-exim4.conf.template.8.html -.. _`update-exim4defaults(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-exim4defaults.8.html -.. _`update-info-dir(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-info-dir.8.html -.. _`update-initramfs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-initramfs.8.html -.. _`update-initramfs.conf(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/update-initramfs.conf.5.html -.. _`update-locale(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-locale.8.html -.. _`update-mime(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-mime.8.html -.. _`update_panels(3curses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/update_panels.3curses.html -.. _`update-passwd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-passwd.8.html -.. _`update-python-modules(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-python-modules.8.html -.. _`update-rc.d(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-rc.d.8.html -.. _`update-rc.d-insserv(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-rc.d-insserv.8.html -.. _`update-xmlcatalog(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/update-xmlcatalog.8.html -.. _`updwtmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/updwtmp.3.html -.. _`updwtmpx(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/updwtmpx.3.html -.. _`uptime(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uptime.1.html -.. _`urandom(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/urandom.4.html -.. _`uri(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/uri.7.html -.. _`url(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/url.7.html -.. _`urn(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/urn.7.html -.. _`use_default_colors(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/use_default_colors.3ncurses.html -.. _`use_env(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/use_env.3ncurses.html -.. _`use_extended_names(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/use_extended_names.3ncurses.html -.. _`use_legacy_coding(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/use_legacy_coding.3ncurses.html -.. _`uselib(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/uselib.2.html -.. _`useradd(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/useradd.8.html -.. _`userdel(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/userdel.8.html -.. _`usermod(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/usermod.8.html -.. _`userptr(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/userptr.3form.html -.. _`userptr(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/userptr.3menu.html -.. _`users(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/users.1.html -.. _`use_screen(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/use_screen.3ncurses.html -.. _`use_window(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/use_window.3ncurses.html -.. _`usleep(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/usleep.3.html -.. _`usleep(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/usleep.3posix.html -.. _`ustat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/ustat.2.html -.. _`utf-8(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/utf-8.7.html -.. _`utf8(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/utf8.7.html -.. _`util(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/util.3ncurses.html -.. _`utime(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/utime.2.html -.. _`utime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/utime.3posix.html -.. _`utime.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/utime.h.7posix.html -.. _`utimensat(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/utimensat.2.html -.. _`utimes(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/utimes.2.html -.. _`utimes(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/utimes.3posix.html -.. _`utmp(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/utmp.5.html -.. _`utmpname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/utmpname.3.html -.. _`utmpx(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/utmpx.5.html -.. _`utmpx.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/utmpx.h.7posix.html -.. _`utmpxname(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/utmpxname.3.html -.. _`utsname.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/utsname.h.7posix.html -.. _`uucp(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uucp.1posix.html -.. _`uudecode(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uudecode.1posix.html -.. _`uuencode(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uuencode.1posix.html -.. _`uuid(3pm)` : http://sites.uclouvain.be/SystInfo/manpages/man3/uuid.3pm.html -.. _`uustat(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uustat.1posix.html -.. _`uux(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/uux.1posix.html -.. _`va_arg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/va_arg.3.html -.. _`va_arg(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/va_arg.3posix.html -.. _`va_copy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/va_copy.3.html -.. _`va_copy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/va_copy.3posix.html -.. _`va_end(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/va_end.3.html -.. _`va_end(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/va_end.3posix.html -.. _`val(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/val.1posix.html -.. _`valgrind(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/valgrind.1.html -.. _`valgrind.bin(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/valgrind.bin.1.html -.. _`validlocale(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/validlocale.8.html -.. _`valloc(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/valloc.3.html -.. _`vasprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vasprintf.3.html -.. _`va_start(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/va_start.3.html -.. _`va_start(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/va_start.3posix.html -.. _`vcs(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/vcs.4.html -.. _`vcsa(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/vcsa.4.html -.. _`vdir(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/vdir.1.html -.. _`vdprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vdprintf.3.html -.. _`verify(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/verify.1ssl.html -.. _`verr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/verr.3.html -.. _`verrx(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/verrx.3.html -.. _`version(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/version.1ssl.html -.. _`versionsort(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/versionsort.3.html -.. _`vfork(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/vfork.2.html -.. _`vfork(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vfork.3posix.html -.. _`vfprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vfprintf.3.html -.. _`vfprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vfprintf.3posix.html -.. _`vfscanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vfscanf.3.html -.. _`vfscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vfscanf.3posix.html -.. _`vfwprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vfwprintf.3.html -.. _`vfwprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vfwprintf.3posix.html -.. _`vfwscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vfwscanf.3posix.html -.. _`vhangup(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/vhangup.2.html -.. _`vi(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/vi.1.html -.. _`vi(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/vi.1posix.html -.. _`vid_attr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vid_attr.3ncurses.html -.. _`vidattr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vidattr.3ncurses.html -.. _`vidmode(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/vidmode.8.html -.. _`vid_puts(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vid_puts.3ncurses.html -.. _`vidputs(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vidputs.3ncurses.html -.. _`view(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/view.1.html -.. _`vigr(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/vigr.8.html -.. _`vim(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/vim.1.html -.. _`vimdiff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/vimdiff.1.html -.. _`vimtutor(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/vimtutor.1.html -.. _`vipw(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/vipw.8.html -.. _`visudo(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/visudo.8.html -.. _`vline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vline.3ncurses.html -.. _`vline_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vline_set.3ncurses.html -.. _`vm86(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/vm86.2.html -.. _`vm86old(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/vm86old.2.html -.. _`vmsplice(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/vmsplice.2.html -.. _`vmstat(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/vmstat.8.html -.. _`vpddecode(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/vpddecode.8.html -.. _`vprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vprintf.3.html -.. _`vprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vprintf.3posix.html -.. _`vscanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vscanf.3.html -.. _`vscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vscanf.3posix.html -.. _`vserver(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/vserver.2.html -.. _`vsnprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vsnprintf.3.html -.. _`vsnprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vsnprintf.3posix.html -.. _`vsprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vsprintf.3.html -.. _`vsprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vsprintf.3posix.html -.. _`vsscanf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vsscanf.3.html -.. _`vsscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vsscanf.3posix.html -.. _`vswprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vswprintf.3.html -.. _`vswprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vswprintf.3posix.html -.. _`vswscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vswscanf.3posix.html -.. _`vsyslog(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vsyslog.3.html -.. _`vwarn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vwarn.3.html -.. _`vwarnx(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vwarnx.3.html -.. _`vwprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vwprintf.3.html -.. _`vwprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vwprintf.3posix.html -.. _`vw_printw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vw_printw.3ncurses.html -.. _`vwprintw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vwprintw.3ncurses.html -.. _`vwscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vwscanf.3posix.html -.. _`vw_scanw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vw_scanw.3ncurses.html -.. _`vwscanw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/vwscanw.3ncurses.html -.. _`w(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/w.1.html -.. _`waddch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waddch.3ncurses.html -.. _`waddchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waddchnstr.3ncurses.html -.. _`waddchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waddchstr.3ncurses.html -.. _`waddnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waddnstr.3ncurses.html -.. _`waddnwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waddnwstr.3ncurses.html -.. _`waddstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waddstr.3ncurses.html -.. _`wadd_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wadd_wch.3ncurses.html -.. _`wadd_wchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wadd_wchnstr.3ncurses.html -.. _`wadd_wchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wadd_wchstr.3ncurses.html -.. _`waddwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waddwstr.3ncurses.html -.. _`wait(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/wait.1posix.html -.. _`wait(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/wait.2.html -.. _`wait3(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/wait3.2.html -.. _`wait(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wait.3posix.html -.. _`wait4(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/wait4.2.html -.. _`wait.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/wait.h.7posix.html -.. _`waitid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/waitid.2.html -.. _`waitid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waitid.3posix.html -.. _`waitpid(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/waitpid.2.html -.. _`waitpid(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/waitpid.3posix.html -.. _`wall(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/wall.1.html -.. _`warn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/warn.3.html -.. _`warnx(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/warnx.3.html -.. _`watch(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/watch.1.html -.. _`wattr_get(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wattr_get.3ncurses.html -.. _`wattr_off(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wattr_off.3ncurses.html -.. _`wattroff(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wattroff.3ncurses.html -.. _`wattr_on(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wattr_on.3ncurses.html -.. _`wattron(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wattron.3ncurses.html -.. _`wattr_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wattr_set.3ncurses.html -.. _`wattrset(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wattrset.3ncurses.html -.. _`wavelan(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/wavelan.4.html -.. _`wbkgd(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wbkgd.3ncurses.html -.. _`wbkgdset(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wbkgdset.3ncurses.html -.. _`wbkgrnd(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wbkgrnd.3ncurses.html -.. _`wbkgrndset(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wbkgrndset.3ncurses.html -.. _`wborder(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wborder.3ncurses.html -.. _`wborder_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wborder_set.3ncurses.html -.. _`wc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/wc.1.html -.. _`wc(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/wc.1posix.html -.. _`wchar.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/wchar.h.7posix.html -.. _`wchgat(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wchgat.3ncurses.html -.. _`wclear(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wclear.3ncurses.html -.. _`wclrtobot(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wclrtobot.3ncurses.html -.. _`wclrtoeol(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wclrtoeol.3ncurses.html -.. _`wcolor_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcolor_set.3ncurses.html -.. _`wcpcpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcpcpy.3.html -.. _`wcpncpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcpncpy.3.html -.. _`wcrtomb(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcrtomb.3.html -.. _`wcrtomb(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcrtomb.3posix.html -.. _`wcscasecmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscasecmp.3.html -.. _`wcscat(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscat.3.html -.. _`wcscat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscat.3posix.html -.. _`wcschr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcschr.3.html -.. _`wcschr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcschr.3posix.html -.. _`wcscmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscmp.3.html -.. _`wcscmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscmp.3posix.html -.. _`wcscoll(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscoll.3posix.html -.. _`wcscpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscpy.3.html -.. _`wcscpy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscpy.3posix.html -.. _`wcscspn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscspn.3.html -.. _`wcscspn(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcscspn.3posix.html -.. _`wcsdup(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsdup.3.html -.. _`wcsftime(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsftime.3posix.html -.. _`wcslen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcslen.3.html -.. _`wcslen(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcslen.3posix.html -.. _`wcsncasecmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsncasecmp.3.html -.. _`wcsncat(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsncat.3.html -.. _`wcsncat(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsncat.3posix.html -.. _`wcsncmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsncmp.3.html -.. _`wcsncmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsncmp.3posix.html -.. _`wcsncpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsncpy.3.html -.. _`wcsncpy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsncpy.3posix.html -.. _`wcsnlen(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsnlen.3.html -.. _`wcsnrtombs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsnrtombs.3.html -.. _`wcspbrk(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcspbrk.3.html -.. _`wcspbrk(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcspbrk.3posix.html -.. _`wcsrchr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsrchr.3.html -.. _`wcsrchr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsrchr.3posix.html -.. _`wcsrtombs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsrtombs.3.html -.. _`wcsrtombs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsrtombs.3posix.html -.. _`wcsspn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsspn.3.html -.. _`wcsspn(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsspn.3posix.html -.. _`wcsstr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsstr.3.html -.. _`wcsstr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsstr.3posix.html -.. _`wcstod(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstod.3posix.html -.. _`wcstof(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstof.3posix.html -.. _`wcstoimax(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstoimax.3.html -.. _`wcstoimax(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstoimax.3posix.html -.. _`wcstok(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstok.3.html -.. _`wcstok(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstok.3posix.html -.. _`wcstol(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstol.3posix.html -.. _`wcstold(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstold.3posix.html -.. _`wcstoll(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstoll.3posix.html -.. _`wcstombs(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstombs.3.html -.. _`wcstombs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstombs.3posix.html -.. _`wcstoul(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstoul.3posix.html -.. _`wcstoull(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstoull.3posix.html -.. _`wcstoumax(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstoumax.3.html -.. _`wcstoumax(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcstoumax.3posix.html -.. _`wcswcs(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcswcs.3posix.html -.. _`wcswidth(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcswidth.3.html -.. _`wcswidth(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcswidth.3posix.html -.. _`wcsxfrm(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcsxfrm.3posix.html -.. _`wctob(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wctob.3.html -.. _`wctob(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wctob.3posix.html -.. _`wctomb(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wctomb.3.html -.. _`wctomb(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wctomb.3posix.html -.. _`wctrans(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wctrans.3.html -.. _`wctrans(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wctrans.3posix.html -.. _`wctype(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wctype.3.html -.. _`wctype(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wctype.3posix.html -.. _`wctype.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/wctype.h.7posix.html -.. _`wcursyncup(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcursyncup.3ncurses.html -.. _`wcwidth(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcwidth.3.html -.. _`wcwidth(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wcwidth.3posix.html -.. _`wdelch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wdelch.3ncurses.html -.. _`wdeleteln(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wdeleteln.3ncurses.html -.. _`wechochar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wechochar.3ncurses.html -.. _`wecho_wchar(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wecho_wchar.3ncurses.html -.. _`wenclose(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wenclose.3ncurses.html -.. _`werase(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/werase.3ncurses.html -.. _`wget(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/wget.1.html -.. _`wgetbkgrnd(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wgetbkgrnd.3ncurses.html -.. _`wgetch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wgetch.3ncurses.html -.. _`wgetnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wgetnstr.3ncurses.html -.. _`wgetn_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wgetn_wstr.3ncurses.html -.. _`wgetparent(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wgetparent.3ncurses.html -.. _`wgetscrreg(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wgetscrreg.3ncurses.html -.. _`wgetstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wgetstr.3ncurses.html -.. _`wget_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wget_wch.3ncurses.html -.. _`wget_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wget_wstr.3ncurses.html -.. _`what(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/what.1posix.html -.. _`whatis(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/whatis.1.html -.. _`whereis(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/whereis.1.html -.. _`which(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/which.1.html -.. _`whiptail(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/whiptail.1.html -.. _`whline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/whline.3ncurses.html -.. _`whline_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/whline_set.3ncurses.html -.. _`who(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/who.1.html -.. _`who(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/who.1posix.html -.. _`whoami(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/whoami.1.html -.. _`win(3form)` : http://sites.uclouvain.be/SystInfo/manpages/man3/win.3form.html -.. _`win(3menu)` : http://sites.uclouvain.be/SystInfo/manpages/man3/win.3menu.html -.. _`winch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winch.3ncurses.html -.. _`winchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winchnstr.3ncurses.html -.. _`winchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winchstr.3ncurses.html -.. _`windmc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/windmc.1.html -.. _`window(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/window.3ncurses.html -.. _`winnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winnstr.3ncurses.html -.. _`winnwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winnwstr.3ncurses.html -.. _`winsch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winsch.3ncurses.html -.. _`winsdelln(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winsdelln.3ncurses.html -.. _`winsertln(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winsertln.3ncurses.html -.. _`winsnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winsnstr.3ncurses.html -.. _`wins_nwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wins_nwstr.3ncurses.html -.. _`winsstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winsstr.3ncurses.html -.. _`winstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winstr.3ncurses.html -.. _`wins_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wins_wch.3ncurses.html -.. _`wins_wstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wins_wstr.3ncurses.html -.. _`win_wch(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/win_wch.3ncurses.html -.. _`win_wchnstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/win_wchnstr.3ncurses.html -.. _`win_wchstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/win_wchstr.3ncurses.html -.. _`winwstr(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/winwstr.3ncurses.html -.. _`wipefs(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/wipefs.8.html -.. _`wmemchr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemchr.3.html -.. _`wmemchr(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemchr.3posix.html -.. _`wmemcmp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemcmp.3.html -.. _`wmemcmp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemcmp.3posix.html -.. _`wmemcpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemcpy.3.html -.. _`wmemcpy(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemcpy.3posix.html -.. _`wmemmove(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemmove.3.html -.. _`wmemmove(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemmove.3posix.html -.. _`wmempcpy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmempcpy.3.html -.. _`wmemset(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemset.3.html -.. _`wmemset(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmemset.3posix.html -.. _`wmouse_trafo(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmouse_trafo.3ncurses.html -.. _`wmove(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wmove.3ncurses.html -.. _`wnoutrefresh(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wnoutrefresh.3ncurses.html -.. _`wordexp(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wordexp.3.html -.. _`wordexp(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wordexp.3posix.html -.. _`wordexp.h(7posix)` : http://sites.uclouvain.be/SystInfo/manpages/man7/wordexp.h.7posix.html -.. _`wordfree(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wordfree.3.html -.. _`wordfree(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wordfree.3posix.html -.. _`wprintf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wprintf.3.html -.. _`wprintf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wprintf.3posix.html -.. _`wprintw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wprintw.3ncurses.html -.. _`w.procps(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/w.procps.1.html -.. _`wredrawln(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wredrawln.3ncurses.html -.. _`wrefresh(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wrefresh.3ncurses.html -.. _`wresize(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wresize.3ncurses.html -.. _`write(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/write.1.html -.. _`write(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/write.1posix.html -.. _`write(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/write.2.html -.. _`write(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/write.3posix.html -.. _`writev(2)` : http://sites.uclouvain.be/SystInfo/manpages/man2/writev.2.html -.. _`writev(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/writev.3posix.html -.. _`wscanf(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wscanf.3posix.html -.. _`wscanw(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wscanw.3ncurses.html -.. _`wscrl(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wscrl.3ncurses.html -.. _`wsetscrreg(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wsetscrreg.3ncurses.html -.. _`wstandend(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wstandend.3ncurses.html -.. _`wstandout(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wstandout.3ncurses.html -.. _`wsyncdown(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wsyncdown.3ncurses.html -.. _`wsyncup(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wsyncup.3ncurses.html -.. _`wtimeout(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wtimeout.3ncurses.html -.. _`wtmp(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/wtmp.5.html -.. _`wtouchln(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wtouchln.3ncurses.html -.. _`wunctrl(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wunctrl.3ncurses.html -.. _`wvline(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wvline.3ncurses.html -.. _`wvline_set(3ncurses)` : http://sites.uclouvain.be/SystInfo/manpages/man3/wvline_set.3ncurses.html -.. _`x25(7)` : http://sites.uclouvain.be/SystInfo/manpages/man7/x25.7.html -.. _`x509(1ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man1/x509.1ssl.html -.. _`x509v3_config(5ssl)` : http://sites.uclouvain.be/SystInfo/manpages/man5/x509v3_config.5ssl.html -.. _`x86_64(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/x86_64.8.html -.. _`xargs(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xargs.1.html -.. _`xargs(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xargs.1posix.html -.. _`xauth(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xauth.1.html -.. _`xcompose(5)` : http://sites.uclouvain.be/SystInfo/manpages/man5/xcompose.5.html -.. _`xcrypt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xcrypt.3.html -.. _`xdecrypt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdecrypt.3.html -.. _`xdr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr.3.html -.. _`xdr_accepted_reply(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_accepted_reply.3.html -.. _`xdr_array(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_array.3.html -.. _`xdr_authunix_parms(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_authunix_parms.3.html -.. _`xdr_bool(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_bool.3.html -.. _`xdr_bytes(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_bytes.3.html -.. _`xdr_callhdr(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_callhdr.3.html -.. _`xdr_callmsg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_callmsg.3.html -.. _`xdr_char(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_char.3.html -.. _`xdr_destroy(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_destroy.3.html -.. _`xdr_double(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_double.3.html -.. _`xdr_enum(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_enum.3.html -.. _`xdr_float(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_float.3.html -.. _`xdr_free(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_free.3.html -.. _`xdr_getpos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_getpos.3.html -.. _`xdr_inline(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_inline.3.html -.. _`xdr_int(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_int.3.html -.. _`xdr_long(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_long.3.html -.. _`xdrmem_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdrmem_create.3.html -.. _`xdr_opaque(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_opaque.3.html -.. _`xdr_opaque_auth(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_opaque_auth.3.html -.. _`xdr_pmap(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_pmap.3.html -.. _`xdr_pmaplist(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_pmaplist.3.html -.. _`xdr_pointer(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_pointer.3.html -.. _`xdrrec_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdrrec_create.3.html -.. _`xdrrec_endofrecord(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdrrec_endofrecord.3.html -.. _`xdrrec_eof(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdrrec_eof.3.html -.. _`xdrrec_skiprecord(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdrrec_skiprecord.3.html -.. _`xdr_reference(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_reference.3.html -.. _`xdr_rejected_reply(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_rejected_reply.3.html -.. _`xdr_replymsg(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_replymsg.3.html -.. _`xdr_setpos(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_setpos.3.html -.. _`xdr_short(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_short.3.html -.. _`xdrstdio_create(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdrstdio_create.3.html -.. _`xdr_string(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_string.3.html -.. _`xdr_u_char(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_u_char.3.html -.. _`xdr_u_int(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_u_int.3.html -.. _`xdr_u_long(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_u_long.3.html -.. _`xdr_union(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_union.3.html -.. _`xdr_u_short(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_u_short.3.html -.. _`xdr_vector(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_vector.3.html -.. _`xdr_void(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_void.3.html -.. _`xdr_wrapstring(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xdr_wrapstring.3.html -.. _`xencrypt(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xencrypt.3.html -.. _`xprt_register(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xprt_register.3.html -.. _`xprt_unregister(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/xprt_unregister.3.html -.. _`xsubpp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xsubpp.1.html -.. _`xxd(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xxd.1.html -.. _`xz(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xz.1.html -.. _`xzcat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xzcat.1.html -.. _`xzcmp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xzcmp.1.html -.. _`xzdiff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xzdiff.1.html -.. _`xzegrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xzegrep.1.html -.. _`xzfgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xzfgrep.1.html -.. _`xzgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xzgrep.1.html -.. _`xzless(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xzless.1.html -.. _`xzmore(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/xzmore.1.html -.. _`y0(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/y0.3.html -.. _`y0(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/y0.3posix.html -.. _`y0f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/y0f.3.html -.. _`y0l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/y0l.3.html -.. _`y1(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/y1.3.html -.. _`y1(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/y1.3posix.html -.. _`y1f(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/y1f.3.html -.. _`y1l(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/y1l.3.html -.. _`yacc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/yacc.1.html -.. _`yacc(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/yacc.1posix.html -.. _`yes(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/yes.1.html -.. _`yn(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/yn.3.html -.. _`yn(3posix)` : http://sites.uclouvain.be/SystInfo/manpages/man3/yn.3posix.html -.. _`ynf(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ynf.3.html -.. _`ynl(3)` : http://sites.uclouvain.be/SystInfo/manpages/man3/ynl.3.html -.. _`ypdomainname(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/ypdomainname.1.html -.. _`zcat(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zcat.1.html -.. _`zcat(1posix)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zcat.1posix.html -.. _`zcmp(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zcmp.1.html -.. _`zdiff(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zdiff.1.html -.. _`zdump(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zdump.1.html -.. _`zegrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zegrep.1.html -.. _`zero(4)` : http://sites.uclouvain.be/SystInfo/manpages/man4/zero.4.html -.. _`zfgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zfgrep.1.html -.. _`zforce(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zforce.1.html -.. _`zgrep(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zgrep.1.html -.. _`zic(8)` : http://sites.uclouvain.be/SystInfo/manpages/man8/zic.8.html -.. _`zless(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zless.1.html -.. _`zmore(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zmore.1.html -.. _`znew(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/znew.1.html -.. _`zsh(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zsh.1.html -.. _`zsh4(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zsh4.1.html -.. _`zshall(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshall.1.html -.. _`zshbuiltins(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshbuiltins.1.html -.. _`zshcalsys(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshcalsys.1.html -.. _`zshcompctl(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshcompctl.1.html -.. _`zshcompsys(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshcompsys.1.html -.. _`zshcompwid(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshcompwid.1.html -.. _`zshcontrib(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshcontrib.1.html -.. _`zshexpn(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshexpn.1.html -.. _`zshmisc(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshmisc.1.html -.. _`zshmodules(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshmodules.1.html -.. _`zshoptions(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshoptions.1.html -.. _`zshparam(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshparam.1.html -.. _`zshroadmap(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshroadmap.1.html -.. _`zshtcpsys(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshtcpsys.1.html -.. _`zshzftpsys(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshzftpsys.1.html -.. _`zshzle(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zshzle.1.html -.. _`zsoelim(1)` : http://sites.uclouvain.be/SystInfo/manpages/man1/zsoelim.1.html diff --git a/Theorie/src/args.out b/Theorie/src/args.out deleted file mode 100644 index a6518fd..0000000 --- a/Theorie/src/args.out +++ /dev/null @@ -1,3 +0,0 @@ -Vous avez passe 2 arguments -Le premier argument est : SINF -Liste des arguments : SINF 1252 diff --git a/Theorie/src/args.sh b/Theorie/src/args.sh deleted file mode 100644 index 567eff0..0000000 --- a/Theorie/src/args.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -# $# nombre d'arguments -# $1 $2 $3 ... arguments -echo "Vous avez passe" $# "arguments" -echo "Le premier argument est :" $1 -echo "Liste des arguments :" $@ diff --git a/Theorie/src/args.sh.out b/Theorie/src/args.sh.out deleted file mode 100644 index a6518fd..0000000 --- a/Theorie/src/args.sh.out +++ /dev/null @@ -1,3 +0,0 @@ -Vous avez passe 2 arguments -Le premier argument est : SINF -Liste des arguments : SINF 1252 diff --git a/Theorie/src/cmdline.c b/Theorie/src/cmdline.c deleted file mode 100644 index 7cbb9da..0000000 --- a/Theorie/src/cmdline.c +++ /dev/null @@ -1,19 +0,0 @@ -/************************************** - * cmdline.c - * - * Programme affichant ses arguments - * sur la sortie standard - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main( int argc, char *argv[] ) { - int i; - printf("Ce programme a %d argument(s)\n",argc); - for( i=0; i < argc; i++ ) { - printf("argument[%d] : %s\n",i, argv[i] ); - } - return(EXIT_SUCCESS); -} diff --git a/Theorie/src/cmdline.out b/Theorie/src/cmdline.out deleted file mode 100644 index 90ce182..0000000 --- a/Theorie/src/cmdline.out +++ /dev/null @@ -1,6 +0,0 @@ -Ce programme a 5 argument(s) -argument[0] : ./cmdline -argument[1] : 1 -argument[2] : -list -argument[3] : abcdef -argument[4] : sinf1252 diff --git a/Theorie/src/eq.sh b/Theorie/src/eq.sh deleted file mode 100644 index 84e5053..0000000 --- a/Theorie/src/eq.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# Vérifie si les deux nombres passés en arguments sont égaux -if [ $# -ne 2 ]; then - echo "Erreur, deux arguments sont nécessaires" > /dev/stderr - exit 2 -fi -if [ $1 -eq $2 ]; then - echo "Nombres égaux" -else - echo "Nombres différents" -fi -exit 0 diff --git a/Theorie/src/exemple.out b/Theorie/src/exemple.out deleted file mode 100644 index f9341a2..0000000 --- a/Theorie/src/exemple.out +++ /dev/null @@ -1,10 +0,0 @@ -$ cat exemple.txt -Un simple fichier de textes -aaaaaaaaaa bbbbbb -bbbbb ccccccccccc -eeeee fffffffff -aaaaaaaaaa bbbbbb -$ grep fichier exemple.txt -Un simple fichier de textes -$ wc exemple.txt - 5 13 98 exemple.txt diff --git a/Theorie/src/exemple2.out b/Theorie/src/exemple2.out deleted file mode 100644 index 33eb83c..0000000 --- a/Theorie/src/exemple2.out +++ /dev/null @@ -1,6 +0,0 @@ -$ echo "Un petit fichier de textes" > file.txt -$ echo "aaaaa bbbbb" >> file.txt -$ echo "bbbb ccc" >> file.txt -$ grep -v bbbb < file.txt > file.out -$ cat file.out -Un petit fichier de textes diff --git a/Theorie/src/exemple3.out b/Theorie/src/exemple3.out deleted file mode 100644 index f4b0395..0000000 --- a/Theorie/src/exemple3.out +++ /dev/null @@ -1,12 +0,0 @@ -$ echo "Un petit texte" | wc -c - 15 -$ echo "bbbb ccc" >> file.txt -$ echo "aaaaa bbbbb" >> file.txt -$ echo "bbbb ccc" >> file.txt -$ cat file.txt -bbbb ccc -aaaaa bbbbb -bbbb ccc -$ cat file.txt | sort | uniq -aaaaa bbbbb -bbbb ccc diff --git a/Theorie/src/failure.c b/Theorie/src/failure.c deleted file mode 100644 index 4f271da..0000000 --- a/Theorie/src/failure.c +++ /dev/null @@ -1,10 +0,0 @@ -/************************************** - * failure.c - * - * Programme minimal qui échoue toujours - * - **************************************/ -#include <stdlib.h> -int main( int argc, char *argv[] ) { - return(EXIT_FAILURE); -} diff --git a/Theorie/src/filterdigit.c b/Theorie/src/filterdigit.c deleted file mode 100644 index b699830..0000000 --- a/Theorie/src/filterdigit.c +++ /dev/null @@ -1,36 +0,0 @@ -/************************************** - * filterdigit.c - * - * Programme qui extrait de l'entrée - * standard les caractères représentant - * des chiffres - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -// retourne vrai si c est un chiffre, faux sinon -int digit(char c) { - return ( (c >='0')&&(c<='9') ); -} -// affiche un message d'erreur -void usage() -{ - fprintf(stderr,"Ce programme ne prend pas d'argument\n"); - exit(EXIT_FAILURE); -} -int main( int argc, char *argv[] ) { - char c; - - if (argc>1) { - usage(); - } - - while ((c = getchar()) != EOF) { - if(digit(c)) { - putchar(c); - } - } - return(EXIT_SUCCESS); -} - diff --git a/Theorie/src/hello.c b/Theorie/src/hello.c deleted file mode 100644 index 85d3653..0000000 --- a/Theorie/src/hello.c +++ /dev/null @@ -1,17 +0,0 @@ -/************************************** - * Hello.c - * - * Programme affichant sur la sortie - * standard le message "Hello, world!" - * - **************************************/ - -#include <stdio.h> -#include <stdlib.h> - -int main(int argc, char *argv[]) { - // affiche sur la sortie standard - printf("Hello, world!\n"); - - return(EXIT_SUCCESS); -} diff --git a/Theorie/src/hello.sh b/Theorie/src/hello.sh deleted file mode 100644 index 6312616..0000000 --- a/Theorie/src/hello.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -echo "Hello, world" diff --git a/Theorie/src/hello.sh.out b/Theorie/src/hello.sh.out deleted file mode 100644 index a5c1966..0000000 --- a/Theorie/src/hello.sh.out +++ /dev/null @@ -1 +0,0 @@ -Hello, world diff --git a/Theorie/src/hellovar.sh b/Theorie/src/hellovar.sh deleted file mode 100644 index d68fbf2..0000000 --- a/Theorie/src/hellovar.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -PROG="SINF" -COURS=1252 -echo $PROG$COURS diff --git a/Theorie/src/printf.c b/Theorie/src/printf.c deleted file mode 100644 index 42d2d8a..0000000 --- a/Theorie/src/printf.c +++ /dev/null @@ -1,29 +0,0 @@ -/************************************** - * printf.c - * - * Exemples d'utilisation de printfProgramme qui a réussi - * - **************************************/ -#include <stdlib.h> -#include <stdio.h> -#include <math.h> -int main( int argc, char *argv[] ) { - ///AAA - char weekday[]="Monday"; - char month[]="April"; - int day=1; - int hour=12; - int min=42; - char str[]="SINF1252"; - int i; - // affichage de la date et l'heure - printf("%s, %s %d, %d:%d\n", weekday, month, day, hour, min); - // affichage de la valeur de PI - printf("PI = %f\n", 4 * atan(1.0)); - // affichage d'un caractère par ligne - for(i=0; str[i]!='\0';i++) { - printf("%c\n",str[i]); - } - ///BBB - return(EXIT_SUCCESS); -} diff --git a/Theorie/src/printf.out b/Theorie/src/printf.out deleted file mode 100644 index 52d6f66..0000000 --- a/Theorie/src/printf.out +++ /dev/null @@ -1,10 +0,0 @@ -Monday, April 1, 12:42 -PI = 3.141593 -S -I -N -F -1 -2 -5 -2 diff --git a/Theorie/src/wordin.sh b/Theorie/src/wordin.sh deleted file mode 100644 index 413163e..0000000 --- a/Theorie/src/wordin.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash -# wordin.sh -# Vérifie si le mot passé en premier argument est présent -# dans le fichier passé comme second argument -if [ $# -ne 2 ]; then - echo "Erreur, deux arguments sont nécessaires" > /dev/stderr - exit 2 -fi -grep $1 $2 >/dev/null -# $? contient la valeur de retour de grep -if [ $? -eq 0 ]; then - echo "Présent" - exit 0 -else - echo "Absent" - exit 1 -fi diff --git a/empty.rst b/empty.rst deleted file mode 100644 index 83fd752..0000000 --- a/empty.rst +++ /dev/null @@ -1,4 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Copyright |copy| 2012 by `Olivier Bonaventure <http://inl.info.ucl.ac.be/obo>`_, Christoph Paasch et Grégory Detal -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - diff --git a/qcmMalloc.rst b/qcmMalloc.rst deleted file mode 100644 index 136d227..0000000 --- a/qcmMalloc.rst +++ /dev/null @@ -1,344 +0,0 @@ -.. -*- coding: utf-8 -*- -.. Ce fichier est distribué sous une licence `creative commons <http://creativecommons.org/licenses/by-sa/3.0/>`_ - - -.. sectionauthor:: Aurélie Massart <aurelie.massart@student.uclouvain.be> - -Questions à choix multiples -=========================== - -:task_id: sinf1252-revision - - -Question 1. Structure et allocation de mémoire avec `malloc(3)`_ ----------------------------------------------------------------- - -Dans le langage C, l'allocation de zone mémoire se fait souvent avec `malloc(3)`_ -Pour une structure chainée définie comme suit : - -.. code-block:: c - - - struct list { - int value; - struct list *next; - }; - - -.. question:: revision-allocmemoire - :nb_prop: 3 - :nb_pos: 1 - - Quel fragment de code ci-dessous alloue correctement la zone mémoire pour une telle structure avec `malloc(3)`_ ? - - .. positive:: - - .. code-block:: c - - struct list *l = (struct list *)malloc (sizeof(struct list)); - if(l == NULL) - error("malloc"); - - .. positive:: - - .. code-block:: c - - struct list *l; - l = (struct list *)malloc(sizeof(struct list)); - if(l == NULL) - error("malloc"); - - - .. negative:: - - .. code-block:: c - - struct list *l = malloc(sizeof(list)); - if(l == NULL) - error("malloc"); - - .. comment:: La variable ``list`` est non déclarée. Pour référencer la structure, il faut faire appel à ``struct list`` et non à ``list``. De plus, `malloc(3)`_ retourne un pointeur de type ``void *`` qui doit donc être casté en pointeur de type ``struct list *``. - - - .. negative:: - - .. code-block:: c - - struct list *l = (struct list) malloc (sizeof(struct list )); - if(l == NULL) - error("malloc"); - - .. comment:: La variable ``l`` est de type ``struct list *`` et pas de type ``struct list``. - - .. negative:: - - .. code-block:: c - - struct list *l = malloc (struct list); - if(l == NULL) - error("malloc"); - - .. comment:: `malloc(3)`_ prend en argument la taille de la zone mémoire à allouer, et doit donc prendre en argument une expression commençant par ``sizeof``. - - -Question 2. Allocation et libération de mémoire sur une structure chainée -------------------------------------------------------------------------- - -Pour une structure chainée définie comme suit : - -.. code-block:: c - - - struct list { - int value; - struct list *next; - }; - - -.. question:: allocLib - :nb_prop: 3 - :nb_pos: 1 - - Un seul parmi les fragments de code ci-dessous est correct. Lequel ? - - .. positive:: - - .. code-block:: c - - - int main (int argc, char *argv[]) { - - struct list *node1 = (struct list *) malloc (sizeof (struct list)); - // premier noeud de la liste - if (node1 == NULL) - return (EXIT_FAILURE); - - - struct list *node2 = (struct list *) malloc (sizeof (struct list)); - // deuxieme noeud de la liste - if (node2 == NULL) - return (EXIT_FAILURE); - - node2->value = 5; - node2->next = NULL; - node1->value = 2; - node1->next = node2; - // initialisation des noeuds de la liste - - - while (node1 != NULL) - { - struct list *n = node1; - node1 = node1->next; - free (n); - n = NULL; - } - // liberation de la memoire allouee - - return (EXIT_SUCCESS); - } - - - - .. positive:: - - .. code-block:: c - - - int main (int argc, char *argv[]) { - - struct list *node1 = (struct list *) malloc (sizeof (struct list)); - // premier noeud de la liste - if (node1 == NULL) - return (EXIT_FAILURE); - - - struct list *node2 = (struct list *) malloc (sizeof (struct list)); - // deuxieme noeud de la liste - if (node2 == NULL) - return (EXIT_FAILURE); - - node1->value = 2; - node2->value = 5; - node2->next = NULL; - node1->next = node2; - // initialisation des noeuds de la liste - - - while (node1 != NULL) - { - struct list *n = node1; - node1 = node1->next; - free (n); - n = NULL; - } - // liberation de la memoire allouee - - return (EXIT_SUCCESS); - } - - - - .. negative:: - - .. code-block:: c - - - int main (int argc, char *argv[]) { - - struct list *node1 = (struct list *) malloc (sizeof (struct list)); - // premier noeud de la liste - if (node1 == NULL) - return (EXIT_FAILURE); - - - struct list *node2 = (struct list *) malloc (sizeof (struct list)); - // deuxieme noeud de la liste - if (node2 == NULL) - return (EXIT_FAILURE); - - - node2->value = 5; - node2->next = NULL; - node1->value = 2; - node1->next = node2; - // initialisation des noeuds de la liste - - - free(node1); - // liberation de la memoire allouee - - return (EXIT_SUCCESS); - - } - - - - .. comment:: La mémoire n'est pas bien libérée. L'appel à `free(3)`_ ne va libérer que la mémoire associée au premier noeud de la liste. - - .. negative:: - - .. code-block:: c - - - - int main (int argc, char *argv[]) { - - struct list *node1 = (struct list *) malloc (sizeof (struct list)); - // premier noeud de la liste - if (node1 == NULL) - return (EXIT_FAILURE); - - - struct list *node2 = (struct list *) malloc (sizeof (struct list)); - // deuxieme noeud de la liste - if (node2 == NULL) - return (EXIT_FAILURE); - - node2->value = 5; - node2->next = NULL; - node1->value = 2; - node1->next = node2; - // initialisation des noeuds de la liste - - - while (node1->next != NULL) - { - struct list *n = node1; - node1 = node1->next; - free (n); - n = NULL; - } - // liberation de la memoire allouee - - return (EXIT_SUCCESS); - } - - - - .. comment:: la mémoire n'est pas bien libérée. La boucle while se termine quand ``node->next`` vaut NULL et donc, la mémoire allouée pour le dernier élément de la liste ne sera pas libérée. - - .. negative:: - - .. code-block:: c - - - int main (int argc, char *argv[]) { - - struct list *node1 = (struct list *) malloc (sizeof (struct list)); - // premier noeud de la liste - - struct list *node2 = (struct list *) malloc (sizeof (struct list)); - // deuxieme noeud de la liste - - node2->value = 5; - node2->next = NULL; - node1->value = 2; - node1->next = node2; - // initialisation des noeuds de la liste - - - while (node1 != NULL) - { - struct list *n = node1; - node1 = node1->next; - free (n); - n = NULL; - } - // liberation de la memoire allouee - - return (EXIT_SUCCESS); - } - - .. comment:: les valeurs de retour des pointeurs alloués avec `malloc(3)`_ n'ont pas été vérifiées. - - .. negative:: - - .. code-block:: c - - - int main (int argc, char *argv[]) { - - struct list *node1 = (struct list *) malloc (sizeof (struct list)); - // premier noeud de la liste - if (node1 == NULL) - return (EXIT_FAILURE); - - - struct list *node2 = (struct list *) malloc (sizeof (struct list)); - // deuxieme noeud de la liste - if (node2 == NULL) - return (EXIT_FAILURE); - - node2->value = 5; - node2->next = NULL; - node1->value = 2; - node1->next = node2; - // initialisation des noeuds de la liste - - - while (node1 != NULL) - { - struct list n = node1; - free (n); - n = NULL; - node1 = node1->next; - } - // liberation de la memoire allouee - - return (EXIT_SUCCESS); - } - - - - .. comment:: la variable ``n`` est de type ``struct list`` et ne peut donc pas être assignée à la valeur de la variable ``node1`` qui n'est pas du même type - - - - - -.. include:: ../../../links.rst -.. include:: ../../../man_links.rst -.. include:: ../../../incl_links.rst - - -- GitLab