PDF Archive

Easily share your PDF documents with your contacts, on the Web and Social Networks.

Share a file Manage my documents Convert Recover PDF Search Help Contact



manuel d 30 12 14 TIG .pdf


Original filename: manuel_d-30-12-14-TIG.pdf

This PDF 1.5 document has been generated by TeX / MiKTeX pdfTeX-1.40.14, and has been sent on pdf-archive.com on 30/12/2014 at 14:09, from IP address 163.5.x.x. The current document download page has been viewed 447 times.
File size: 83 KB (6 pages).
Privacy: public file




Download original PDF file









Document preview


UNIX
Programmation
et communication
Jean-Marie Rifflet
Professeur
Universit´e Paris 7 - Denis Diderot

Jean-Baptiste Yun`
es
Maˆıtre de conf´erence
Universit´e Paris 7 - Denis Diderot

DUNOD

Table des mati`
eres
1 Le langage C
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . .
1.2 G´en´eralit´es . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Le langage . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 G´en´eralit´es . . . . . . . . . . . . . . . . . . . .
1.3.2 Types . . . . . . . . . . . . . . . . . . . . . . .
1.3.3 Op´erateurs et expressions . . . . . . . . . . . .
1.3.4 Instructions et structures de contrˆole . . . . . .
1.3.5 Fonctions . . . . . . . . . . . . . . . . . . . . .
1.3.6 Classes d’allocation/Visibilit´e des identificateurs
1.3.7 Qualificatifs sp´eciaux . . . . . . . . . . . . . . .
1.4 La biblioth`eque standard . . . . . . . . . . . . . . . . .
1.4.1 Les entr´ees-sorties standard C . . . . . . . . . .
1.4.2 Les assertions . . . . . . . . . . . . . . . . . . .
1.4.3 Les chaˆınes de caract`eres . . . . . . . . . . . . .
1.4.4 Les fonctions math´ematiques . . . . . . . . . . .
1.4.5 L’allocation dynamique . . . . . . . . . . . . . .
1.4.6 La terminaison . . . . . . . . . . . . . . . . . .
1.4.7 Les listes variables d’arguments . . . . . . . . .
1.5 C - POSIX . . . . . . . . . . . . . . . . . . . . . . . . .

3

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

4
4
5
5
5
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7

Chapitre 1
Le langage C
1.1

Introduction

