A la découverte d Unix

Dimension: px
Commencer à balayer dès la page:

Download "A la découverte d Unix"

Transcription

1 A la découverte d Unix Paul Feautrier Paul.Feautrier@ens-lyon.fr. ENS Lyon UNIX-MIM1 1/62

2 Plan Présentation. Compléments sur les shells. Construction d applications. Système de fichiers. Gestion des processus. Compilation séparée. Eléments de programamtion concurrente. Communications entre processus. A l intérieur d un système de fichier. Développement d applications. UNIX-MIM1 2/62

3 Histoire des systèmes d exploitation Les premiers ordinateurs n ont aucun logiciel. Assembleurs et compilateurs. Traitement par lot, ordinateur oériphérique, IBSYS. spooling. Multitraitement. IBM OS/360. Temps partagé. Multiprocesseurs. Réseaux : Arpanet, Cyclades, Transpac. Systèmes distribués, courrier électronique, Web. UNIX-MIM1 3/62

4 Fonctions des systèmes d exploitation Bibliothèques d entrée sortie et de gestion du multitraitement. Supervision et partage de la configuration. Administration, sécurité, fiabilité. UNIX-MIM1 4/62

5 Histoire d Unix Première version écrite «en perruque» par Thompson et Ritchie (1972). Définition de C. Premier portage. Divergence : System V (Bell Labs) et BSD (Berkeley). Convergence. Unix sur PC : Linux. UNIX-MIM1 5/62

6 Panorama des systèmes d exploitation actuels Windows : origine DOS, inclusion tardive d un système de fenétrage copié sur celui du MacIntosh. 80 à 90% du marché des PC. Peu sûr et peu fiable. Unix : machines moyennes, ordinateurs personnels (Linux, OS/X), gros serveurs Web, grosses machines pour le calcul scientifique. Systèmes propriétaires. Réservés aux mainframes utilisés pour la gestion. Systèmes spécialisés : temps réel, embarqués, à haute disponibilité, etc. UNIX-MIM1 6/62

7 Pourquoi Unix? Transparence. Les sources du système sont accessibles. Fiabilité. Sécurité : pas absolue, mais meilleure que celle de Windows. Portabilité. Convivialité. Beaucoup de développements sous Unix se font sur le mode de l open source. UNIX-MIM1 7/62

8 A quoi sert le shell? init getty login shell - - UNIX-MIM1 8/62

9 Les shells Comme le shell est un programme ordinaire, il est possible de le réécrire pour le doter de nouvelles fonctionnalités. le shell de Bourne sh, version originale, toujours présent. csh le shell à syntaxe C. Introduction de l historique et du contrôle des travaux. tcsh introduit le concept d édition de la ligne de commande. Bourne again shell bash fait la synthèse de toutes ces améliorations et revient à la syntaxe de sh. Il en existe bien d autres. UNIX-MIM1 9/62

10 Fonctionnement d un shell Aussi longtemps qu il y a des commandes à lire : Lecture d une commande. Analyse de la commande et détermination du programme à lancer. Lancement du programme. Pendant l exécution du programme, en général le shell se bloque pour en attendre la fin, sauf si le caractère & figure dans la commande. UNIX-MIM1 10/62

11 Scripts Une liste de commandes enregistrées dans un fichier. Lancement d un script. Le fichier doit avoir le droit d exécution. Variables. $0, $1,... $9. Instructions de contrôle : if, for, while, case. case $v in x )... ;; y?)... ;; * )... ;; esac UNIX-MIM1 11/62

12 Programmation récursive, I Il suffit relancer le script au cours de sa propre exécution. Attention, il doit toujours y avoir un cas où l appel récursif ne se fait pas, et ce cas doit toujours finir par se produire. Sinon, on provoque une saturation en processus et un blocage du système. Exemple 1 if expr $1 = 0 > /dev/null then echo 1 else m= expr $1-1 n= fact $m expr $1 \* $n fi UNIX-MIM1 12/62

13 Programmation récursive, II Il est plus astucieux d utiliser la variable $0 dont la valeur est le nom du script. Exemple 2 #!/bin/sh for f in ls $1 do if test -d $1/$f then $0 $1/$f else echo $1/$f fi done UNIX-MIM1 13/62

