ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [42서울] 2월 16일(화) 레포트
    42seoul 2021. 2. 16. 19:10

    학습 날짜 : 2021-02-16(화)

    학습시간 : 9:30 ~ 18:00(자가)

    학습 범위 및 주제 : minishell(3Circle)

    동료 학습 방법 : Discord에서 미팅하면서 같이 공부

    학습 목표 : cd 구현

    상세 학습 내용:

    - [x]  cd ../srcs
    - [x]  cd ~
    - [x]  cd
    - [x]  cd ..
    - [x]  cd ../
    
    

    내일 아침에 해야할 것:

    - [ ]  cd ~/Documents
    - [ ]  cd -
    - [ ]  old pwd 처리
    

    구현되어 있는 코드(수정 전)

    #include "minishell.h"
    static char *get_path(char *dest, char *pwd, t_list *env_list)
    {
    char *path;
    char *tmp;
    
    path = NULL;
    if ((ft_strncmp(dest, "..", ft_strlen(dest)) == 0))
    path = ft_strdup("..");
    else if ((ft_strncmp(dest, "~", ft_strlen(dest)) == 0))
    {
    tmp = ft_strdup(get_list_data(env_list, "HOME"));
    path = ft_strdup(&tmp[5]);
    free(tmp);
    }
    else
    path = ft_strdup(dest);
    return (path);
    }
    
    static int renew_old_pwd(char **old_one, char *new_one)
    {
    free(*old_one);
    *old_one = ft_strdup(new_one);
    return 0;
    }
    
    static int go_path(char *dest, t_list *env_list, char **old_pwd)
    {
    char *path;
    char *pwd;
    int ret;
    char s[100];
    
    ret = 0;
    path = NULL;
    if (ft_strncmp(dest, "-", ft_strlen(dest)) == 0)
    printf("%s\n", "before");
    else
    {
    if (!(pwd = get_list_data(env_list, "PWD")))
    ret = 1;
    if (ret == 0 && !(path = get_path(dest, pwd, env_list)))
    ret = 1;
    if (ret == 0 && (renew_old_pwd(old_pwd, pwd)))
    ret = 1;
    }
    
    printf("path: %s\n", path);
    if (ret == 0 && path)
    {
    //if (ret == 0 && (modify_list_data(&env_list, "PWD", path)))
    // ret = 1;
         printf("%s\n", getcwd(s, 100));
    chdir(path);
         printf("%s\n", getcwd(s, 100));
    }
    return (ret);
    }
    
    int handle_cmd_cd(t_list *arg_list, t_list *env_list, char **old_pwd)
    {
    int ret;
    t_list *arg;
    
    ret = 0;
    arg = arg_list;
    while (arg->next)
    {
    arg = arg->next;
    go_path(arg->data, env_list, old_pwd);
    }
    if (arg == arg_list)
    go_path("~", env_list, old_pwd);
    return ret;
    }
    
    

    학습 내용에 대한 개인적인 총평 :

    어제 추웠는지 컨디션이 별로라서 많이 공부는 못했다. 오늘은 6시 정도까지 공부하다가 저녁먹고 운동감. 앞으로 학교 갈 수 있게 되면 공동으로 하는 프로젝트는 더 편할 것 같다.

    실제 코딩한 시간 : 5시간

    다음 학습 계획 :

    -cub3d 보너스 제외하고 이번주~다음주 사이에 다 끝내기
    -minishell은 지금처럼 열심히 하기

    2월에 할 일

    *cub3d
    *minishell
    *오픈소스 기여

    '42seoul' 카테고리의 다른 글

    [minishell] Shell이란? 그리고 Shell이 하는 일  (0) 2021.03.01
    [cub3d] 과제 시작하기  (0) 2021.02.19
    [cub3D] Makefile  (0) 2021.01.05
    [cub3D] 벡터  (0) 2020.12.28
    [cub3d] 과제 파악하기  (0) 2020.12.25

    댓글

Designed by Tistory + Edited by Juepark