Qui de signal est ctrl-x envoyer lorsque utilisé dans un terminal?
Sur Linux/Unix il y a des signaux. L' CtrlC un (SIGINT
) est une évidence pour moi.
Maintenant, dans certaines autres applications il y a des signaux à l'aide de CtrlX?!
C'est que même un signal ou faut-il générer une séquence d'échappement?
Est-il autre chose que je peux utiliser comme quelque chose de similaire à CtrlC ( CtrlV, CtrlX ...)?
Si quelqu'un a une idée, im familier avec le C de plus que la bash, mais les réponses dans les deux langues sont appréciées!
- Peut-être pas une liste complète: http://www.cdrinfo.com/Sections/Reviews/Specific.aspx?ArticleId=19672
Vous devez vous connecter pour publier un commentaire.
Pour obtenir tous les terminaux caractère de contrôle de travaux:
Il est peut-être un malentendu. CtrlC ne pas générer un signal. Il est parfaitement possible d'appuyer sur CtrlC n'importe où, et pas de mauvaises choses vont arriver (par exemple dans tout éditeur de texte ou traitement de texte, c'est le gouvernement de facto standard pour "copier").
Toutefois, lorsque vous exécutez un programme dans le shell, alors pressions sur les touches, vraiment entrer dans le shell, pas dans votre programme. Le shell va de l'avant (presque) tout de votre programme stdin, et rien venir de stdout soit le terminal ou d'un autre processus ou d'un fichier (si vous avez utilisé un tuyau ou de redirection).
Si le shell voit que vous appuyez sur la touche CtrlC, puis le shell envoie le signal d'interruption. Mais c'est vraiment quelque chose de juste le shell ne, pas quelque chose qui comme par magie se produit en raison de la combinaison de touches.
Sur CtrlX, vous avez probablement signifie CtrlZ. Cela empêche un processus, et la coquille sorties d'un numéro que vous pouvez utiliser avec
fg
pour le faire fonctionner à nouveau.BRKINT
drapeau). Je pense que vous avez raison sur Ctrl-C en cours de traduction par le shell.kill
suivie par le PID du processus de premier plan. Il est en quelque sorte similaire à lorsque vous tapezrm *
. Ce ressemble et fonctionne comme lerm
programme appelle une fonction de la bibliothèque avec un générique qui fonctionne sur "tous les fichiers" (et, notez que certaines fonctions sous Windows en effet travailler de cette façon). En réalité, le shell travaille secrètement les noms de tous les fichiers et les transmet à votre programme un par un sur la ligne de commande.Le terminal attribue une signification particulière pour certaines séquences de touches. Ceci incluent la suppression d'un caractère, la suppression de début de ligne ( CtrlU ), ...
En particulier, lorsque le terminal
ISIG
le mode local est activé:VINTR
(généralement CtrlC) génère unSIGINT
(interrompu par l'utilisateur).VQUIT
(généralement Ctrl\) génère unSIGQUIT
(comme SIGINT, mais aussi dump de base).VSUSP
(généralement CtrlZ) génère unSIGTSTP
(arrêter par la borne I/O).VDSUSP
(sur certains systèmes, pas sur Linux) génère unSIGTSTP
lorsque le programme tente de le lire.Ci-dessus sont configurables. Ceci est documenté sur le termios(3) page de manuel.
De Wikipédia
Une autre utilisation de Ctrlx est d'élargir le
*
lors de la saisie d'une commande dans le shell.Dire que vous avez:
Appuyant sur Ctrlx, puis * étendra
*
à tous les éléments dans le répertoire courant à quelque chose comme ceci:Vous pouvez aussi consulter cette rubrique sur les super-Utilisateur pour l'utilisation que j'ai décrit ci-dessus.
Si vous avez besoin d'une liste des signaux disponibles sur votre système, puis
signum.h
peut être utile. Ci-dessous est à partir de Debian 7.3: