Comment générer un terminal lors de l'exécution d'un programme C compilé?

2

J'ai écrasé le programme gnome-screenshot pour l'adapter à mes besoins en obtenant une capture d'écran d'une sortie secondaire de la carte graphique faite à la maison. Désormais, lorsque j'appuie sur le bouton PrintScreen, il l'exécute (à votre guise). Cependant, il y a quelques déclarations "printf" dans le programme (écrit en C) que j'aimerais pouvoir voir en sortie. Est-ce qu'il y a un moyen de faire ça? Peut-être en créant un terminal lorsque le programme s'exécute?

En cours d'exécution: client Red Hat Enterprise Linux version 5.8 (Tikanga)

utilisateur1028435
la source
Vous pouvez essayer d'utiliser un script pour diriger la sortie vers une fenêtre stdout.
Percée
Pourriez-vous élaborer? Exemple peut-être?
user1028435
Seth Noble a posté une excellente réponse détaillant cela.
Percée
J'imagine que j'étais confus, car lorsque j'essaie ce qu'il a mentionné, un fichier "1" et le fichier journal sont créés. J'ai ajouté l'ouverture du journal dans gedit en tant que deuxième commande de script une fois l'opération terminée, mais je ne savais pas s'il était possible de créer une fenêtre de terminal au lieu d'un fichier.
user1028435
que se passe-t-il lorsque vous dirigez la sortie vers echo? (c.-à-course myprscr | echo)
Percée

Réponses:

2

Le moyen le plus simple de capturer la sortie consiste à envelopper votre commande PrintScreen dans un shell et à rediriger la sortie vers un fichier. Par exemple, si votre programme est nommé myprscr, le script shell peut être:

#!/bin/sh
myprscr 2>1 1>>/tmp/myprscr.log

Demandez ensuite au bouton PrintScreen d'exécuter ce script shell à la place de votre commande. Vous voudrez probablement utiliser le chemin complet pour myprscr.

Seth Noble
la source
Oui, je pense que cela va être la réponse gagnante. Et dire que j'ai eu tant de peine à faire pleurer une petite barre de progression ASCII .
user1028435
Juste FYI reviendrait au vote mais je n'ai pas assez de karma.
user1028435
Essayer ceci maintenant, mais la sortie ne sera affichée qu'une fois que myprscr sera complètement terminé ... de toute façon, de le faire en "temps réel?"
user1028435
Vous pouvez ouvrir un autre terminal et le fairetail -f /tmp/myprscr.log
Seth Noble