Le langage C est intimement li´e au syst`eme Unix, mˆeme si aujourd’hui on peut
constater que son utilisation a largement d´epass´e le cadre de la proframmation
syst`eme puisqu’on en trouve de tr`es nombreux adeptes en dehors du monde Unix. Il a
´et´e cr´e´e pour faciliter le d´eveloppement du noyau et des diff´erents outils du syst`eme
Unix. En effet, nombre de ses caract´eristiques sont tr`es orient´ees machine , ce
qui ne fait pas de lui un langage tr`es haut niveau, certains consid´erant mˆeme qu’il
remplace les langages d’assemblage d’hier.
S’il permet par exemple une gestion fine de la m´emoire (manipulation des bits, des
octets, etc.) ainsi qu’une arithm´etique sur les pointeurs (essentiellement des adresses
typ´ees), il autorise aussi la construction de structures de donn´ees comme tout langage de haut niveau.
Il faut aussi remarquer que le langage ne comporte aucun m´ecanisme d’entr´ees-sorties
ni d’allocation dynamique. Ces op´erations sont r´ealis´ees `a un autre niveau : par appel
a` des fonctions de biblioth`eque (il existe par ailleurs une biblioth`eque standard C),
ou par appels syst`eme (par exemple API POSIX).
Le langage est normalis´e depuis 1989, sa d´enomination la plus commune est ANSIC ou C89 et fait r´ef´erence a` son adoption en 1989 sous le num´ero X3.159-1989
par le comit´e X3J11 de l’ANSI (American National Standards Institute). On parle
aussi de l’ISO-C : ce n’est que l’adoption internationale du standard de l’ANSI de
r´ef´erence ISO/IEC 9899-1990. La version primitive du langage est commun´ement
appel´ee K&R-C (Pour Kernighan and Ritchie C, les inventeurs de ce langage) : on
s’interdira autant que possible de l’employer.
Le but de ce chapitre est de pr´esenter rapidement les quelques points essentiels
du langage devant permettre une lecture facilit´ee des exemples de cet ouvrage. Il ne
s’agit en aucun cas d’un cours de C : pour cela il vaut mieux se reporter a` la tr`es
abondante litt´erature disponible `a ce sujet.
4

1.2


en´
eralit´
es

Un programme C se pr´esente sous la forme d’une collection d’objets externes
(fonctions et variables) dont la d´efinition est ´eventuellement donn´ee dans des fichiers s´epar´es. Chaque objet manipul´e par un programme doit ˆetre d´eclar´e et ce
conform´ement a` sa d´efinition. Les objets sont nomm´es et typ´es. Les fonctions ne font
pas exception a` cette r`egle (les param`etres formels sont typ´es).
Les d´efinitions sont habituellement ´ecrites dans des fichiers sources d’extension
.c et les d´eclarations dans des fichiers d’en-tˆ
ete d’extension .h (voir 9.2).
Le compilateur constuit `a partir de ces fichiers des modules d’objets (code machine non ex´ecutable directement dans le syst`eme) d’extension .o correspondant.
l’´
editeur de liens est alors charg´e de construire, a` partir de modules objets (´eventuellement
extraits de biblioth`eques, voir 9.5), un binaire ex´
ecutable. Pour cela, partant du
point d’entr´ee du programme (normalement la fonction main) il cherche a` retrouver,
a` importer, puis `a lier l’ensemble des objets atteignables. La clˆoture conduit ) la
production de l’ex´ecutable.
Sans rien d´etailler (pour cela se reporter au chapitre 9), nous pouvons simplement
indiquer que la commande :
g cc −o prog prog . c f . c g . o −lm
permet de construire le binaire de nom prog `a partir des fichiers sources prog.c et
f.c, du module objet (d´ej`a compil´e) de nom g.o et d’une biblioth`eque de nom libm.a,
libm.so ou libm.sl localis´ee dans le r´epertoire /lib ou /usr/lib selon les syst`emes.

1.3

Le langage

1.3.1


en´
eralit´
es

Commentaires
Comme tout langage, le C autorise la mise en commentaire de certaines parties
d´elimit´ees des sources. La seule forme normalis´ee consiste en une suite de caract`eres
quelconques commen¸cant par /* et se terminant par */. Attention, car la d´efinition
indique qu’ils ne peuvent ˆetre imbriqu´es. L’autre forme (non normalis´ee en C mais
en C++) et d’emploi tr`es courant est celle autoris´ee par l’outil gcc, a` savoir // qui
d´ebute un commentaire se terminant simplement `a la fin de la ligne courante.

Identificateurs

Un identificateur permet de r´ef´erencer un objet (variable ou fonction) ou de
d´esigner des types. Il peut ˆetre form´e d’une suite de longueur quelconque de caract`eres alphanum´eriques et du caract`ere , sachant qu’il ne doit pas commencer par
un chiffre, par exemple bidule 23. On notera la diff´erenciation faite entre caract`eres
majuscules et minuscules. Les identificateurs commen¸cant par le caract`ere sont en
g´en´eral r´eserv´es, il vaut mieux s’abstenir d’en d´efinir soi-mˆeme.

Mots r´
eserv´
es du langage

Un certain nombre de mots ont un sens particulier dans le langage et sont donc
interdits d’utilisation en dehors de leur contexte pr´ed´efini (il est notamment interdit
de les employer comme identificateurs). En voici la liste :

1.3.2

Types

1.3.3

Op´
erateurs et expressions

1.3.4

Instructions et structures de contrˆ
ole

1.3.5

Fonctions

1.3.6

Classes d’allocation/Visibilit´
e des identificateurs

1.3.7

Qualificatifs sp´
eciaux

1.4

La biblioth`
eque standard

1.4.1

Les entr´
ees-sorties standard C

1.4.2

Les assertions

1.4.3

Les chaˆınes de caract`
eres

1.4.4

Les fonctions math´
ematiques

1.4.5

L’allocation dynamique

1.4.6

La terminaison

1.4.7

Les listes variables d’arguments

1.5

C - POSIX


Related documents


manuel d 30 12 14 tig
2 basesjavadebut
chap1 papier
main
1 introjava
chapitre 2 principes des systemes d exploitation


Related keywords