취미로 Linux에서 기본 셸을 작성 중이므로 프로그램 실행을 시작하려고하지만이 작업을 수행하는 방법에 대해서는 알지 못합니다. 나는 execp()
과 다양한 형제와 자매를 보았지만 분명히 커널이 현재 실행중인 프로세스 (이 경우에는 쉘)를 삭제하고 새 프로세스를 계속 수행하도록합니다.내 C 프로그램과 다른 프로그램 실행
기본적으로 내가 필요한 것은 ls
또는 cd
과 같은 명령을 호출하여 실행하고 내 셸로 돌아갈 수있는 함수입니다.
모든 도움을 주실 수 있습니다.
좋아, 쉘의 새로운 인스턴스를 만들거나 그냥'fork'를 사용하여 간단한 프로그램을 만들고 그 프로세스에서'exec' 함수를 호출하면된다. 그렇다면 믿을 수 없다고 생각합니다. 감사합니다. –
먼저 포크 한 다음 exec 명령을 사용하여 원하는 명령을 호출하십시오. 이것은'cd'에서는 작동하지 않는다는 것에주의하십시오. – JeremyP
감사합니다. 몇 가지 제안 사항을 얻은 다음 각 방법을 테스트 할 것입니다. –