[질문]실행중인 프로그램에 입력을 넣을방법

Fe.head의 이미지

test 이라는 프로그램이 아래와 같은 소스를 가지고 있다고 하고

/* a.out */
#include <stdio.h>

int main()
{
        char str[100];
        scanf( "%s", str );
        puts( str );
        return 0;
}

이 프로그램을 실행 하고 나서 입력을 다른 프로그램상에서 해주어야 할경우
어떻게 해야 돼나요..

저는 아래 코드로 해봤는데.. 안돼더군요.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main()
{
        system( "./test &" );
        write( 1, "abc\n", 4 );        /* 0인지 1인지 몰라 둘다 해봤음 */
        return 0;
}
eminency의 이미지

실행할 때 " test | a.out" 이런식으로 하시든지...

코드 상에서 해결하고 싶다면 fork시킨 뒤 exec랑 pipe를 써서 하셔얄 듯...;;

노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5

dotri의 이미지

pipe 를 쓰시면 될것같네요.
man popen

Fe.head의 이미지

아.. 파이프를 써서 대략 구현 했습니다.

정말 감사합니다. 꾸벅 (-_-) (_ _) (-_-)

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"