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
|
||||
les données qui le traversent. Pour bien comprendre, le mieux,
|
||||
|
@ -336,14 +336,21 @@ $
|
|||
\end{verbatim}
|
||||
|
||||
Vous voulez un autre exemple ? En voici un, parfois utile pour des
|
||||
simulations de terminal de \textsl{h4ck3rZ}\footnote{texte vert ou
|
||||
orange sur fond noir de rigueur.} sur une ligne en boucle de
|
||||
simulations de terminal de \textsl{tipiak}\footnote{Le texte vert ou
|
||||
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
|
||||
en série Z.
|
||||
|
||||
\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
|
||||
utilisés et les usages possibles d'un tel filtre,
|
||||
il faut voir le concept de pipeline du shell en
|
||||
|
@ -684,6 +691,47 @@ types of devices.
|
|||
% 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}
|
||||
|
@ -693,7 +741,8 @@ divers comme Open Sound Control (page \pageref{chap:OSC}) ou
|
|||
libsndfile (page \pageref{chap:son}).
|
||||
Et pour les gens du système~:
|
||||
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