간단한 쉘을 구현하려고합니다. 나는 포크 공정이 방법 :C에서 파이프 구현?
void forkProcess(char* cmd[]) {
pid_t pid;
char programPath[BUFFERLENGTH] = "/bin/";
strcat(programPath, cmd[0]);
int exitStatus;
pid = fork();
switch (pid) {
case -1:
printf("Fork failed; pid == -1\n");
break;
case 0:
execv(programPath, cmd);
exit(0);
break;
default:
waitpid(pid, &exitStatus, 0);
//printf("Exitstatus = %d\n", WEXITSTATUS(exitStatus));
break;
}
}
는 이제 cmd
매개 변수는 파이프, 예컨대 :
"ls" "-l" "|" "grep" "whatever" "(char*)NULL";
그래서 어떻게 파이프 기능을 구현할 수 있습니다 포함되어있을 수 있습니다? pipe()
및 dup()
과 같은 기능이 있지만이 컨텍스트에서 사용하는 방법을 알지 못합니다.
주셔서 감사합니다.