Here is an illustration of how data is exchanged between a parent process and a child process via ordinary pipes:
Two ordinary pipes allow message passing between a parent and a child. Miriam Briskman, CC BY-NC 4.0.
Note: click the GIF amination above to open and play it in a browser window.