14 Trucs et astuces Insérer des données dans un script. Exemple 3 mail pfeautri <<! Ta compilation vient de se terminer.! Créer des fichiers d initialisation. Exemple 4 #Building the starter file. echo "home_dir := \"$HOME\";" > starter echo "pip_executable := \"$HOME/Pip/mpPip/pipMP\";" >> starter echo "application_file := \"$1\":" >> starter echo "control_file := \"$2\";" >> starter echo "machine_description_file := \"$3\":" >> starter #Launching the scheduler mupad starter $HOME/Yaka/Src-mupad/yaka.mupad Construction dynamique de scripts. UNIX-MIM1 14/62

15 Pourquoi écrire des scripts? En guise d aide mémoire. Pour faire du prototypage rapide. Pour accomplir une tâche complexe mais infréquente. Attention, la programmation par scripts est pleine de pièges. Il n y a pas d outils de mise au point spécifique. UNIX-MIM1 15/62

16 Le role de C vis-à-vis d Unix C est le langage d écriture du système et de ses accessoires. Beaucoup de compilateurs générent du C (fonction assembleur de haut niveau). C est un langage efficace (moins que Fortran cependant). Il est utlisé pour les bibliothèques de calcul, les solveurs, les serveurs, etc. Mais C ne doit pas être utilisé à tort et à travers : pour écrire un compilateur, utiliser Ocaml. pour du calcul numérique à hautes performances, FORTRAN. pour du calcul algébrique, Maple, MuPAD, Mathematica... pour du traitement de texte, Perl, Awk, sed... UNIX-MIM1 16/62

17 Sources C. Delannoy : Le Livre de C Premier langage, Eyrolles, B. Kernigham, D. Ritchie : The C programming Language, Prentice-Hall, Eviter les traductions. J-M. Rifflet : La programmation sous Unix, Ediscience. De nombreux renseignements, en particulier sur les fonctions de la bibliothèque peuvent etre obtenues à l aide de la commande man : $man 3 printf PRINTF(3) Linux Programmer s Manual PRINTF(3) NAME printf, fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf - formatted output conversion SYNOPSIS #include <stdio.h> int printf(const char *format,...); int fprintf(file *stream, const char *format,...); int sprintf(char *str, const char *format,...); int snprintf(char *str, size_t size, const char *format,...);... #include <stdarg.h> UNIX-MIM1 17/62

18 Instructions de contrôle if (...)... else... ; while (...)... ; for(a ; b ; c) S ; équivalent à : a; while(b) { S; c; } Instruction switch : switch (c) { case a :... case e :... case m ; case n :... default :... } break; break; break; UNIX-MIM1 18/62

19 Les types de C Types entiers : char short long long long 8 bits 16 bits 32 bits 64 bits Types flottants float double 32 bits 64 bits Il n y a pas de booléens, on utilise un type entier avec la convention faux, toute autre valeur = vrai. Il est inutile de mémoriser cette convention. UNIX-MIM1 19/62

20 Les opérateurs de C Chaque opérateur a une priorité, mais il vaut mieux fixer l ordre des opérations par des parenthèses. Opérateurs Arithmétiques +, -, *, /, %. Opérent indifféremment sur les int ou les float. Le calcul se fait en flottant si l un au moins des deux opérandes est flottant. Opérateurs de pré et post incrémentation ++, --. Opérateurs de comparaison <, <=, ==,!=, >= >. Noter la comparaison pour égalité, ==. Opérateurs booléens Et &&, Ou, Non!. Opérateurs bit-à-bit Et &, Ou, Non, Ou exclusif ˆ. Opérateurs de décalage <<, >>. UNIX-MIM1 20/62

21 Opérateurs de C, suite Opérateur d affectation =, +=, etc. Il est légal d écrire : x = y = 0; Opérateur d affectation composé : A[i][j-1][i+j] += 1.0; A[i][j-1][i+j] = A[i][j-1][i+j] + 1.0; L expression conditionelle : u := u > 0? u : -u; permet de calculer une valeur absolue. UNIX-MIM1 21/62

22 Tableaux Déclaration : float a[10][10]; Usage : a[i][j] = 0.; a[j][i] = a[i][j]; Attention, l indice du premier lment d un tableau est 0. Chaînes de caractères : une chaîne de caractères est un tableau de type char. Comme les chaînes de caractères peuvent être de longueur variable, on utilise le caractère \0 comme terminateur. char keyword[] = "itemize"; char and[10]; and[0] = a ; and[1] = n ; and[2] = d ; and[3] = \0 ; UNIX-MIM1 22/62

23 Copier une chaîne de caractères char source[81], dest[81]; int i; for(i=0; source[i]!= 0; i++) dest[i] = source[i]; dest[i] = \0 ; Si la chaîne source ne contient pas de \0, ce bout de programme va détruire toute la mémoire et provoquer une erreur! On ne doit pas oublier de placer le \0 de la destination. UNIX-MIM1 23/62

