Signal ctrl-D - C - Programmation
Marsh Posté le 10-01-2005 à 13:39:00
ok g trouve atexit permet de lancer une dernierre fonctions avant de quitter
Marsh Posté le 10-01-2005 à 14:28:04
c'est dans quel contexte ?
sinon un truc dans le genre à adapter peut-être
Code :
|
Marsh Posté le 10-01-2005 à 15:43:51
ON A DIT 15 FOIS CES DERNIERS JOURS QUE CTRL-D N'EST PAS UN SIGNAL ! Ta question n'a aucun sens. Tu n'as pas compris ce que fais Ctrl-d.
Contrairement à un signal, tu ne reçois pas un Ctrl-d comme ça, de manière asynchrone. Tu rencontres simplement un Ctrl-d (enfin le EOF qui est envoyé pas Ctrl-d) à la fin de l'input, quand tu traites un flux d'entrée. Donc si tu veux faire quelque chose en réponse à un Ctrl-d, c'est très simple : tu ajoutes du code après ta boucle de lecture.
Marsh Posté le 10-01-2005 à 15:49:51
matafan a écrit : ON A DIT 15 FOIS CES DERNIERS JOURS QUE CTRL-D N'EST PAS UN SIGNAL ! |
bah sur un terminal unix, le shell sous jacent envoie le signal INTerrupt sur reception d'un ctrl-c, et un signal TERMinate sur reception d'un ctrl-d.
C'EST DONC PAS LA PEINE D'ECRIRE EN GRAS POUR RACONTER DES CONNERIES
cf signal.h, etc
Marsh Posté le 10-01-2005 à 16:16:55
C'est compètement faux. Revise tes notions et laisse les grands écrire en gras.
Edit : Ah illumination, je crois que je viens de comprendre ce que tu voulais (peut-être) dire. Si tu lances ton appli en background, et que tu termines le shell qui a lancé l'appli avec Ctrl-D, alors SIGHUP (pas SIGTERM) est envoyé à ton appli, et l'action par defaut de SIGHUP et de terminer le programme. Oui. Mais le SIGHUP n'a rien à voir avec le Ctrl-D. C'est simplement que le shell decide de quitter s'il voit un EOF en début de ligne. Et comme toujours quand une application termine, un SIGHUP et envoyé à chacun des fils.
Marsh Posté le 10-01-2005 à 17:30:48
non en fait je sais bien que ctrl-d envoie un EOF seulement je voudrais que ctrl-d n'envoie rien comme le fait emacs dans emacs le ctrl-d est annuler completement.
ET G JAMAIS DIT SUE C T UN SIGNAL
Marsh Posté le 10-01-2005 à 17:58:08
> aimerais savoir comment je peux faire dans un programmes
> pour annuler le signal CTRL-D ou au moins faire en sorte
^^^^^^^^^^^^^^^^^
Lol minimoke !
Marsh Posté le 10-01-2005 à 18:10:19
fautes de frappes car je sais que c pas un signal
Marsh Posté le 10-01-2005 à 18:30:44
Et dans le sujet, aussi une faute de frappe ?
Allez j'arrete de t'embeter hihi.
Marsh Posté le 11-01-2005 à 17:28:07
matafan a écrit : C'est compètement faux. Revise tes notions et laisse les grands écrire en gras. |
Si tu envoies un charactère spécial "CTRL-C" sur l'entrée standard d'un process, rien ne se passe.
C'est le shell, qui avec un fils lancé en "foreground" sans redirection de l'entrée standard, intercepte les "CTRL-C" et envoie un signal INTerrupt au processus fils en question.
minimoke a écrit : non en fait je sais bien que ctrl-d envoie un EOF seulement je voudrais que ctrl-d n'envoie rien comme le fait emacs dans emacs le ctrl-d est annuler completement. |
minimoke a écrit : Salut tout le monde, |
faudrais savoir ce que tu veux dans ce cas
Marsh Posté le 10-01-2005 à 12:42:09
Salut tout le monde,
J'aimerais savoir comment je peux faire dans un programmes pour annuler le signal CTRL-D ou au moins faire en sorte d'executer une dernierre instructions certaines personne m'on dit que c t pas possible mais bon je sais que c possible rien qu'a voir emacs par example. Et plutot que chercher dans les sources d'emacs je m'adresse a vous qui avais peut etre la solution.
Merci de toutes vos reponses.
---------------
____