Системная функция ничего не выводит

Если вы используете SQL Server, поместите одинарные кавычки вокруг дат. Если нет, тогда он будет вычислять выражение вместо даты.

BETWEEN '1/1/2010' AND '12/31/2010'
1
задан monolith937 17 January 2019 в 09:19
поделиться

1 ответ

read не записывает завершающий нулевой символ. После if ((count = read(pipeToChild[0], tmp, 50)) < 0) программа передает tmp, не записывая в него нулевую символику, в sprintf.

Это приводит к тому, что команде echo передаются дополнительные данные мусора из tmp за пределы того, что было прочитано из канала, что, в свою очередь, заставляет grep не найти подходящую строку.

Одним из исправлений было бы изменить read на read(pipeToChild[0], tmp, sizeof tmp - 1) и вставить tmp[count] = 0;.

0
ответ дан Eric Postpischil 17 January 2019 в 09:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: