-1
votes

C Programme avec Bash Script

J'essaie d'exécuter C Programme à Inside Bash, mon programme C utilise le périphérique GPS et en calculant la distance en fonction des valeurs de latitude et de longitude. Le problème est que lorsque j'exécute ce programme C via Bash pour obtenir la distance, je ne suis pas en mesure de rediriger sa sortie dans un fichier ou une variable. J'ai essayé ceci: Sortie = $ (./ exécuté) Mais ça ne fonctionne pas. Pour exécuter C code Inside Bash, j'utilise le code suivant:

#!/bin/bash
echo `clear`
echo enter file name
read FILE
gcc -o a.out $FILE -lm 

./a.out


6 commentaires

Que se passe-t-il à la place?


sans rediriger, il montre la sortie, mais elle ne montre rien


sortie = $ (./.out) devrait capturer la sortie, il n'y a aucun moyen de s'échapper.


Mais alors echo $ Sortie ne montre rien


Peut-on mettre la mise à jour de votre message avec le code qui tente de capturer et d'afficher la sortie, puis de l'exécuter avec bash -x votre pour obtenir un journal de débogage et inclure cela? (Assurez-vous de copier-coller tous les deux sans changement)


@ BANO091: Je ne vois aucune redirection dans le code que vous avez posté.


3 Réponses :


-1
votes

Utilisez -o drapeau dans GCC pour créer le binaire d'abord.

Je vais vous donner un exemple en utilisant "Hello World" Code: P>

~]# bash hw.sh
Hello World


2 commentaires

Si vous n'utilisez pas -o un binaire appelé a.out sera généré


Je suis à peu près sûr que vous devez également "marquer" le nouveau fichier comme exécutable. Utilisez chmod + x ./a.out . Bonne chance.



0
votes

Vous n'incluez pas le journal de débogage demandé, mais à partir de votre capture d'écran, il semble que votre programme ne quitte jamais. Il reste juste autour et écrit des valeurs pour toujours. Par conséquent, la capture n'atteint jamais la fin, votre relevé echo ne s'exécute jamais.

Vous devez modifier votre programme ou votre invocation afin qu'il puisse à une certaine sortie.

si Vous ne pouvez pas modifier le programme, vous pouvez capturer, par exemple Seules les dix premières lignes utilisant l'une des: xxx


0 commentaires

0
votes

merci chacun pour les commentaires Il fonctionne maintenant maintenant xxx

en utilisant le code ci-dessus


0 commentaires