유닉스 기반 시스템에서 exec (const char * c) 명령과 system (const char * c)의 차이점은 무엇입니까?유닉스에서의 차이점 exec() 및 system()
둘 다 시스템 호출을 실행하기 위해 C 프로그램에서 호출 할 수 있습니다. 둘 다 차이가 있습니까?
유닉스 기반 시스템에서 exec (const char * c) 명령과 system (const char * c)의 차이점은 무엇입니까?유닉스에서의 차이점 exec() 및 system()
둘 다 시스템 호출을 실행하기 위해 C 프로그램에서 호출 할 수 있습니다. 둘 다 차이가 있습니까?
exec
은 지정된 프로그램으로 프로세스를 대체합니다. 프로그램이 완료되어 계속 실행되지 않습니다.
spawn
은 (아마도 처음에는 fork
을 사용하여) 새 프로세스를 시작하고 프로그램이 계속 실행되는 동안 지정된 프로그램을 실행합니다.
system
은 (아마도 처음으로 fork
을 사용하여) 새 프로세스를 시작하고 프로그램이 대기하는 동안 지정된 프로그램을 실행합니다. 자녀가 퇴장하면 프로그램이 계속됩니다.
exec
은 파일을 실행하고 system
은 쉘을 실행하고 인수를 제공합니다. 위키
:
그것은 (시스템) 대신 실행 객체에 인자를 전달하는 단일 스트링이 시스템 쉘에 전달에 exec 함수/산란 가족 상이 전형적 POSIX 쉘,/bin/sh -c.
http://en.wikipedia.org/wiki/System_%28C_standard_library%29
콘솔을 실행하지 않고 쉘 만 실행합니다. – glglgl
수정 됨. 고맙습니다. –
는'system'은'/ 빈/SH -c "명령"'에서와 같이 쉘에서 명령을 실행합니다. 명령에 재미있는 문자가 포함되어 있으면 큰 차이가 있습니다. – Nemo
@Nemo : 위대한 포인트 –