안녕하세요, 저는 C++로 셸을 작성하려고하는데 exec 명령에 입력 파일을 사용하는 기능에 문제가 있습니다. 예를 들어, Linux의 bc 쉘은 "bc < text.txt"를 수행하여 텍스트의 행을 유행과 같은 배치로 계산할 수 있습니다. 나는 나의 껍질과 마찬가지로하려고 노력하고있다.파일 입력이있는 exec 패밀리
char* input = “input.txt”;
execlp(input, bc, …..) // I don’t really know how to call the execlp command and all the doc and search have been kind of cryptic for someone just starting out.
이렇게해도 exec 명령을 사용할 수 있습니까? 또는 줄 단위로 읽고 exec 명령을 for 루프에서 실행해야합니까 ??
execlp는 단일 프로세스를 시작하는 데 사용됩니다. 입력 파일을 한 줄씩 읽고 각 명령을 개별적으로 처리해야합니다. – CurtisB
execlp()는 컴파일 타임에 명령과 인수를 알고있을 때만 사용됩니다. 쉘을 사용하는 경우가 거의 없습니다. exec *() 계열의 함수 중 execv *() 부분을 사용한다고 가정해야합니다. –