호출을 통해 쉘 명령을 실행하는 C 코드를 작성하는 경우 이것이 최선의 방법이 아닐 수도 system()
있고 사용하는 것이 더 나을 수도 있지만 exec
경험 fork
이 풍부한 C 프로그래머가 분기 및 실행을 통해 쉘을 생성하는 것이 잘못되었다고 말한 이유를 이해합니다. 하지만 그는 왜 그런지 대답하지 않았습니다. 나에게 말해 줄 수 있나요? 내 코드를 오해했을 수도 있습니다.맞춤형 새 쉘프롬프트에 입력할 수 있는 파이프를 사용 fork
하고 실행합니다.exec
그는 최고의 쉘이 의 프로그램도 구현할 수 있다는 뜻인가요 /bin
? 숙련된 C 프로그래머의 말을 인용했는데, 그가 왜 나에게 이런 말을 했는지 이해가 되지 않습니다.
IMHO, 셸에서 C 코드를 사용하여 여러 프로그램을 포크하고 파이프하는 것은 매우 잘못되었습니다.
답변1
쉘을 호출하지 않고 직접 프로그램을 실행하는 두 가지 주요 이유는 다음과 같습니다.
- 성능: C 프로그램에서 호출하는 대부분의 프로그램은 셸보다 훨씬 작을 가능성이 높기 때문에 더 빠르게 시작됩니다.
- 환경 제어: 환경 변수의 추가 계층을 처리하면 구성 및 문제 해결이 더 복잡해질 수 있습니다.