\doxysection{src/exec.h File Reference} \hypertarget{exec_8h}{}\label{exec_8h}\index{src/exec.h@{src/exec.h}} {\ttfamily \#include "{}disk.\+h"{}}\newline {\ttfamily \#include "{}env.\+h"{}}\newline {\ttfamily \#include "{}utils.\+h"{}}\newline {\ttfamily \#include $<$stdio.\+h$>$}\newline {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include $<$unistd.\+h$>$}\newline {\ttfamily \#include $<$stdlib.\+h$>$}\newline {\ttfamily \#include $<$sys/wait.\+h$>$}\newline {\ttfamily \#include $<$ctype.\+h$>$}\newline Include dependency graph for exec.\+h\+: % FIG 0 This graph shows which files directly or indirectly include this file\+: % FIG 1 \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item int \mbox{\hyperlink{exec_8h_a82beace5b13f7e2d89dae34187bb7f46}{execute\+\_\+cmd}} (\mbox{\hyperlink{structdisk}{disk}} \texorpdfstring{$\ast$}{*}d, \mbox{\hyperlink{structcommand}{command}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}args) \begin{DoxyCompactList}\small\item\em Point d\textquotesingle{}entrée principal pour l\textquotesingle{}orchestration, le pipelining et l\textquotesingle{}exécution d\textquotesingle{}une ligne de commande. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Function Documentation} \Hypertarget{exec_8h_a82beace5b13f7e2d89dae34187bb7f46}\label{exec_8h_a82beace5b13f7e2d89dae34187bb7f46} \index{exec.h@{exec.h}!execute\_cmd@{execute\_cmd}} \index{execute\_cmd@{execute\_cmd}!exec.h@{exec.h}} \doxysubsubsection{\texorpdfstring{execute\_cmd()}{execute\_cmd()}} {\footnotesize\ttfamily int execute\+\_\+cmd (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structdisk}{disk}} \texorpdfstring{$\ast$}{*}}]{d, }\item[{\mbox{\hyperlink{structcommand}{command}} \texorpdfstring{$\ast$}{*}\texorpdfstring{$\ast$}{*}}]{args }\end{DoxyParamCaption})} Point d\textquotesingle{}entrée principal pour l\textquotesingle{}orchestration, le pipelining et l\textquotesingle{}exécution d\textquotesingle{}une ligne de commande. Gère de bout en bout le cycle de vie d\textquotesingle{}une instruction du Shell \+: \begin{DoxyEnumerate} \item Intercepte en priorité la commande intégrée {\ttfamily cd}. \item Gère la déconnexion de l\textquotesingle{}utilisateur (Ctrl+D). \item Organise l\textquotesingle{}enchaînement séquentiel de n-\/commandes via des tubes anonymes ({\ttfamily pipe}). \item Configure l\textquotesingle{}interception finale si une redirection de flux sortant vers un fichier ({\ttfamily \texorpdfstring{$>$}{>}} ou {\ttfamily \texorpdfstring{$>$}{>}\texorpdfstring{$>$}{>}}) est détectée. \item Bloque le parent jusqu\textquotesingle{}à la fin de l\textquotesingle{}exécution de l\textquotesingle{}intégralité des sous-\/processus créés. \end{DoxyEnumerate} \begin{DoxyParams}{Parameters} {\em d} & Pointeur vers le disque virtuel. \\ \hline {\em args} & Tableau de pointeurs vers des structures {\ttfamily command} à exécuter en chaîne (Pipeline). Terminée par NULL. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} int Statut de sortie final obtenu via {\ttfamily waitpid()}. \end{DoxyReturn}