cmd1이 stdout에 무엇인가를 인쇄한다고합시다. C에서 cmd1로 캡처 할 수있는 cmd1 | cmd2가 작동합니다.C (cmd1 | cmd2) 함수의 결과 캡처
즉
cmd1{
fprintf(stdout, "Hello");
}
cmd2 : should take "hello" and only print "hel".
cmd1이 stdout에 무엇인가를 인쇄한다고합시다. C에서 cmd1로 캡처 할 수있는 cmd1 | cmd2가 작동합니다.C (cmd1 | cmd2) 함수의 결과 캡처
즉
cmd1{
fprintf(stdout, "Hello");
}
cmd2 : should take "hello" and only print "hel".
파이프 라인 작업을 사용하려면 CMD2는 stdin
에서 읽어야한다. fgets()
이 stdin
에서 읽기 때문에
예를 들어,이 같은 작업을 수행 할 수 있습니다
표준 출력은 다른 프로그램과 상호 작용 C와 아무 상관이 어떻게#include <stdio.h>
int main() {
char buf[1024];
while (fgets(buf, sizeof(buf), stdin)) {
printf("%.*s\n", 3, buf);
}
return 0;
}
출력이 여러 줄에 있으면 어떻게됩니까? line1 : hello, line2 : hello, line3 : hello. 첫 번째 두 줄만 출력하고 싶지만 둘 다 "hel"가됩니다. – user461316
다른 질문처럼 들립니다. 내 대답이 *이 * 질문을 만족합니까? –
-이 운영 체제입니다. 그러나, 모든 OS에 나는 CMD2의 표준 입력에 CMD1의 표준 출력을 보내드립니다
cmd1 | cmd2
를 입력 사용했습니다.
이것이 작동하지 않으면 어쩌면 cmd1 프로그램에서 버퍼를 플러시해야합니다. (이것은 많은 것들에 달려 있지만 ... 시도해보십시오.)
cmd1과 cmd2는 같은 프로그램에서 작동합니까? 아니면 명령 줄 프로그램입니까? – Satya