No, non proprio.
La richiamata di funzione sta passando l'indirizzo (o qualche altro identificatore) di una funzione a un'altra funzione in modo che possa richiamare per qualche motivo.
L'esempio classico è la libreria standard C qsort
. Si passa un puntatore all'array (e alle sue dimensioni), insieme a una funzione di confronto. La funzione qsort
utilizza quindi tale funzione di confronto (il callback) per decidere quale dei due elementi nell'elenco è maggiore in modo che possa organizzarli in ordine.
IPC, d'altra parte, è un mezzo per i processi di comunicare tra loro, ad esempio memoria condivisa, pipe, semafori e così via.
Alcuni meccanismi IPC possono utilizzare i callback ma non è assolutamente necessario. Ad esempio, i socket non utilizzano le richiamate, ma consentono semplicemente a un utente di chiamare read
e write
.
Analogamente alla memoria condivisa, si allega ai blocchi di memoria e si accede semplicemente ad essi come la memoria "normale", è solo che gli effetti si avvertono su tutti i processi collegati a quella memoria.
Uno che fa tipo di callback di utilizzo è ONC RPC (o Sun RPC). Gestisce un server che attende le chiamate dei client attraverso la rete e le passa a una funzione client preconfigurata. Maggiori dettagli possono essere trovati here.
Ma, anche in questo caso, sarei titubante a chiamarlo come richiamata poiché è davvero configurato in fase di compilazione. I callback "corretti" tendono ad essere eseguiti in fase di esecuzione.
+1 non ha battuto questa (versione di questo) risposta in semplicità e completezza –
@paxdiablo: Funzione callback: -Alcune ragioni significa ottenere alcuni dati ... quindi lo stesso che stiamo ottenendo da IPC utilizzando socket o pipe e tutti –
"Alcuni meccanismi IPC possono utilizzare le callback ma non è assolutamente necessario." - Sarebbe bello se questo potesse essere elaborato. – Jay