나는 기본적으로 쉘이 사용자로부터 입력을받는 C 프로그램의 응용 프로그램/바이너리를 가지고있다. 따라서, 백그라운드에서 응용 프로그램을 시작할 때 &
을 사용하면 자동으로 멈 춥니 다. 왜냐하면 내가 액세스 할 수없는 구현이 있기 때문입니다. 이 코드를쉘을 사용하는 백그라운드에서 리눅스 응용 프로그램을 실행하는 방법은 무엇입니까?
iStatus = system("./flute-static -send -a232.0.0.1/6666 a.txt &");
을 실행하면 그것은 출력 [1] 21970
, PID를 제공합니다. 나는 다른 입력 누르면
는 다음에, 출력을
[1]+ Stopped ./flute-static -send -a232.0.0.1/6666 a.txt
를 제공하고 분명히 데이터를 전송하는 데 실패합니다. 문제를 어떻게 해결할 수 있습니까? 도와주세요. 미리 감사드립니다.
도 전경에서 (&없이) 프로세스를 시작한 다음 자격 증명을 입력 한 후 백그라운드로 보낼 수 있습니다 (bash : ctrl-z를 입력하고 bg 다음에 return을 입력하십시오). 하지만 이것은 프로그래밍 문제가 아닙니다 ... – sergio
이것은 프로그래밍 문제가 아니며 [unix] (http://unix.stackexchange.com/) 사이트에 속합니다. 그러나 대답은 아마 당신이 이해하지 못하는 무언가를하려한다는 것입니다 - 프로그램이 표준 입력을 읽어야 할 필요가 있다면 그 입력을 제공하는 무언가에 stdin을 붙일 필요가 있습니다. – geoffspear
오해해서 죄송합니다. 사실 저는 system() 함수를 사용하여 c 프로그램에서 실행하고 있습니다. 나는 그 질문을 수정했다. @ 수르지오 지금 나를 도울 수 있니? – JatiA