24 Structures struct iob { int longueur; int index; char buffer[256]; }; struct iob x; struct iob y[12]; struct iob se comporte comme un nouveau type. On accède aux éléments de la structure par la notation pointée : y[3].buffer[112] = z ; Il est possible d utiliser une instruction d affectation pour une structure : y[7] = x; Il n y a pas d instruction d affectation de tableau, sauf s il fait partie d une structure. UNIX-MIM1 24/62

25 Fonctions float power(float x, int n) { float y; if(n==0) return(1.0); y = power(x, n/2); if(n%2 ==0) return(y*y); else return(x*y*y); } Récursivité. Type de la fonction, liste des arguments avec leur type. Variable locale : y. Instruction return. UNIX-MIM1 25/62

26 Appel de fonction main() { float result; result = power( , 7); printf(" ˆ7 = %f\n", result); } Role spécial de la fonction main. Transmission des arguments. Fonction de bibliothèque printf. UNIX-MIM1 26/62

27 Pointeurs int X[10]; int *p; int **q; p = X; q=&p q p X **q 0 1 *(p+3) p[9] UNIX-MIM1 27/62

28 Copier une chaîne de caractères, version II char source[81], dest[81]; char *p, *q; p=source; q=dest; while((*q++ = *p++)!= \0 ); UNIX-MIM1 28/62

29 Gestion de la mémoire Un objet ne peut être utilisé que si de la mémoire lui est allouée. Il existe plusieurs méthodes d allocation de la mémoire. Statique : struct iob x; main(...) {... } Automatique : int foo(...) { struct iob y;... } La mémoire est allouée quand la fonction est appelée et libérée quand la fonction se termine. UNIX-MIM1 29/62

30 Gestion dynamique de la mémoire Dynamique : struct iob *p; p = (struct iob *) malloc(sizeof(struct iob));... free(p); La mémoire est libérée sur ordre du programmeur. UNIX-MIM1 30/62

31 Chaîne de compilation emacs.c préprocesseur gcc.o ld a.out Préprocesseur : #include <foo.h> #define NELEM 100 Caché à l intérieur du compilateur. Compilateur (gcc ou cc). bibliothèque Editeur de lien, ld, caché à l intérieur du compilateur. UNIX-MIM1 31/62

32 Primitives Services fournis par le système à l utilisateur. Fonctionnement analogue à celui d une bibliothèque. Mais le système doit refuser les demandes dangereuses : mécanisme d appel spécial, mais camouflé en appel de fonction. #include <time.h> time_t now; if(time(&now)<0) perror("time"); Retourne le nombre de secondes écoulées depuis le 1er Janvier Question : A quelle date se produira l équivalent du bug de l an 2000 pour Unix? Noter l ordre #include. UNIX-MIM1 32/62

