Hello C
This commit is contained in:
parent
fb0fbed34c
commit
b40e73ba5c
3
.gitignore
vendored
3
.gitignore
vendored
@ -17,6 +17,9 @@ code/a.out
|
|||||||
code/foo
|
code/foo
|
||||||
code/thread-demo
|
code/thread-demo
|
||||||
code/ex_curses
|
code/ex_curses
|
||||||
|
code/hello
|
||||||
|
code/arguments
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
56
chap/C.tex
Normal file
56
chap/C.tex
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
\chapter{Langage C}
|
||||||
|
\label{C}\index{C}
|
||||||
|
|
||||||
|
Un chapitre un peu particulier, puisque c'est le début d'une
|
||||||
|
initiation au langage C pour les non-codeurs qui souhaitent
|
||||||
|
rentrer dans le sujet à la dure.
|
||||||
|
|
||||||
|
% ---------------------------------------------------------
|
||||||
|
|
||||||
|
\section{Hello World}
|
||||||
|
|
||||||
|
Hop, on y va...
|
||||||
|
|
||||||
|
Le tout début d'un programme en C est l'appel par
|
||||||
|
le \textsl{runtime} d'une fonction
|
||||||
|
nommée \texttt{main} qui reçoit deux paramètres
|
||||||
|
dont l'utilisation est décrite un peu plus bas.
|
||||||
|
|
||||||
|
\lstinputlisting[language=c]{code/hello.c}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Voila, c'est fait. Nous savons dire bonjour au monde.
|
||||||
|
Point suivant~: dire boujour à quelqu'un d'autre. Et pour
|
||||||
|
cela il nous fait récupérer un argument depuis la ligne
|
||||||
|
de commande.
|
||||||
|
|
||||||
|
% ---------------------------------------------------------
|
||||||
|
|
||||||
|
\section{Arguments}
|
||||||
|
|
||||||
|
Expliquons maintenant les deux paramètres
|
||||||
|
\texttt{argc} et \texttt{argv}.
|
||||||
|
|
||||||
|
Le premier est le nombre de "mots" détectés par l'interpréteur
|
||||||
|
de commande qui va lancer votre proggy, et le second est
|
||||||
|
un tableau contenant ces différents mots.
|
||||||
|
|
||||||
|
\lstinputlisting[language=c]{code/arguments.c}
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
$ ./arguments un deux "trois quatre"
|
||||||
|
0 ./arguments.
|
||||||
|
1 un.
|
||||||
|
2 deux.
|
||||||
|
3 trois quatre.
|
||||||
|
$
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
|
||||||
|
% ---------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -10,3 +10,8 @@ ex_curses: ex_curses.c Makefile
|
|||||||
thread-demo: thread-demo.c Makefile
|
thread-demo: thread-demo.c Makefile
|
||||||
gcc -Wall -pthread $< -o $@
|
gcc -Wall -pthread $< -o $@
|
||||||
|
|
||||||
|
hello: hello.c Makefile
|
||||||
|
gcc -Wall $< -o $@
|
||||||
|
|
||||||
|
arguments: arguments.c Makefile
|
||||||
|
gcc -Wall $< -o $@
|
||||||
|
16
code/arguments.c
Normal file
16
code/arguments.c
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* afficher les arguments.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int foo;
|
||||||
|
|
||||||
|
for (foo=0; foo<argc; foo++) {
|
||||||
|
printf("%3d %s\n", foo, argv[foo]);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -1,6 +1,11 @@
|
|||||||
|
/*
|
||||||
|
* Hello, Sun.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
printf("Hello world.\n");
|
printf("hello world.\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
1
main.tex
1
main.tex
@ -118,6 +118,7 @@ en ligne sur le site du Tetalab. Your mileage may vary\dots
|
|||||||
\input{chap/GMP}
|
\input{chap/GMP}
|
||||||
\input{chap/Python}
|
\input{chap/Python}
|
||||||
\input{chap/dino}
|
\input{chap/dino}
|
||||||
|
\input{chap/C.tex}
|
||||||
\input{chap/textes}
|
\input{chap/textes}
|
||||||
\input{chap/MINITEL}
|
\input{chap/MINITEL}
|
||||||
\input{chap/Raspberry}
|
\input{chap/Raspberry}
|
||||||
|
Loading…
Reference in New Issue
Block a user