2013-08-06 2 views
-1

FreeBSD와 C/C++를 사용하여 로봇을 제어하고 있습니다. 여기에 문제가 있습니다 :c/C++에서 여러 popen 호출하기

나는 쓰기 모드에서 로봇을 제어하기 위해 컴퓨터에 명령을 내리기 위해 popen()을 사용합니다. 이제 명령의 출력을 얻고 싶습니다. 그래서 popen()을 읽는 모드로 만듭니다.

사용할 수 있습니까?

부모 프로세스와 하위 프로세스를 만들어야합니까?

답변

1

이제 명령의 출력을 얻고 싶습니다. 따라서popen()을 작성하여 읽는 모드에서 가져 오십시오.

아니요, popen(3)을 사용하여 추가 스트림을 만드는 것은 작동하지 않습니다. FreeBSD를 사용하고 있기 때문에 FreeBSD 파이프는 양방향이므로 popen(3)r+ 인수을 허용합니다. the manual에서 : popen() 이후

이제 양방향 파이프를 이용하여 구현되며, 유형 인수 요청할 수 양방향 데이터는 국지적 타입 인자이어야 널 종료 문자열 R '에 포인터 흐름 읽기 'w' 쓰기 또는 'r +'읽기 및 쓰기.

FILE *의 출력을 fgets(3)과 같이 읽는 것만으로도 충분할 것입니다.