33 Mécanismes application bibliothèque noyau time()... time() IRET time() {... INT return; time(){... return; } barrière de protection UNIX-MIM1 33/62

34 Exemple #include <time.h> #include <stdio.h> main(void) { time_t heure; char *p; } if (time(&heure) < 0) perror("time"); p = ctime(&heure); puts(p); Contrairement à l usage, la mémoire contenant le résultat de ctime est allouée par ctime et ne peut être libérée. Compilation : $gcc now.c -o now $now UNIX-MIM1 34/62

35 Index des primitives Entrées/sorties : open, close, read, write, lseek, stat, fstat, chdir,... Gestion des processus : fork, wait, exec, exit,... Communications entre processus : Mode entrées/sorties : tubes pipes et sockets. Mode interruption : signaux. Mode mémoire partagée ; IPC System V. UNIX-MIM1 35/62

36 Les arguments de main $appl x y/z 23 main(int argc, char *argv[]){... } argv "appl" "x" "y/z" "23" NULL UNIX-MIM1 36/62

37 Fichiers Fractionner les supports magnétiques. Un disque dur = 30 Goctets. Une page = 2 koctets, soit 15 millions de page par disque. Une photo = 10 Moctets, soit photos par disque. Structure d un fichier : longueur vu du système texte \n \n \n\n \n autres structures index indexé UNIX-MIM1 37/62

38 Répertoires, I Role : mettre de l ordre dans les fichiers ; éviter les collisions de nom. Fichiers du système : immédiatement sous le répertoire racine, /bin, /lib, /usr, etc. Périphériques : /dev, /mnt. Fichiers des usagers : les conventions varient. /home/pfeautri ou /users/prism/pf/paf, etc. Chaque usager a son propre répertoire initial home directory. Il est libre de s organiser comme il veut ensuite. Juste après le login, l usager est dans le répertoire initial ; il peut se déplacer à l aide de la commande cd. UNIX-MIM1 38/62

39 Répertoires, II Un fichier peut être enregistré dans plusieurs répertoires à l aide de la commande ln. / usr bin home pfeautri Cours Pubs Unix RO oeuvres.tex unix_sld.tex UNIX-MIM1 39/62

40 Répertoires, III Un répertoire ne contient aucune information sur le fichier. La description du fichier se trouvre dans une structure spéciale inode qui peut être consultée à l aide de la commande stat Cours 2802 Pubs 9832 RO Unix oeuvres.tex unix_sld.tex 8256 slides UNIX-MIM1 40/62

41 Cycle d utilisation d un fichier #define BUFFSIZE 1024 char buffer[buffsize]; int fd, n; fd = open("foo",...); while (...) { n = read(fd, buffer, BUFFSIZE);... } close(fd); UNIX-MIM1 41/62

42 Les arguments de open fd = open(nom, flags, droits); Le nom est une chaîne de caractères. Les flags sont une chaîne de bits que l on construit à l aide de l opérateur ou. Le fichier d inclusion fournit des constantes figurées pour soulager la mémoire du programmeur. O_RDONLY ouverture en lecture seule. O_WRONLY écriture seule. O_RDWR. O_APPEND écriture en rallongement. O_CREAT créer le fichier s il n existe pas. O_TRUNC détruire le contenu du fichier s il existe. droits d accès : chaîne de bits (en général en octal), dans l ordre rwxrwxrwx. UNIX-MIM1 42/62

43 Exemple : un code de copie #include <stdio.h> #define BSIZE 1024 void copy(char *original, char *copie) { int in, out; char buffer[bsize]; int n; in = open(original, O_RDONLY); if(in <0) { perror(original); exit(0); } out = open(copie, O_WRONLY O_CREAT O_TRUNC, 0640); if(out < 0) { perror(copie); exit(0); } while((n = read(in, buffer, BSIZE)) > 0) write(out, buffer, n); close(out); close(in); } UNIX-MIM1 43/62

44 Positionnement long int pos, delta; pos = lseek(fd, delta, flags); delta SEEK_SET position actuelle delta SEEK_CUR delta SEEK_END trou pos UNIX-MIM1 44/62

45 Mesurer la taille d un fichier #include <sys/types.h> #include <unistd.h> main(int argc, char *argv[]) { long int taille = 0L; int fd; fd=open(argv[1], O_RDONLY); if(fd <0) { perror(argv[1]); exit(0); } taille = lseek(fd, 0L, SEEK_END); printf("%ld\n", taille); } UNIX-MIM1 45/62

46 Droits d accès, I owner group others R W X R W X R W X exécuter ou traverser écrire lire A l ouverture, on confronte la demande (e.g. O_WRONLY), le nom de l utilisateur et les droits d accès. Les outils du système donnent des droits d accès vraisemblables. On peut les changer à l aide de chmod. Les doits d accès doivent être spécifiés au moment de l open qui crée le fichier. On utilise en général la notation octale. Erreur classique : oublier les droits, droits nuls, fichier inaccessible. Que faire? UNIX-MIM1 46/62

47 Droits d accès, II Attention, les droits d accès des répertoires traversés influent sur les droits d accès au fichier. Pour accéder à /a/b/c il faut traverser /a et /a/b, donc avoir le droit x. Pour créer ou détruire /a/b/c, il faut avoir le droit de modifier /a/b. Faites attention à vos droits d accès!!!!! UNIX-MIM1 47/62

48 stat, fstat, I Ces deux primitives permettent de consulter le inode d un fichier (rappel : les répertoires ne contiennent aucune information). Technique : le inode contient beaucoup d information, qu il n est pas commode de retourner comme valeur de la fonction. La primitive a donc un argument de plus qui pointe sur une structure réservée par l utilisateur. Il n est pas nécessaire d utiliser malloc : struct stat buffer; if(stat("fichier", &buffer) < 0) { perror("fichier"); exit(0); } UNIX-MIM1 48/62

49 stat, fstat, II Début de la structure stat : struct stat { dev_t st_dev; /* device */ ino_t st_ino; /* inode */ mode_t st_mode; /* protection */ nlink_t st_nlink /* number of har uid_t st_uid; /* user ID of ow gid_t st_gid; /* group ID of o if(buffer.st_mod & S_IFDIR!= 0)... Le fonctionnement de fstat est le même, mais le fichier doit être ouvert. Il est désigné par son descripteur. Il existe également une commande stat. UNIX-MIM1 49/62

50 Processus processeur uid gid pid stack ports heap text uid : numéro de l usager, gid : groupe de l usager, pid numéro unique du processus. text : le code, heap : l espace alloué par malloc, stack : l espace des variables locales. UNIX-MIM1 50/62

51 Processus, pourquoi, comment? Les processus ont été inventés avant les ordinateurs personnels, pour donner l illusion d un PC alors que la machine réelle est trop coûteuse pour être allouée à un seul utilisateur. DOS n a pas de vrais processus. Les processus sont revenus sur les PC (Windows, Mac, Linux) à cause de la facilité de programmation qu ils apportent (traitement des événements imprévisibles dus au réseau). Les processus doivent être isolés les un des autres et du système. Cependant, il doit rester des ports de communication sévérement contrôlés. UNIX-MIM1 51/62

52 Gestion des processus, I #include <unistd.h> int r; /* original process */ if(fork()==0) { /* copy process */ exit(0); } else { /* original process */ wait(&r); } /* original process */ à UNIX-MIM1 52/62

53 Gestion des processus, II Le role de fork est de faire une copie du processus courant. Il faut cependant un processus non copié, le processus 1, init. fork() retourne une fois chez l original et une fois chez la copie, avec des valeurs différentes. A part cette valeur les mémoires de l original et de la copie sont identiques (y compris la mémoire cachée portes, etc). UNIX-MIM1 53/62

54 Gestion des processus, III ==0 copie exit(0) original fork()!=0 original wait(&r); original UNIX-MIM1 54/62

55 Gestion des processus : exec Il est impossible d en rester là, sans quoi on exécuterait toujours le même programme, ou bien il faudrait compiler tous les programmes en un seul. Il existe une primitive de changement de programme, execve, avec d autres variantes. Le programme en cours est détruit ; il est remplacé par le programme contenu dans le fichier argument. execvp est presque toujours invoqué depuis un processus copie. char *argv[] = {"/home/pfeautri/programme", "debug", NULL}; char *envp[] = {"HOME=/home/pfeautri","EDITOR=emacs",..., NULL}; if(fork()){ if(execve("programme", argv, envp) < 0){ perror("programme"); exit(1); } } else wait(&r);... Le test du résultat de execve est inutile, parce qu on ne revient pas d un execve réussi. Par contre, exit est indispensable. UNIX-MIM1 55/62

56 Un exemple On peut se demander pourquoi avoir deux primitives fork et exec. Entre le retour du fork et le début de exec, on peut manipuler le contexte du processus copie. Par exemple, on veut faire exécuter depuis un programme C la commande ls, mais on veut récupérer les résultats de ls dans un fichier tmp. On effectue un fork. Dans le processus copie, on ouvre tmp et on s arrange pour qu il soit connecté au port 1. On provoque l exécution de ls. Ce programme écrit ses résultats à travers le port 1, c est-à-dire dans le fichier tmp. Dans le processus original, on attend que ls soit terminé puis on exploite le résultat. UNIX-MIM1 56/62

57 Le code #include <unistd.h> #include <sys/types.h> #include <wait.h> #include <fcntl.h> #include <sys/stat.h> char *argv[] = {"ls", NULL}; int tmp; struct stat x; main(void){ if(fork() == 0) { tmp = open("tmp", O_WRONLY O_TRUNC O_CREAT, 0600); if(tmp < 0) { perror("tmp"); exit(0); } if(dup2(tmp, 1)<0) perror("dup2"); close(tmp); execve("/bin/ls", argv, NULL); exit(0); } else { wait(null); if(tmp = open("tmp", O_RDONLY)<0) perror("tmp"); /* utilisation du fichier */ close(tmp); } } UNIX-MIM1 57/62

58 Compilation modulaire, pourquoi? On découpe le programme en modules (= fichiers) qui peuvent être compilés séparémment. Diminue le temps de compilation. En cas d erreur, et si le programme est bien organisé, on ne recompile que le module fautif. Mais il faut figer très tôt les interfaces entre modules. Permet la programmation multi-langage. C-Fortan : les compilateurs de ces deux langages sont en général compatibles. Il suffit pour les faire cohabiter de savoir que les arguments en Fortran sont toujours des pointeurs. C-Assembleur, toujours possible. Amélioration des performances, gestion de dispositifs spéciaux. UNIX-MIM1 58/62

59 Compilation modulaire, règles en C il n y a pas de transmission d information entre phases de compilation (c.f. Ada, Ocaml). Chaque module doit être complet. Toute variable ou fonction doit être déclarée. Fonction : on donne l en-tête mais pas le corps de la fonction. float power(float x, int n); float power(float, int); Variable : mot clef extern, il n est pas nécessaire de donner les valeurs initiales ou les dimensions des tableaux. Ce schéma entraine de la duplication de code. Assistance du préprocesseur : #include "defs.h" UNIX-MIM1 59/62

60 Mécanismes import f f(...); export f Tout fichier.o comporte du code binaire incomplet et une table import/export. ld f(...){... } L éditeur de lien fabrique un code binaire où les importations sont satisfaites par les exportations. Les importations non satisfaites sont recherchées dans des bibliothèques. f(...); f(...){... } Il peut signaler des doubles exportations, ou des importations non statisfaites. UNIX-MIM1 60/62

61 Le préprocesseur, rappels Importation de texte : #include <stdlib.h> #include "defs.h" Définition de constantes : #define BSIZE 1024 Attention, aucun espace mémoire n est réservé pour BSIZE. Définition de macro-instructions : #define max(x,y) ((x) >= (y)? (x) : (y)) Une macro-instruction n est pas une fonction. Compilation conditionelle : #ifdef DEBUG printf("x = %d, y = %d\n", x, y); #endif UNIX-MIM1 61/62

62 make pi.h cercle.c peri.c surf.c gcc gcc gcc cercle.o peri.o surf.o (ld) gcc cercle L application est représentée par un graphe biparti : les fichiers et les outils qui les fabriquent. En cas de modification, make provoque la recréation du minimum de fichier. UNIX-MIM1 62/62

Programmation système de commandes en C

Programmation système de commandes en C Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Cours 6 : Tubes anonymes et nommés

Cours 6 : Tubes anonymes et nommés Cours 6 : Tubes anonymes et nommés Mécanisme de communications du système de fichiers I-node associé. Type de fichier: S_IFIFO. Accès au travers des primitives read et write. Les tubes sont unidirectionnels

Plus en détail

GESTION DES FICHIERS C/UNIX

GESTION DES FICHIERS C/UNIX Licence IG Page 1 sur 6 GESTION DES FICHIERS C/UNIX Introduction Deux modes d appel - Par la bibliothèque standard C (appel de haut niveau) - Par appels système (bas niveau) Nécessite les includes suivant

Plus en détail

Le système de gestion des fichiers, les entrées/sorties.

Le système de gestion des fichiers, les entrées/sorties. Le système de gestion des fichiers, les entrées/sorties. Luigi Santocanale Laboratoire d Informatique Fondamentale, Centre de Mathématiques et Informatique, 39, rue Joliot-Curie - F-13453 Marseille 19

Plus en détail

3IS - Système d'exploitation linux - Programmation système

3IS - Système d'exploitation linux - Programmation système 3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Programmation système en C/C++

Programmation système en C/C++ Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous

Plus en détail

Les processus. Système L3, 2014-2015 1/39

Les processus. Système L3, 2014-2015 1/39 Les processus Système L3, 2014-2015 1/39 Les processus Processus = Instance d un programme en cours d exécution plusieurs exécutions de programmes plusieurs exécutions d un même programme plusieurs exécutions

Plus en détail

Programmation impérative

Programmation impérative Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des

Plus en détail

Cours de Système : Gestion de Fichiers

Cours de Système : Gestion de Fichiers Cours de Système : Gestion de Fichiers Bertrand Le cun et Emmanuel Hyon bertrand.le cun{at}u-paris10.fr et Emmanuel.Hyon{at}u-paris10.fr Université Paris Ouest Nanterre 25 octobre 2011 B.L.C. & E.H. (UPO)

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing 3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail

Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Finalités Archivage Messagerie Evolution pour usage HTML en utilisant Hypermail Réalisé par sa modestie Arnaud de VILLEDON de NAIDE, le 9 mars 2013 Document sous licence GPL. Vous avez le droit d'en faire

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

Outils pour la pratique

Outils pour la pratique Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.

Plus en détail

Introduction aux Systèmes et aux Réseaux

Introduction aux Systèmes et aux Réseaux Introduction aux Systèmes et aux Réseaux Cours 5 Processus D après un cours de Julien Forget (univ Lille1) Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI -

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers. I Présentation : Dans le chapitre 1, nous avons vu comment utiliser les appels-systèmes de bas niveau pour créer et accéder à des fichiers sur le disque. Nous avons notamment mis en évidence leur dépouillement

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de

Plus en détail

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran)  Processus = suite d'actions = suite d'états obtenus = trace Processus 1) Contexte 2) Modèles de Notion de Points de vue Modèle fourni par le SX Opérations sur les 3) Gestion des Représentation des Opérations 4) Ordonnancement des Niveaux d ordonnancement Ordonnancement

