我有一個Bash腳本work.sh
從STDIN得到的東西,並將其回顯到STDOUT。爲什麼printf在Bash中管道不工作?
我也有一個C程序,return_input
,這也從STDIN和printf拿東西STDOUT
但是,當我把它們連這樣:
./work.sh |./return_input
在return_input
printf
只輸出到屏幕退出時。爲什麼?
簡體:
[[email protected] test]# cat work.sh
#!/bin/bash
for i in {1..5}
do
echo test
read
done
輸出的cat return_input.c
,
#include <stdio.h>
void return_input (void){
char array[30];
gets (array);
printf("%s\n", array);
printf("%#p\n", *(long *)(array+40));
}
main() {
while(1 == 1)return_input();
return 0;
}
你需要刷新輸出? – James 2011-04-18 14:03:40
@詹姆斯,什麼時候需要衝洗? – 2011-04-18 14:05:20
它只是我,還是return_input只讀*一次*和work.sh寫東西,因爲它一直沿着?看起來像return_input應該在某種循環中讀取work.sh的輸出。 – 2011-04-18 14:27:06