쉘짜는데 백그라운드 & 표시가 들어오면 백그라운드로 돌려야해
근데
ls ; ps 이렇게 2개가 올경우 ls &; ps 이런경우는 문법오류로 나와야하고 ls ; ps & 이것처럼 문자열 맨끝에 &가 오는경우만 해당되
문제는 앞에 ls는 포그라운드로 처리해야하고 ;경계로 뒤에 ps &는 백그라운드로 처리해야돼
그래서 내가 생각한게
일단 ls;ps & 이걸 통째로 입력받는단말야? 여기서 맨끝에 &인경우 &를 판단하는거야 - 1단계
판단해서 맞으면 &를 NULL로 바꿈 - 2단계
ls ; ps 상태이고
이제 내가 짠 쉘에서 과정은 ls와 ps를 나눔 그리고 ls 부터 반복문으로 넣음
이떄 나눌떄 갯수를 셈 즉 2개임 ls와 ps 니까 -3단계
그리고 반복문 인자 i가 갯수인 2-1(배열인덱스니까)과 같다면
그 때 타입이란 int를 만들거나 char를 만들거나 어쨋든 int형만든다치고 int가 10을 받으면 그건 백그라운드 - 4단계
백그라운드 일때만 waitpid()로 기다림 - 5단계
근데 저기서문제가
1단계하고 2단계임..............
어떻게 마지막 NULL직전에 &를 판단하는지 그리고 &를 NULL로 바꾸는지가 지금 고민됌...
댓글 0