Plus en détail

Programmation en langage C

Programmation en langage C Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Programmation C. J.-F. Lalande. 15 novembre 2012

Programmation C. J.-F. Lalande. 15 novembre 2012 Programmation C J.-F. Lalande novembre 0 Ce cours est mis à disposition par Jean-François Lalande selon les termes de la licence Creative Commons Attribution - Pas d Utilisation Commerciale - Partage à

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 1 : La gestion dynamique de la mémoire Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement

Plus en détail

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique

TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Communications entre Processus Communication par tubes. TRAVAUX PRATIQUES Programmation Système Langage C / Système UNIX. 2 e année Génie Informatique Exemple 1: On a deux processus Père/Fils. Le père

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SYSTÈME DE GESTION DE FICHIERS - DISQUE 1 Les couches logiciels réponse requête Requêtes E/S Système E/S Pilote E/S Interruptions utilisateur traitement S.E. commandes S.E. S.E. matériel Contrôleur E/S

Plus en détail

LEs processus coopèrent souvent pour traiter un même problème. Ces

LEs processus coopèrent souvent pour traiter un même problème. Ces Chapitre 5 Communication interprocessus LEs processus coopèrent souvent pour traiter un même problème. Ces processus s exécutent en parallèle sur un même ordinateur (monoprocesseur ou multiprocesseurs)

