Il n'y a pas de façon particulière de le faire dans le cacao. Vous feriez essentiellement le fifo et une fois que vous aviez cela, votre processus pourrait alors le lire/l'écrire en utilisant les wrappers standard Cocoa comme NSFileHandle
. Vous pouvez vérifier son existence avec NSFileManager
ou autre, mais vous devrez toujours appeler mkfifo(2)
à un moment donné pour créer le canal nommé.
Alors:
if(mkfifo("/tmp/my_named_pipe", 0644) == -1) {
// some error handling
abort();
}
// Open and use the fifo as you would any file in Cocoa, but remember that it's a FIFO
NSFileHandle* fifoIN = [NSFileHandle fileForReadingAtPath:@"/tmp/my_named_pipe"];
Personnellement, je recommande l'aide d'un BSD ou socket Unix à la place. Il y a beaucoup de prise en charge de Framework pour les sockets, parfois un canal bidirectionnel est également plus utile, et vous n'avez pas à vous soucier de savoir si le lecteur ou l'éditeur est prêt en premier.
avez-vous essayé des notifications distribuées? – Eimantas