구문 분석하는 명령을 실행해야하는 작은 셸을 코딩하고 있습니다.execvp 및 wait() 후에 제어를 다시 얻을 수 없습니다.
f는 다음과 같이 char **입니다. [ls] [- la] p는 다음과 같이 사용됩니다. [wc] 그래서 ws에서 ls -la를 파이프 처리했습니다. 내 문제는 "ls -la | wc & & 날짜"를 실행하면 파이프에 대해 잘 작동하며 내 미니 쉘은 닫히고 "날짜"는 실행되지 않습니다. 나는 그것이 끝나기를 기다리기 위해 대기 함수를 사용했지만 아무 것도하지 않습니다. 두 번째 execvp 직후에 멈추고 종료되는 것처럼 보입니다.
내 배열은 NULL로 끝납니다. ls -la | wc는 잘 실행되었지만이 후에 bash로 돌아온다. execlp 및 execl 함께 시도한 있지만이 내 첫 번째 인수 (ls + -la) 옵션이 필요하다고 고려 probleme 아니라고 생각합니다. 제발 도와 주실 수 있습니까? 미리 감사드립니다.
감사합니다. 이해합니다. 내가 왜 내 껍질로 돌아 가지 않는지 알 겠어?하지만 내 파이프 뒤에 배시로 돌아 왔어? – user2145240
@ user2145240 : 실행()이 반환되지 않으므로 셸로 돌아 가지 않습니다. 쉘이'ls'로 대체되었으므로'ls'가 종료되면 bash로 되돌아갑니다. – rici
Hmmm 볼 수는 있지만 쉘로 되돌릴 수있는 방법을 모르겠다 ... – user2145240