Peut utiliser un file descriptor dans un processus étranger ?
3 réponses
Eric Bart
Bonjour,
J'ai un "named pipe" qui fonctionne bien dans un sens
et je voudrais m'en servir pour envoyer le nom du pipe
de retour.
Tant qu'à faire j'aimerais utiliser un "unnamed pipe"
pour le retour. Je précise que les deux processus n'ont
aucun lien de parenté.
Est-il possible d'envoyer à l'autre processus une référence
à un "unnamed pipe" ?
Je me doute que le file descriptor que je pourrais envoyer
n'aurait pas de sens dans le contexte de l'autre processus.
Mais ptêt y a t-il un dup2() ou autre pour arranger l'affaire ..
J'ai un "named pipe" qui fonctionne bien dans un sens et je voudrais m'en servir pour envoyer le nom du pipe de retour.
Tant qu'à faire j'aimerais utiliser un "unnamed pipe" pour le retour. Je précise que les deux processus n'ont aucun lien de parenté.
Est-il possible d'envoyer à l'autre processus une référence à un "unnamed pipe" ?
En envoyant le descripteur par un paquet de service de type SCM_RIGHTS d'une socket unix.
Ceci dit, il vaut mieux utiliser des sockets unix directement, elles sont garanties être bidirectionnelles, à la différence des pipe.
Eric Bart
J'ai un "named pipe" qui fonctionne bien dans un sens et je voudrais m'en servir pour envoyer le nom du pipe de retour.
Tant qu'à faire j'aimerais utiliser un "unnamed pipe" pour le retour. Je précise que les deux processus n'ont aucun lien de parenté.
Est-il possible d'envoyer à l'autre processus une référence à un "unnamed pipe" ?
En envoyant le descripteur par un paquet de service de type SCM_RIGHTS d'une socket unix.
Est-ce en passant par un paquet de service que le descripteur va être translaté dans l'espace mémoire de l'autre processus ?
Il existe d'autres moyens d'envoyer le descripteur, mais j'imagine que dans ces cas le descripteur reçu n'est pas translatable dans l'espace des variables du noyau. non ?
J'ai un "named pipe" qui fonctionne bien dans un sens
et je voudrais m'en servir pour envoyer le nom du pipe
de retour.
Tant qu'à faire j'aimerais utiliser un "unnamed pipe"
pour le retour. Je précise que les deux processus n'ont
aucun lien de parenté.
Est-il possible d'envoyer à l'autre processus une référence
à un "unnamed pipe" ?
En envoyant le descripteur par un paquet de service de type SCM_RIGHTS
d'une socket unix.
Est-ce en passant par un paquet de service que le descripteur va être
translaté dans l'espace mémoire de l'autre processus ?
Il existe d'autres moyens d'envoyer le descripteur, mais j'imagine que
dans ces cas le descripteur reçu n'est pas translatable dans l'espace
des variables du noyau. non ?
J'ai un "named pipe" qui fonctionne bien dans un sens et je voudrais m'en servir pour envoyer le nom du pipe de retour.
Tant qu'à faire j'aimerais utiliser un "unnamed pipe" pour le retour. Je précise que les deux processus n'ont aucun lien de parenté.
Est-il possible d'envoyer à l'autre processus une référence à un "unnamed pipe" ?
En envoyant le descripteur par un paquet de service de type SCM_RIGHTS d'une socket unix.
Est-ce en passant par un paquet de service que le descripteur va être translaté dans l'espace mémoire de l'autre processus ?
Il existe d'autres moyens d'envoyer le descripteur, mais j'imagine que dans ces cas le descripteur reçu n'est pas translatable dans l'espace des variables du noyau. non ?
Laurent Wacrenier
Eric Bart écrit:
Est-ce en passant par un paquet de service que le descripteur va être translaté dans l'espace mémoire de l'autre processus ?
Je suppose que oui, sinon ça n'aurait aucun interêt, mais je n'ai jamais essayé.
Il existe d'autres moyens d'envoyer le descripteur, mais j'imagine que dans ces cas le descripteur reçu n'est pas translatable dans l'espace des variables du noyau. non ?
On peut passer le numéro du descripteur d'un processus à l'autre de diverses manières, mais ça ne l'ouvre pas pour autant.
Eric Bart <eb-adm@eric-bart.pasdepubmerci.net> écrit:
Est-ce en passant par un paquet de service que le descripteur va être
translaté dans l'espace mémoire de l'autre processus ?
Je suppose que oui, sinon ça n'aurait aucun interêt, mais je n'ai
jamais essayé.
Il existe d'autres moyens d'envoyer le descripteur, mais j'imagine que
dans ces cas le descripteur reçu n'est pas translatable dans l'espace
des variables du noyau. non ?
On peut passer le numéro du descripteur d'un processus à l'autre de
diverses manières, mais ça ne l'ouvre pas pour autant.
Est-ce en passant par un paquet de service que le descripteur va être translaté dans l'espace mémoire de l'autre processus ?
Je suppose que oui, sinon ça n'aurait aucun interêt, mais je n'ai jamais essayé.
Il existe d'autres moyens d'envoyer le descripteur, mais j'imagine que dans ces cas le descripteur reçu n'est pas translatable dans l'espace des variables du noyau. non ?
On peut passer le numéro du descripteur d'un processus à l'autre de diverses manières, mais ça ne l'ouvre pas pour autant.