Wine에서 실행되는 Windows 프로그램이 있습니다. 이 Windows 프로그램을 사용하면 외부 프로그램을 실행하기 위한 "도구"를 설정할 수 있으며, 이 도구는 표준 출력/오류를 캡처하여 Windows 프로그램 인터페이스에 표시합니다.
나는 그러한 도구로서 기본 Linux 프로그램을 실행할 수 있기를 원합니다. Windows 프로그램에서 Linux 프로그램을 실행할 수 있지만 출력에 액세스할 수 없습니다. 대신, Windows 프로그램을 실행하는 콘솔 창에 Linux 프로그램의 출력이 나타납니다.
내 특정 프로그램은 텍스트 편집기인 EditPad Pro이지만 가능하다면 외부 프로그램을 실행하는 모든 Windows 프로그램에서 작동하는 솔루션을 원합니다. (많은 텍스트 편집기에는 편집 중인 소스 코드를 컴파일/실행하는 기능과 같은 기능이 있습니다.)
일례로 /usr/bin/python3 --version
테스트를 위해 외부 도구로 실행해 보았습니다. 일반 Linux 터미널을 열고 실행합니다 . Myprogram에서 외부 도구로 wine myprogram.exe
설정합니다 . /usr/bin/python3 --version
(나도 start /unix
before를 사용해 보았지만 역시 작동하지 않았습니다.) 도구를 실행하면 이라고 입력한 Linux 터미널에 Python 버전 정보가 표시됩니다 wine myprogram.exe
. 내 프로그램에서 Python 출력을 볼 수 없습니다. 그러나 나는 그 출력이 Myprogram을 시작한 Linux 터미널이 아닌 이를 실행하는 "Myprogram"으로 전송되기를 원합니다.
이 목표를 어떻게 달성할 수 있나요?
답변1
당신이 말한 것에서는 MS 프로그램이 외부 도구의 stdout을 캡처하고 있다는 증거가 없습니다. stdout이 MS 프로그램이 실행되는 터미널에 나타나는 경우("대조적으로 Linux의 출력은 프로그램이 콘솔 창 "Windows 프로그램을 실행했습니다."에 표시됩니다.) 이는 외부 프로그램이 호출자로부터 stdout을 상속하고 있음을 나타냅니다.
MS 프로그램에서 데이터를 읽을 수 있는 방법을 찾아야 합니다. 어떤 옵션이 있는지 확인하세요.
- 외부 도구의 표준 출력을 읽는 옵션이 있습니까?
- 파일을 읽고 명령을 함께 문자열로 묶는 방법이 있습니까?