Коды для двух программ,Piping в окнах CMD не работает для двух программ, написанных на C
p1.c:
#include <stdio.h>
int main() {
printf("Program1");
return 0;
}
p2.c:
#include <stdio.h>
int main (char argc, char *argv[]) {
printf("%s", argv[1]);
printf(" | Program2");
return 0;
}
Когда p1 | p2
вводится в CMD, ожидаемый выход : Program1 | Program2
. Но выход я получаю: (null) | Program 2
. Очевидно, что выход p1 не принимается с p2. Как я могу решить эту проблему?
Это сработало! Кстати, как я могу вызвать p1 таким образом, чтобы его вывод попадал в p2 в качестве аргумента? – sope
| является символом CMD exe. Это ничего не значит для любой программы, кроме CMD.EXE. При использовании | то CMD.exe должен интерпретировать его. Я ссылаюсь на его использование в p2.c. – Noodles
По http://stackoverflow.com/questions/2768608/batch-equivalent-of-bash-backticks Я бы предложил 'for/f% a in ('p1') сделать p2% a'. Если в пакетном файле, не забудьте использовать %% вместо%. – keefer