C++에서 프로세스를 독립적으로 포크하는 방법이 있습니까? 표준이 모든 함수 또는 라이브러리를 제공합니까?일부 표준 라이브러리와 같이 C++에서 프로세스를 독립적으로 포킹 할 수있는 플랫폼이 있습니까? 코드를 이식성있게 만들려면 어떻게해야합니까?
새 스레드를 만들려면 std::thread
이 있어야합니다. 표준 구현시 사용되는 운영 체제의 기본 스레딩 모델을 사용합니다.
새로운 프로세스를 만드는 데 이와 같은 유사점이 있습니까?
리눅스에서는 fork()
시스템 호출을 사용하여 새 프로세스를 포크 할 수 있습니다. 그러나 이것은 Windows에서 작동하지 않습니다. 그래서, 같은 코드가 많은 플랫폼에서 재사용 될 수 있도록 프로세스를 포크하는 방법을 찾고 있습니다.
this 및 this과 같이 이전에 묻는 유사한 질문에 대한 답변 중 일부는 QThread, OpenThread, Boost, SFML 등을 사용하는 것이 좋습니다. 그러나 현재 표준에서 제공하는 방법이 있습니까?
그렇지 않은 경우 어떻게 코드를 휴대용으로 만들 수 있습니까? 지금은 Windows 및 Linux에서만 작동해야하지만 일반적으로 일반적인 방법이 있는지 알고 싶어합니다.
프로세스에'fork()'하는 플랫폼에 독립적 인 방법은 없습니다. 그게 전부 야. 이것은 어떤 표준에 의해서도 다루어지지 않습니다. POSIX는 Linux의 표준입니다. 필자는 Windows의 POSIX 호환 레이어에 대해 계속 듣고 있습니다. 그 사실을 조사하고 싶을 수도 있습니다. –
이 질문은 귀하가 링크 한 질문과 정확히 일치합니다. 릴리스 된 표준 중 하나에서 새로운 프로세스를 생성 할 수있는 조항이 없기 때문에 모든 응답이 제 3 자 라이브러리를 참조합니다. –
특히 관심이있을 수 있습니다 ... "현대 시스템에서 스레드와 프로세스 사이의 실용적인 차이는 슬림합니다"(http://stackoverflow.com/a/10602727/8877) 대답이있을 수 있습니다. 실제로 여러 프로세스가 필요하지 않을 수도 있습니다. –