Lorsque je démarre un programme à partir d'un ordinateur de bureau (Ubuntu 16.04) au lieu d'un shell afin que le programme ne soit pas associé à un terminal, quels sont les stdin et stdout pour ce programme? Les STDIN_FILENO
et STDOUT_FILENO
sont-ils des descripteurs de fichiers valides au démarrage du programme? Où écrit printf
dans ce cas?Quels sont les stdin et stdout par défaut pour un programme démarré à partir du bureau sous Linux?
Q
Quels sont les stdin et stdout par défaut pour un programme démarré à partir du bureau sous Linux?
3
A
Répondre
0
Vous pouvez utiliser le programme strace
pour voir tous les appels système qu'un programme exécute (comme ouvrir, lire, écrire, fermer). Lorsque vous attatch au « programme de bureau » (celui qui exécute votre programme, utilisez pstree
ou proctree
), vous pouvez voir ce qui se passe aux descripteurs de fichiers 0, 1 et 2.
Ou google pour "gnome run programme stdout"
Pourquoi ne pas l'essayer? Dans Windows, il ouvre une fenêtre de console si 'stdout' est utilisé, ce qui se ferme à la sortie. À moins qu'il y ait une invite ou une pause à la fin du programme, cela peut arriver si rapidement que vous ne voyez même pas la fenêtre avant que l'écran soit rafraîchi. –
@WeatherVane J'ai essayé de compiler un programme Hello World en C en utilisant gcc sur Ubuntu. Puis j'ai double-cliqué sur l'exécutable sur le bureau, et rien ne s'est passé (aucun terminal n'apparaît). Je ne peux toujours pas savoir comment stdin et stdout sont définis pour ce programme quand je l'ai démarré de cette façon. –
Avez-vous mis une pause à la fin du programme comme je l'ai suggéré? –