多输入我有以下的C程序:运行程序
#include<stdio.h>
main()
{
char buf[64];
gets(buf);
printf("Your input: %s\n", buf);
gets(buf);
printf("Your input: %s\n", buf);
}
我想将数据发送到使用管道或重定向程序。问题在于程序不会等待第二个输入新数据。
e.g
$ echo "a" | ./test
输出:
Your input: a
Your input: a
如何发送让程序等待在每个用户输入使用管道或重定向得到。 P.S我没有持续写入/ proc/$ pid/fd/0,我不必更改代码。
任何帮助,将不胜感激。
1.)不要使用'gets()'。 2.)尝试'scanf(“%64s”,buf);' 这可以防止缓冲区溢出。可能有更好的解决方案。只是我的第一个想法,你可以使用。 – Enkelli
谢谢,但我不必更改代码。 –
你不想改变它吗?或者你不能?对不起,我没有读到最后一句话。但我仍然不明白这意味着什么。 我的第一个答案 - 这不是解决方案,只是一些提示。 – Enkelli