je travaille sur Mac OS X qui est un BSD (d'après ce que j'ai compris)
et j'ai deux questions techniques:
1- comment on envoie un signal à un autre process, plus précisément,
l'application xdvi accepte qu'on lui envoie un signal SIGUSR2 (de
mémoire), comment lui envoyer?
2- Depuis mon appli, je lance des process, je peux écouter leur standard
output et écrire dans leur standard input. Mon problème est que ces
process sont pensés pour être lancés dans un terminal, en sorte que
lorsqu'une donnée en entrée est nécéssaire pour continuer, une question
est posée à l'utilisateur via le terminal. Pour l'instant, je parse la
sortie pour savoir si elle se termine par un point d'interrogation, mais
ce n'est pas joli et surtout, cela ne marche pas tout le temps...
Existe-t-il un moyen propre de savoir qu'un process est en attente
d'input? Je précise que le process traite un fichier et quitte quand il
a terminé.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc Bourguet
J. Laurens writes:
Salut à tous,
je travaille sur Mac OS X qui est un BSD (d'après ce que j'ai compris) et j'ai deux questions techniques:
1- comment on envoie un signal à un autre process, plus précisément, l'application xdvi accepte qu'on lui envoie un signal SIGUSR2 (de mémoire), comment lui envoyer?
kill
2- Depuis mon appli, je lance des process, je peux écouter leur standard output et écrire dans leur standard input. Mon problème est que ces process sont pensés pour être lancés dans un terminal, en sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer, une question est posée à l'utilisateur via le terminal. Pour l'instant, je parse la sortie pour savoir si elle se termine par un point d'interrogation, mais ce n'est pas joli et surtout, cela ne marche pas tout le temps... Existe-t-il un moyen propre de savoir qu'un process est en attente d'input?
Il a des chances qu'il faille passer par les pseudo-terminaux pour faire fonctionner une appli prevue pour etre interactive avec un terminal.
grandpt, unlockpt
A+
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
J. Laurens <jlaurens@users.sourceforge.net> writes:
Salut à tous,
je travaille sur Mac OS X qui est un BSD (d'après ce que j'ai compris)
et j'ai deux questions techniques:
1- comment on envoie un signal à un autre process, plus précisément,
l'application xdvi accepte qu'on lui envoie un signal SIGUSR2 (de
mémoire), comment lui envoyer?
kill
2- Depuis mon appli, je lance des process, je peux écouter leur
standard output et écrire dans leur standard input. Mon problème est
que ces process sont pensés pour être lancés dans un terminal, en
sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer,
une question est posée à l'utilisateur via le terminal. Pour
l'instant, je parse la sortie pour savoir si elle se termine par un
point d'interrogation, mais ce n'est pas joli et surtout, cela ne
marche pas tout le temps... Existe-t-il un moyen propre de savoir
qu'un process est en attente d'input?
Il a des chances qu'il faille passer par les pseudo-terminaux pour
faire fonctionner une appli prevue pour etre interactive avec un
terminal.
grandpt, unlockpt
A+
--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
je travaille sur Mac OS X qui est un BSD (d'après ce que j'ai compris) et j'ai deux questions techniques:
1- comment on envoie un signal à un autre process, plus précisément, l'application xdvi accepte qu'on lui envoie un signal SIGUSR2 (de mémoire), comment lui envoyer?
kill
2- Depuis mon appli, je lance des process, je peux écouter leur standard output et écrire dans leur standard input. Mon problème est que ces process sont pensés pour être lancés dans un terminal, en sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer, une question est posée à l'utilisateur via le terminal. Pour l'instant, je parse la sortie pour savoir si elle se termine par un point d'interrogation, mais ce n'est pas joli et surtout, cela ne marche pas tout le temps... Existe-t-il un moyen propre de savoir qu'un process est en attente d'input?
Il a des chances qu'il faille passer par les pseudo-terminaux pour faire fonctionner une appli prevue pour etre interactive avec un terminal.
grandpt, unlockpt
A+
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Laurent Wacrenier
J Laurens écrit:
1- comment on envoie un signal à un autre process, plus précisément, l'application xdvi accepte qu'on lui envoie un signal SIGUSR2 (de mémoire), comment lui envoyer?
en shell : kill -USR2 <numéro du processus> en C : kill(<numéro du processus>, SIGUSR2)
2- Depuis mon appli, je lance des process, je peux écouter leur standard output et écrire dans leur standard input. Mon problème est que ces process sont pensés pour être lancés dans un terminal, en sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer, une question est posée à l'utilisateur via le terminal. Pour l'instant, je parse la sortie pour savoir si elle se termine par un point d'interrogation, mais ce n'est pas joli et surtout, cela ne marche pas tout le temps... Existe-t-il un moyen propre de savoir qu'un process est en attente d'input? Je précise que le process traite un fichier et quitte quand il a terminé.
En C, avec select() ou poll().
J Laurens <jlaurens@users.sourceforge.net> écrit:
1- comment on envoie un signal à un autre process, plus précisément,
l'application xdvi accepte qu'on lui envoie un signal SIGUSR2 (de
mémoire), comment lui envoyer?
en shell : kill -USR2 <numéro du processus>
en C : kill(<numéro du processus>, SIGUSR2)
2- Depuis mon appli, je lance des process, je peux écouter leur standard
output et écrire dans leur standard input. Mon problème est que ces
process sont pensés pour être lancés dans un terminal, en sorte que
lorsqu'une donnée en entrée est nécéssaire pour continuer, une question
est posée à l'utilisateur via le terminal. Pour l'instant, je parse la
sortie pour savoir si elle se termine par un point d'interrogation, mais
ce n'est pas joli et surtout, cela ne marche pas tout le temps...
Existe-t-il un moyen propre de savoir qu'un process est en attente
d'input? Je précise que le process traite un fichier et quitte quand il
a terminé.
1- comment on envoie un signal à un autre process, plus précisément, l'application xdvi accepte qu'on lui envoie un signal SIGUSR2 (de mémoire), comment lui envoyer?
en shell : kill -USR2 <numéro du processus> en C : kill(<numéro du processus>, SIGUSR2)
2- Depuis mon appli, je lance des process, je peux écouter leur standard output et écrire dans leur standard input. Mon problème est que ces process sont pensés pour être lancés dans un terminal, en sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer, une question est posée à l'utilisateur via le terminal. Pour l'instant, je parse la sortie pour savoir si elle se termine par un point d'interrogation, mais ce n'est pas joli et surtout, cela ne marche pas tout le temps... Existe-t-il un moyen propre de savoir qu'un process est en attente d'input? Je précise que le process traite un fichier et quitte quand il a terminé.
En C, avec select() ou poll().
Laurent Wacrenier
Jean-Marc Bourguet écrit:
J Laurens écrit:
2- Depuis mon appli, je lance des process, je peux écouter leur standard output et écrire dans leur standard input. Mon problème est que ces process sont pensés pour être lancés dans un terminal, en sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer, une question est posée à l'utilisateur via le terminal. Pour l'instant, je parse la sortie pour savoir si elle se termine par un point d'interrogation, mais ce n'est pas joli et surtout, cela ne marche pas tout le temps... Existe-t-il un moyen propre de savoir qu'un process est en attente d'input? Je précise que le process traite un fichier et quitte quand il a terminé.
En C, avec select() ou poll().
Je crois qu'il veut savoir si un autre process vers lequel il a un pipe est blocke en lecture sur ce pipe... C'est a ma connaissance pas possible.
Avec select() ou poll().
Jean-Marc Bourguet <jm@bourguet.org> écrit:
J Laurens <jlaurens@users.sourceforge.net> écrit:
2- Depuis mon appli, je lance des process, je peux écouter leur standard
output et écrire dans leur standard input. Mon problème est que ces
process sont pensés pour être lancés dans un terminal, en sorte que
lorsqu'une donnée en entrée est nécéssaire pour continuer, une question
est posée à l'utilisateur via le terminal. Pour l'instant, je parse la
sortie pour savoir si elle se termine par un point d'interrogation, mais
ce n'est pas joli et surtout, cela ne marche pas tout le temps...
Existe-t-il un moyen propre de savoir qu'un process est en attente
d'input? Je précise que le process traite un fichier et quitte quand il
a terminé.
En C, avec select() ou poll().
Je crois qu'il veut savoir si un autre process vers lequel il a un
pipe est blocke en lecture sur ce pipe... C'est a ma connaissance pas
possible.
2- Depuis mon appli, je lance des process, je peux écouter leur standard output et écrire dans leur standard input. Mon problème est que ces process sont pensés pour être lancés dans un terminal, en sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer, une question est posée à l'utilisateur via le terminal. Pour l'instant, je parse la sortie pour savoir si elle se termine par un point d'interrogation, mais ce n'est pas joli et surtout, cela ne marche pas tout le temps... Existe-t-il un moyen propre de savoir qu'un process est en attente d'input? Je précise que le process traite un fichier et quitte quand il a terminé.
En C, avec select() ou poll().
Je crois qu'il veut savoir si un autre process vers lequel il a un pipe est blocke en lecture sur ce pipe... C'est a ma connaissance pas possible.
Avec select() ou poll().
Jean-Marc Bourguet
Laurent Wacrenier <lwa@ teaser . fr> writes:
Jean-Marc Bourguet écrit:
J Laurens écrit:
2- Depuis mon appli, je lance des process, je peux écouter leur standard output et écrire dans leur standard input. Mon problème est que ces process sont pensés pour être lancés dans un terminal, en sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer, une question est posée à l'utilisateur via le terminal. Pour l'instant, je parse la sortie pour savoir si elle se termine par un point d'interrogation, mais ce n'est pas joli et surtout, cela ne marche pas tout le temps... Existe-t-il un moyen propre de savoir qu'un process est en attente d'input? Je précise que le process traite un fichier et quitte quand il a terminé.
En C, avec select() ou poll().
Je crois qu'il veut savoir si un autre process vers lequel il a un pipe est blocke en lecture sur ce pipe... C'est a ma connaissance pas possible.
Avec select() ou poll().
Si je ne me trompe pas, poll()/select() m'indiquent si mon process peut ecrire sans blocker, pas si un autre est blocke a l'autre bout du pipe.
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Laurent Wacrenier <lwa@ teaser . fr> writes:
Jean-Marc Bourguet <jm@bourguet.org> écrit:
J Laurens <jlaurens@users.sourceforge.net> écrit:
2- Depuis mon appli, je lance des process, je peux écouter leur standard
output et écrire dans leur standard input. Mon problème est que ces
process sont pensés pour être lancés dans un terminal, en sorte que
lorsqu'une donnée en entrée est nécéssaire pour continuer, une question
est posée à l'utilisateur via le terminal. Pour l'instant, je parse la
sortie pour savoir si elle se termine par un point d'interrogation, mais
ce n'est pas joli et surtout, cela ne marche pas tout le temps...
Existe-t-il un moyen propre de savoir qu'un process est en attente
d'input? Je précise que le process traite un fichier et quitte quand il
a terminé.
En C, avec select() ou poll().
Je crois qu'il veut savoir si un autre process vers lequel il a un
pipe est blocke en lecture sur ce pipe... C'est a ma connaissance pas
possible.
Avec select() ou poll().
Si je ne me trompe pas, poll()/select() m'indiquent si mon process
peut ecrire sans blocker, pas si un autre est blocke a l'autre bout du
pipe.
--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
2- Depuis mon appli, je lance des process, je peux écouter leur standard output et écrire dans leur standard input. Mon problème est que ces process sont pensés pour être lancés dans un terminal, en sorte que lorsqu'une donnée en entrée est nécéssaire pour continuer, une question est posée à l'utilisateur via le terminal. Pour l'instant, je parse la sortie pour savoir si elle se termine par un point d'interrogation, mais ce n'est pas joli et surtout, cela ne marche pas tout le temps... Existe-t-il un moyen propre de savoir qu'un process est en attente d'input? Je précise que le process traite un fichier et quitte quand il a terminé.
En C, avec select() ou poll().
Je crois qu'il veut savoir si un autre process vers lequel il a un pipe est blocke en lecture sur ce pipe... C'est a ma connaissance pas possible.
Avec select() ou poll().
Si je ne me trompe pas, poll()/select() m'indiquent si mon process peut ecrire sans blocker, pas si un autre est blocke a l'autre bout du pipe.
-- Jean-Marc Site de usenet-fr: http://www.usenet-fr.news.eu.org
Laurent Wacrenier
Jean-Marc Bourguet écrit:
Si je ne me trompe pas, poll()/select() m'indiquent si mon process peut ecrire sans blocker, pas si un autre est blocke a l'autre bout du pipe.
Si le but est d'envoyer les données, il n'y a aucun interêt à savoir ce que fait le lecteur. Avec select() ou poll(), on sait quand c'est possible.
Jean-Marc Bourguet <jm@bourguet.org> écrit:
Si je ne me trompe pas, poll()/select() m'indiquent si mon process
peut ecrire sans blocker, pas si un autre est blocke a l'autre bout du
pipe.
Si le but est d'envoyer les données, il n'y a aucun interêt à savoir
ce que fait le lecteur. Avec select() ou poll(), on sait quand c'est
possible.