Firebreath를 사용하여 플러그인을 구축 중입니다. 나는 ABCPluginAPI.cpp
이라는 개인적인 방법을 exe_program()
이라고 불렀고 나는 my_program
이라는 popen을 사용하는 다른 프로그램을 호출하고 싶다. 모든 파일은 firebreath/projects/ABCPlugin /에 있습니다.Firebreath에서 개인 프로그램 사용
내 방법은 다음과 같습니다 플러그인 내가 pwd
명령을 실행 실제로 경우, my_program
를 실행하지 않는 것을
string ABCPluginAPI::exe_program()
{
FILE * pPipe;
fd_set readfd;
char buff[1024];
char command[128];
int ret;
strcpy(command, "my_program");
if (!(pPipe = popen(command, "r"))) {
// Problem to execute the command
return "failed";
}
while(fgets(buff, sizeof(buff), pPipe)!=NULL){
cout << buff;
return buff;
}
}
내가 가진 문제는, 내 $ HOME 디렉토리를 보여줍니다. pwd
은 일반적인 명령이기 때문에 작동하지만이 프로그램은 이식성이 있어야하기 때문에 $ PATH 변수에 프로그램을 넣고 싶지 않습니다.
아마도 Firebreath는 이러한 종류의 파일 또는 이와 유사한 파일을 가리키는 특수 디렉토리를 사용합니다.
답해 주셔서 감사합니다. 내가 집에 갈 때 나는 그것을 시험 할 것이다. –
pluginPath는'$ HOME/Documents/firebreath/build/bin/ABCPlugin'을 보여주었습니다. 실행 파일을 거기에두고 호출했지만 작동하지 않았습니다. 사실 나는 그 폴더에서 실행 파일을 pwd로 시도하지만 작동하지 않았다. ./pwd와 함께 절대 경로 $ HOME/Documents/firebreath/build/bin/ABCPlugin/pwd를 사용하여 전화를 걸었습니다. 도와 주셔서 감사합니다. –
콘솔 창 및/또는 -g 옵션 (디버거에 넣기 위해)에서 firefox를 시작하십시오. 콘솔에서 그리고 확실히 w/-g를 사용하면 stdout 출력을 얻어야합니다. 따라서 오류 메시지를 발견 할 수 있습니다. – taxilian