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}