C언어 System 함수 사용 할때 메모리 문제

기챤아@Google의 이미지

System 함수를 사용하려고 하는데 사용하고 있는 프로세스가 전체 메모리의 50% 이상을 사용하고 있습니다.
이때 system 함수를 사용하면 프로세스가 죽는 문제가 발생하는데
system 함수에 fork가 있고 현재 프로세스를 복사하면 메모리가 100퍼가 넘어서 죽는것처럼 보입니다.
메모리 문제때문에 system 함수를 사용하지 못할 것 같은데 다른 시스템 명령어가 있나요?
혹은 메모리 문제와 상관없이 system 함수를 사용하는 방법이 있나요??

익룡의 이미지

system() 을 수행할 간단한 프로그램을 만들면될거같네요
위 프로그램에는 실제 명령을 내릴 서버와 메세지를 주고받을수있도록 소켓 통신하면되구요
같은 os상에 떠있을거같으니 loopback으로 하시면 되겟네요.

Necromancer의 이미지

system() 대신 fork() + exec() 로 해보세요.

쉘스크립트 사용해야 한다면 쉘스크립트 없애시고요. system()은 님 원하시는 프로세스뿐만 아니라 쉘 프로세스도 실행합니다.

Written By the Black Knight of Destruction