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;

에러 처리 논의

  1. 처리 방법
  • 에러시 부모프로세스인지, 자식 프로세스인지 pid 확인(전역변수 구조체에 부모 프로세스 pid가 담겨 있음)
  • 부모프로세스에서 쉘이 끝나면 안 되는 경우, return ;
  • 자식 프로세스는 exit 시켜줌
  1. 에러메시지
  • command not found
  • too many arguments
  • no such file or directory
  • 등등 ... (남준님이 처리해줄꺼임!)

todo

  • echo (-n 옵션) : 남준
  • exit : (+ error 처리까지)남준
  • cd : 재영
  • pwd : 재영
  • export : 재영
  • unset : 재영
  • env : 재영

⇒ ⚡️남준이는 일찍 끝내면 자잘한 수정사항, 이슈 관리 예정