0926 - tamagoyakii/minishell GitHub Wiki
Parsing
에러 처리 논의
- malloc() 할당 실패 등의 error -> 모든 메모리 해제 후 새로운 라인 받기.
- syntax error -> ? => syntax error 관련 반환 값이 따로 필요할 듯
Execute
전역변수 구조체 정의
typedef struct s_info
{
struct s_env *env_list;
/* 환경변수 리스트,
정렬해서 출력하거나 와일문 돌면서 키 값을 찾을 때 사용함 */
char **env;
/* execve()에서 사용할 환경변수 이중포인터,
환경변수가 추가되거나 삭제될 때 핸들링 해줘야 함 */
int last_exit_num;
/* "$?"를 위한 변수 */
pid_t pid;
/* 구현부에서 부모프로세스인지에 따라
exit | return 구분을 위해 사용 예정 */
} t_info;
에러 처리 논의
- 처리 방법
- 에러시 부모프로세스인지, 자식 프로세스인지 pid 확인(전역변수 구조체에 부모 프로세스 pid가 담겨 있음)
- 부모프로세스에서 쉘이 끝나면 안 되는 경우, return ;
- 자식 프로세스는 exit 시켜줌
- 에러메시지
- command not found
- too many arguments
- no such file or directory
- 등등 ... (남준님이 처리해줄꺼임!)
todo
echo
(-n
옵션) : 남준exit
: (+ error 처리까지)남준cd
: 재영pwd
: 재영export
: 재영unset
: 재영env
: 재영
⇒ ⚡️남준이는 일찍 끝내면 자잘한 수정사항, 이슈 관리 예정