Plus en détail

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression

Plus en détail

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique. École Polytechnique de Montréal Département de Génie Informatique et Génie Logiciel Cours INF2610 Contrôle périodique Automne 2013 Date : 11 octobre 2013 de 18h à 20h Professeur : Boucheneb Hanifa Documentation

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece

Plus en détail

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Qu'est-ce qu'un processus: Définitions

Qu'est-ce qu'un processus: Définitions Version septembre 2013 N 187 Qu'est-ce qu'un processus: Définitions Instruction = indécomposable et indivisible Processeur =... Processus = suite temporelle d'exécutions d'instructions Processus = exécution

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

TP3 : Manipulation et implantation de systèmes de fichiers 1

TP3 : Manipulation et implantation de systèmes de fichiers 1 École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande

Plus en détail

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr 6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure

Plus en détail

Les débordements de tampons et les vulnérabilités de chaîne de format 1

Les débordements de tampons et les vulnérabilités de chaîne de format 1 Les débordements de tampons et les vulnérabilités de chaîne de format 1 Patrice Lacroix Groupe LSFM Département d informatique et de génie logiciel Université Laval 18 décembre 2002 1 Cette recherche a

Plus en détail

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables

Plus en détail

Compression de Données - Algorithme de Huffman Document de Conception

