Учитывая следующую программу:Сегментация в трубе
#include <stdio.h>
int main()
{
char buf[1024];
scanf("%s", buf);
printf("----> %s", buf);
return 0;
}
, которая выполняется следующим образом:
grep ....| a.out
или
echo ....| a.out
я получаю ошибку Segmentation fault
. Может ли кто-нибудь объяснить, почему?
memset не требуется, так как мы можем легко инициализировать массивы 0 в C99-C11. Это также, вероятно, быстрее, но это зависит от реализации системы. – AoeAoe
@thlgood: Почему это принятый ответ? Это явно не отвечало на вопрос, тогда как я нашел проблему. –