arguments
\documentclass[beamer, 10pt]{standalone}
\usepackage{bookmark}
\usepackage{tikz}
\usepackage{tikz-cd}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{matrix}
\usetikzlibrary{shapes.multipart}
\usetikzlibrary{positioning}
\definecolor{amaranth}{rgb}{0.9,0.17,0.31}
\tikzset{global scale/.style={
scale=#1,
every node/.style={scale=#1}
}
}
\newcommand{\tikzmark}[3][]{
\ifmmode
\tikz[remember picture,baseline=(#2.base)] \node [inner sep=0pt,#1](#2) {$#3$};
\else
\tikz[remember picture,baseline=(#2.base)] \node [inner sep=0pt,#1](#2) {#3};
\fi
}
\tikzset{table matrix/.style={draw=black,thick,inner sep=0,fill=white,matrix of nodes, nodes in empty cells, nodes={minimum width=35mm,minimum height=3mm,draw,outer sep=0,inner sep=0},}}
\begin{document}
\begin{standaloneframe}
\centering
{\small \textbf{\texttt{\tikzmark{s}{s} = mmap(\tikzmark[purple]{fd}{NULL},\tikzmark[orange]{size}{sizeof(shared\_mem)},\tikzmark[red]{rw}{PROT\_READ | PROT\_WRITE},\tikzmark[blue!50]{prop1}{MAP\_SHARED}|\tikzmark[blue!50]{prop2}{MAP\_ANONYMOUS},\tikzmark[pink!80!black]{val}{-1,0});}}}
\begin{tikzpicture}[overlay, remember picture,node distance =1.5cm,
every node/.append style={text width=3cm,align=center},
shorten >=1pt]
\node (sdesc) [below=of s]{Punter a shared\_mem};
\draw[,->,thick] (sdesc) to [in=-90,out=90] (s);
\node[blue!50] (prop1desc) [below=of prop1]{Comparteix els canvis a tots els processos que hi apuntin};
\draw[blue!50,->,thick] (prop1desc) to [in=-90,out=90] (prop1);
\node[blue!50] (prop2desc) [below right= 40pt and -50pt of prop2 ]{Mapejat anònim, no associat a fitxer};
\draw[blue!50,->,thick] (prop2desc) to [in=-90,out=90] (prop2);
\node[pink!80!black] (valdesc) [below right=40pt and 20pt of val]{Per ser anònim el descriptor ha de ser -1 i l'offset 0};
\draw[pink!80!black,->,thick] (valdesc) to [in=-90,out=90] (val);
\node[purple] (fddesc) [above left=40pt and -20pt of fd]{Deixem triar al nucli l'adreça que assigna};
\draw[purple,->,thick] (fddesc) to [in=90,out=-90] (fd);
\node[orange] (sizedesc) [above=of size]{Demanem mida de shared\_mem};
\draw[orange,->,thick] (sizedesc) to [in=90,out=-90] (size);
\node[red] (rwdesc) [above=of rw]{Permet lectura i escriptura};
\draw[red,->,thick] (rwdesc) to [in=90,out=-90] (rw);
\end{tikzpicture}
\end{standaloneframe}
\end{document}