Por que a saída do programa não está sendo recebida?

Por que a saída do programa não está sendo recebida?

Quando corro sudo wpa_supplicant -Dwext -iwlan3 -cwifi.conf 2>&1recebo:

Successfully initialized wpa_supplicant
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan3: Trying to associate with 9c:3d:cf:fb:95:96 (SSID='Bell514' freq=2462 MHz)
wlan3: Association request to the driver failed
wlan3: Associated with 9c:3d:cf:fb:95:96
wlan3: Authentication with 9c:3d:cf:fb:95:96 timed out.

No entanto, quando corro:

sudo wpa_supplicant -Dwext -iwlan3 -cwifi.conf 2>&1 | grep --line-buffered wlan3

Eu só consigo:

ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument

Não estou redirecionando stderrcorretamente?

Responder1

O consumidor do pipe, grep, é armazenado em buffer de linha. Mas isso não afeta o produtor de tubos. Depois de ajustar esse lado do pipeline, o grep produzirá a saída desejada.

informação relacionada