add advanced section
This commit is contained in:
parent
b1ebd390b4
commit
f53ee92b02
59
chap/C.tex
59
chap/C.tex
@ -311,7 +311,7 @@ int fprintf(FILE *stream, const char *format, ...);
|
|||||||
|
|
||||||
% =========================================================
|
% =========================================================
|
||||||
|
|
||||||
\section{Un filtre Unix}\label{filtre-unix}
|
\section{Quelques filtres Unix}\label{filtre-unix}
|
||||||
|
|
||||||
Ce qu'on appelle un "filtre" est un logiciel destiné à transformer
|
Ce qu'on appelle un "filtre" est un logiciel destiné à transformer
|
||||||
les données qui le traversent. Pour bien comprendre, le mieux,
|
les données qui le traversent. Pour bien comprendre, le mieux,
|
||||||
@ -336,14 +336,21 @@ $
|
|||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Vous voulez un autre exemple ? En voici un, parfois utile pour des
|
Vous voulez un autre exemple ? En voici un, parfois utile pour des
|
||||||
simulations de terminal de \textsl{h4ck3rZ}\footnote{texte vert ou
|
simulations de terminal de \textsl{tipiak}\footnote{Le texte vert ou
|
||||||
orange sur fond noir de rigueur.} sur une ligne en boucle de
|
orange sur fond noir est de rigueur.} sur une ligne en boucle de
|
||||||
courant à 300 Bauds, le tout pour un film que l'on souhaite classable
|
courant à 300 Bauds, le tout pour un film que l'on souhaite classable
|
||||||
en série Z.
|
en série Z.
|
||||||
|
|
||||||
\lstinputlisting[language=c]{code/C/slowprint.c}
|
\lstinputlisting[language=c]{code/C/slowprint.c}
|
||||||
|
% \vspace{2em}
|
||||||
|
|
||||||
|
Vous prendrez bien soin de contempler le traitement d'un éventuel
|
||||||
|
paramètre passé par la ligne de commande,
|
||||||
|
et surtout le calcul alambiqué\footnote{On doit quand même
|
||||||
|
pouvoir faire plus clair\dots}
|
||||||
|
pour convertir une vitesse en Bauds à un délay acceptable
|
||||||
|
par \texttt{nanosleep(2)}.
|
||||||
|
|
||||||
\vspace{2em}
|
|
||||||
Pour une explication plus détaillée sur les mécanismes
|
Pour une explication plus détaillée sur les mécanismes
|
||||||
utilisés et les usages possibles d'un tel filtre,
|
utilisés et les usages possibles d'un tel filtre,
|
||||||
il faut voir le concept de pipeline du shell en
|
il faut voir le concept de pipeline du shell en
|
||||||
@ -684,6 +691,47 @@ types of devices.
|
|||||||
% XXX EXEMPLE TROP MINIMALISTE !!!
|
% XXX EXEMPLE TROP MINIMALISTE !!!
|
||||||
%
|
%
|
||||||
|
|
||||||
|
% =========================================================
|
||||||
|
%
|
||||||
|
% Message-ID: <ur80s3$677$1@dont-email.me>
|
||||||
|
%
|
||||||
|
\section{Advanced}
|
||||||
|
|
||||||
|
Direct from Usenet (\texttt{comp.lang.c}):
|
||||||
|
\textsl{I did an experiment where is possible to create "sets" of warnings.}
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
#define SAFE_REGION \
|
||||||
|
_Pragma("GCC diagnostic push") \
|
||||||
|
_Pragma("GCC diagnostic error \"-Wenum-compare\"")\
|
||||||
|
_Pragma("GCC diagnostic error \"-Wparentheses\"")\
|
||||||
|
_Pragma("GCC diagnostic error \"-Wuninitialized\"")
|
||||||
|
#define RESTORE \
|
||||||
|
_Pragma("GCC diagnostic pop")
|
||||||
|
enum E1 { A };
|
||||||
|
enum E2 { B };
|
||||||
|
SAFE_REGION
|
||||||
|
int main() {
|
||||||
|
int a, b;
|
||||||
|
if (a = b){}
|
||||||
|
if (A == B){}
|
||||||
|
}
|
||||||
|
RESTORE
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
\begin{quote}
|
||||||
|
J'avoue avoir mis un certain temps à capter. Je vais attendre
|
||||||
|
le \textsl{follow-up} de Bart pour avoir confirmation.
|
||||||
|
\end{quote}
|
||||||
|
% =========================================================
|
||||||
|
|
||||||
|
\section{La suite?}
|
||||||
|
|
||||||
|
% Message-ID: <657f1dd4$0$10079$426a74cc@news.free.fr>
|
||||||
|
% NNTP-Posting-Date: 17 Dec 2023 17:12:04 CET
|
||||||
|
|
||||||
|
Étudier les différents modêles de mémoire partagée.
|
||||||
|
|
||||||
% =========================================================
|
% =========================================================
|
||||||
|
|
||||||
\section{Ailleurs dans cet ouvrage}
|
\section{Ailleurs dans cet ouvrage}
|
||||||
@ -693,7 +741,8 @@ divers comme Open Sound Control (page \pageref{chap:OSC}) ou
|
|||||||
libsndfile (page \pageref{chap:son}).
|
libsndfile (page \pageref{chap:son}).
|
||||||
Et pour les gens du système~:
|
Et pour les gens du système~:
|
||||||
l'utilisation des signaux (page \pageref{get-signal}),
|
l'utilisation des signaux (page \pageref{get-signal}),
|
||||||
le chargement dynamique d'un \textsl{plug-in} (page \pageref{ex_dlopen}).
|
le chargement dynamique d'un \textsl{plug-in} (page \pageref{ex_dlopen}),
|
||||||
|
les \texttt{ioctl}, \dots
|
||||||
|
|
||||||
|
|
||||||
% =========================================================
|
% =========================================================
|
||||||
|
Loading…
Reference in New Issue
Block a user