Compression de Données - Algorithme de Huffman Document de Conception ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs

Plus en détail

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE C.Crochepeyre MPS_SGF 2000-20001 Diapason 1 Les couches logiciels réponse SGF requête matériel matériel Requêtes E/S Système E/S Pilote E/S Interruptions Contrôleur

Plus en détail

Initiation. àl algorithmique et à la programmation. en C

Initiation. àl algorithmique et à la programmation. en C Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,

Plus en détail

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Exercice sur les Dockers

Exercice sur les Dockers Exercice sur les Dockers Les parties composant les Dockers: 1 docker daemon: est un démon qui gère les dockers (les conteneurs LXC) qui tournent sur la machine hôte 2 docker CLI: une série de commandes

Plus en détail

COMPARAISONDESLANGAGESC, C++, JAVA ET

COMPARAISONDESLANGAGESC, C++, JAVA ET REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY

Plus en détail

UE Programmation Impérative Licence 2ème Année 2014 2015

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Introduction aux Systèmes et aux Réseaux, Master 2 CCI

Introduction aux Systèmes et aux Réseaux, Master 2 CCI aux Systèmes et aux Réseaux, Master 2 CCI Cours 1 : Introduction et contexte Unix/Linux Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI - Université Lyon 1 -

Plus en détail

Année 2007. Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

Année 2007. Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique Année 2007 Cours Unix-Shell par Karam ALLALI Ecole Spéciale d Informatique Table des matières 1 Introduction. 5 1.1 Historique.................................... 6 1.2 Système d exploitation.............................

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Arguments d un programme

