No, realmente no.
La devolución de llamada de la función pasa la dirección (u otro identificador) de una función a otra función para que pueda volver a llamar por algún motivo.
El ejemplo clásico es la biblioteca estándar C qsort
función. Pasa un puntero a la matriz (y sus tamaños), junto con una función de comparación. La función qsort
luego usa esa función de comparación (la devolución de llamada) para decidir cuál de los dos elementos en la lista es mayor para que pueda organizarlos en orden.
IPC, por otro lado, es un medio para que los procesos se comuniquen entre sí, como memoria compartida, tuberías, semáforos, etc.
Algunos mecanismos de IPC pueden utilizar devoluciones de llamada pero de ninguna manera es necesario. Por ejemplo, los sockets no usan devoluciones de llamada, simplemente permiten que un usuario llame al read
y al write
.
De forma similar con la memoria compartida, se conecta a los bloques de memoria y simplemente accede a ellos de forma muy similar a la memoria "normal", es solo que los efectos se sienten en todos los procesos conectados a esa memoria.
Uno que hace tipo de devolución de llamada de uso es ONC RPC (o Sun RPC). Ejecuta un servidor que espera las llamadas de los clientes a través de la red y las pasa a una función cliente preconfigurada. Más detalles se pueden encontrar here.
Pero, incluso entonces, dudaría en llamar a una devolución de llamada ya que está realmente configurado en tiempo de compilación. Las devoluciones de llamada "adecuadas" tienden a realizarse en tiempo de ejecución.
+1 no pudo vencer esta (versión de esto) la respuesta en simplicidad y exhaustividad –
@paxdiablo: devolución de llamada de función: -Una razón significa obtener algunos datos ... así que lo mismo estamos obteniendo de IPC mediante socket o tuberías y todos –
"Algunos mecanismos de IPC pueden usar devoluciones de llamada, pero de ninguna manera es necesario". - Sería bueno si esto puede ser elaborado. – Jay