2012-01-27 4 views
0

을위한 C 프로그램을 확인합니다. obex_test은 obex 파일 전송 라이브러리입니다. 여기서는 원격 장치에서 블루투스를 통해 로컬 장치로 파일을 보내려고합니다. 이 obex_test는 여기에 내가 대화 형 모드처럼 하나 개의 명령이 대화 형 모드

의 매뉴얼 페이지입니다 아무도 내가이 명령과 같은 대화식 모드에서 내 C 프로그램을 넣을 수있는 방법을 말해, 나는 또한이 명령을 사용할 수 있습니다하십시오.

나는 popen(command,"r")을 사용했지만 유용하지는 않습니다. 그것은 사용자로부터 입력을받지 않습니다. "w" 모드를 사용한 경우 어떤 일이 발생하는지 알 수 없습니다. 나는 >Unknown Command과 같은 메시지를 직접받습니다. 다른 옵션을 주면이 명령이주는 오류입니다. 따라서 쓰기 모드로 사용됩니다.

답변

-1

시스템 명령을 사용할 수 있습니다. 자세한 내용은 매뉴얼 페이지를 확인하십시오. 예 : 시스템 ("obex_test -b 172.16.7.1 1234");

+0

실행 후 나는 무언가를 입력해야만한다 – user1089679

+0

@ user1089679 예, "대화식 모드"의 의미는 무엇입니까? –

+0

여기서는 시스템 호출을 사용하는 방법을 묻지 않습니다. 나는 여기 대화식 모드를 요구하고있다. – user1089679

1

두 쌍의 파이프 (pipe(2) 시스템 호출로 생성 됨)를 가질 수 있습니다. 하나는 프로그램에서 obex_teststdin으로, 하나는 obex_teststdout에서부터 프로그램에 대한 데이터입니다. 그럼 당신은 forkexecve ... 그러나 ... (프로그램의 출력 파이프가 가득 차면 obex_test표준 입력에 쓰기를 차단에서 차단), 당신은 poll(2) 또는 select(2)를 호출해야 할 수도 있습니다 교착 상태의

을 조심 것 설명서 페이지에 "obex_testlibopenobex 라이브러리의 테스트 응용 프로그램입니다." 그렇다면이 libopenobex 라이브러리에서 직접 함수를 호출하지 마십시오. 프로그램에 연결하면됩니까?

+0

이 파이프 개념의 예를 들어 주시겠습니까? 제발 나를 초급 오전 – user1089679

+0

파이프, 프로세스, ....에 대한 자세한 내용은 리눅스 또는 유닉스 프로그래밍에 대한 모든 표준 책을 읽어하지만 당신은'강력하게 libopenobex' 라이브러리를 사용하는 것이 좋습니다; 유닉스 프로그래밍 http://basepath.com/aup/와 리눅스 프로그래밍 http://www.advancedlinuxprogramming.com/ –

+0

oki 나는 도서관 방식으로 갈 것이다. 나는 openobex 라이브러리를 찾아서이 것을 바꾸어야한다. – user1089679