add advanced section

This commit is contained in:
tTh 2024-02-22 20:08:21 +01:00
parent b1ebd390b4
commit f53ee92b02

View File

@ -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
% ========================================================= % =========================================================