Arguments d un programme Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1

Plus en détail

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille PRESENTATION RESSOURCES Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille 1) Introduction, Objectifs et Intentions Le BTS SN (Systèmes Numériques) intègre la formation

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Méthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~18 + 1 cours de 3 heures)

Méthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~18 + 1 cours de 3 heures) Méthodes de programmation systèmes UE n NSY103 Notes de cours Code de l UE : NSY103 Titre de la formation : Méthodes de programmation systèmes Ouvert : Ouvert Type de diplôme : Unité de valeur CNAM. Nombre

Plus en détail

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval

Programmation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval École Nationale Supérieure de Techniques Avancées Programmation en C Pierre-Alain Fouque et David Pointcheval E-mail : Pierre-Alain.Fouque@ens.fr Web : http://www.di.ens.fr/~fouque/ Table des matières

Plus en détail

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.)

HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.) SYSTEME Chapitre 1 HISTORIQUE DES SYSTEMES D'EXPLOITATION (S.E.) Ce qu'est un S.E. = partie intelligente d'un système donné. Les S.E. ont évolué au fil des années. Ils dépendent de l'architecture des ordinateurs

Plus en détail

Claude Delannoy. 3 e édition C++

Claude Delannoy. 3 e édition C++ Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.

Plus en détail

Introduction à la Programmation Parallèle: MPI

Introduction à la Programmation Parallèle: MPI Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4

Plus en détail

Cours Langage C/C++ Programmation modulaire

Cours Langage C/C++ Programmation modulaire Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

ALGORITHMIQUE ET PROGRAMMATION En C Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2

Plus en détail

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Unix/Linux I. 1 ere année DUT. Université marne la vallée Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins

Plus en détail

Programmation Classique en langage C

Programmation Classique en langage C DI GALLO Frédéric Programmation Classique en langage C Cours du Cycle d Approfondissement CNAM ANGOULEME 2000-2001 DI GALLO Frédéric Page 1 01/04/01 PROGRAMMATION CLASSIQUE : LANGAGE C DI GALLO Frédéric

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS CCS Sommaire Généralités sur le langage. 2 Structure d un programme en C.. 3 Les constantes et équivalences.. 4 Les variables...

Plus en détail

Système de Gestion de Fichiers

Système de Gestion de Fichiers Chapitre 2 Système de Gestion de Fichiers Le système de gestion de fichiers est un outil de manipulation des fichiers et de la structure d arborescence des fichiers sur disque et a aussi le rôle sous UNIX

Plus en détail

Programmation défensive

Programmation défensive Programmation défensive Matthieu Herrb INSA Toulouse, Novembre 2012 http://homepages.laas.fr/matthieu/cours/mh-prog-defensive.pdf Licence Ce document est sous licence Creative Commons Paternité - Partage

Plus en détail

INITIATION A LA PROGRAMMATION

INITIATION A LA PROGRAMMATION 2004-2005 Université Paris Dauphine IUP Génie Mathématique et Informatique INITIATION A LA PROGRAMMATION PROCEDURALE, A L'ALGORITHMIQUE ET AUX STRUCTURES DE DONNEES PAR LE LANGAGE C Maude Manouvrier La

Plus en détail

Premiers pas en Linux

Premiers pas en Linux Premiers pas en Linux 1 Bref historique Linux Système d'exploitation créé en 1991. Par Linus Torvalds un étudiant nlandais. Développé et amélioré par des centaines de spécialistes dans le monde. Particularité

Plus en détail

PLAN Introduction à UNIX Patrick Fuchs Dynamique des Structures et Interactions des Macromolécules Biologiques Université Paris Diderot patrick.fuchs@univ-paris-diderot.fr 2 PLAN Système d'exploitation

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre info@academielibre.fr

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre info@academielibre.fr Cours Linux Cours en ligne Administrateur Systèmes Linux Académie Libre info@academielibre.fr Programme général du cours Linux MODULE 1 - Fondamentaux Introduction à Linux La procédure de Login et Logout

Plus en détail

I00 Éléments d architecture

I00 Éléments d architecture I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,

Plus en détail

Les attaques par corruption de mémoire Synopsis Mickael Deloison 22/10/2008

Les attaques par corruption de mémoire Synopsis Mickael Deloison 22/10/2008 Les attaques par corruption de mémoire Synopsis Ce document traite des failles permettant des attaques par corruption de mémoire, les attaques par buffer overflow (dépassement de buffer) étant les plus

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail