C 프로그램에서 execvp()
을 사용하여 netcat 수신기를 만듭니다. 프로그램이 종료되면 리스너를 죽이고 싶습니다. 예 :execvp 프로세스를 종료하는 방법
int main(){
char *listener[] = {
"/bin/bash",
"-c",
"nc -l 1338 > text.tar",
NULL
};
execvp(listener[0], listener);
return 0;
}
프로그램이 종료되기 전에이 netcat 프로세스를 종료하고 싶습니다. 그러나 나는이 코드를보고 netcat 리스너가 데이터를 받기 전에 프로그램이 종료 될 것이라고 생각하고있다. 대기 명령을 내릴 수도 있습니다.
- 가 어떻게이 execvp는의 였는지를 죽일 수 있습니다
나는이 두 가지 질문으로 귀결 것 같아요?
- netcat에 시간을주기 위해
wait()
전화가 필요합니까?
https://serverfault.com/questions/512722/automatically-close-netcat-connection – ymonad
@ymonad, netcat 수신기를 열고 클라이언트가 일부 데이터를 보내고 서버를 타르로 누른 다음 수신자를 닫습니다. – yasgur99
예. 나는'-c' 또는'-q' (netcat 변형에 의존)를'nc'에 줄 수 있고, 전송이 끝나면 클라이언트로부터'EOF'를 보낼 수 있음을 의미합니다. 이 옵션을 사용할 수없는 이유가 있습니까? – ymonad