system()으로 실행한 명령의 결과물을 프로그램에서 받아들이는 방법
글쓴이: middlism / 작성시간: 토, 2007/01/13 - 4:18오후
안녕하세요.
제가 윈도우에서 리눅스로 명령어를 주고, 그 결과를 윈도우에서 받아 보려고 합니다.
리눅스에서 데몬 프로그램을 하나 띄우고, 윈도우에서 리눅스로 소켓을 통해서 명령어를 주면,
데몬이 system()으로 전송받은 명령어를 실행시키는 것 까지는 문제가 없는데요.
명령어가 실행된 후 나오는 결과물 (예를 들어, ls명령이면 파일 리스트가 나오겠죠)을 데몬프로그램에서 받아 들여서,
윈도우로 전송해 주려고 하는데, 이게 쉽지 않네요.
'>'를 이용해서 파일로 읽어 들이는 방법 말구요, 직접 받을수 있는 좋은 방법 없겠습니까??
Forums:
pipe를 사용하시면
pipe를 사용하시면 어떨까요?
어떻게요???
그게 system()를 통해 실행한 명령의 결과를 파이프로 받아들인다는게 가능한가요?
system을 사용한
system을 사용한 방법은 아니지만
파이프 생성 -> fork -> exec를 사용해 명령어를 실행한후
명령의 결과를 pipe로 부모 프로세스에게 전달할 수 있습니다.
그전에 표준출력과 표준입력을 pipe 재지정해 주어야합니다.
popen(3)
http://bama.ua.edu/cgi-bin/man-cgi?popen+3C
...파일 입출력을 하듯이 프로그램과 통신.
간단히 하실 수 있죠. ^^
----
The future is here. It's just not widely distributed yet.
- William Gibson
대단히 감사합니다.
(-.-)(_ _)(*.*)
댓글 달기