Technically, they're the same kind of pipe as the anonymous ones you create in a shell.
But you can give them a name yourself, and you can create one, then later have a program listening to it, and then later send data to it, from different programs if you want.
You can also create them, send some data to them, and then later start a program to read that out, but you're likely to run into buffering issues with that.
Also, don't forget to remove one when you don't use it anymore.