Ich habe folgende C-Programm:Multiple Input für laufende Programm
#include<stdio.h>
main()
{
char buf[64];
gets(buf);
printf("Your input: %s\n", buf);
gets(buf);
printf("Your input: %s\n", buf);
}
Ich möchte das Programm zum Senden von Daten von Rohren oder Umleitung verwenden. Das Problem ist, dass das Programm nicht darauf wartet, dass der zweite neue Daten eingibt.
beispiel
$ echo "a" | ./test
Ausgang:
Your input: a
Your input: a
Wie kann ich lasse sende das Programm warten, bis die Benutzereingabe an jeden bekommt Rohre oder Umleitung verwenden. P. Ich habe keine persistion um nach/proc/$ pid/fd/0 zu schreiben und ich muss den Code nicht ändern.
Jede Hilfe wäre willkommen.
1.) Verwenden Sie 'gets()' nicht. 2.) versuche 'scanf ("% 64s ", buf);' Dies verhindert einen Pufferüberlauf. Es könnte bessere Lösungen geben. Nur meine erste Idee, was du benutzen darfst. – Enkelli
Vielen Dank, aber ich muss den Code nicht ändern. –
Sie wollen es nicht ändern? oder du kannst nicht? Entschuldigung, ich habe den letzten fraglichen Satz nicht gelesen. Aber ich verstehe immer noch nicht, was es bedeutet. Zu meiner ersten Antwort - es ist keine Lösung, nur ein paar Tipps. – Enkelli