
1. --except-files 등록하기 A. rm.c 파일에 Long type 옵션 등록 Short type option인 -b가 ‘invalid option’으로 인식되는 문제를 해결하지 못하였지만, 일단 Long type option인 --except-files를 등록하였다. struct option { const char *name; /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; /coreutils/lib/getopt-ext.h 파일에는 option 구조..

1. --help로 -b와 --except-files 출력 A. --help 출력 함수에 옵션 설명 추가 void usage (int status) { if (status != EXIT_SUCCESS) emit_try_help (); else { printf (_("Usage: %s [OPTION]... [FILE]...\n"), program_name); fputs (_("\ Remove (unlink) the FILE(s).\n\ \n\ -f, --force ignore nonexistent files and arguments, never prompt\n\ -i prompt before every removal\n\ "), stdout); ... fputs (_("\ -r, -R, --recursiv..

1. rm.c가 include한 헤더 파일 위치 파악 저번 주에 coreutils를 실행하기 위한 작업을 진행하였다. 그 결과 git clone한 coreutils 디렉터리에 실행에 필요한 여러 파일이 추가되어 디렉터리 내용이 많이 바뀌었다. 그중 rm.c 파일과 이와 연관된 파일만 분석하였다. 위 사진은 rm.c 파일의 include 부분을 캡처한 것이다. C언어 표준 라이브러리 stdio.h, assert.h, sys/types.h /coreutils/lib config.h, argmatch.h, error.h, root-dev-ino.h, yesno.h, priv-set.h /coreutils/src system.h, die.h, remove.h /gcc/include (별도 파일) getopt.h..

1. 프로젝트 repository의 README-kor.md 파일 작성 제안서 내용 순서를 README 파일에 어울리게끔 재배치하였다. https://github.com/YejinHwang-D/rm-execpt-files/blob/main/README-kor.md GitHub - YejinHwang-D/rm-execpt-files: written in shell script written in shell script. Contribute to YejinHwang-D/rm-execpt-files development by creating an account on GitHub. github.com 2. GNU 라이브러리 컴파일 문제 해결 A. 기존 컴파일 문제 /home/kmi0817 디렉터리에서 “git ..

이번 학기에 오픈소스에 기여하는 프로젝트 과목을 수강하고 있습니다. 매주 진행사상 보고서를 작성하는 만큼, 티스토리 블로그에도 오픈소스 기여 과정을 업로드하면 좋겠다 싶어서 작성해요. 팀원 한 명과 함께 진행하는 프로젝트이고, 아래는 작성한 제안서 내용 일부를 가져왔습니다. 해당 옵션의 아이디어는 팀원이 제시하였고, 아래 제안서의 모든 내용은 팀원과 회의하여 함께 도출한 내용입니다. 팀원이 적은 부분은 인용 처리를 하였고, 나머지 개요와 옵션 사용 예시는 제가 작성해서 전체 다 올렸습니다 :) 0. 프로젝트 주제 rm 명령어 옵션: 디렉터리 삭제 시 삭제에서 제외할 파일 설정 1. 개요 어떤 디렉터리에서 일부 파일은 남기고 나머지만 삭제하고자 할 때가 있다. 유닉스/ 리눅스 체제에 익숙한 사용자라면 파일..

이전에 적었던 VScode와 깃허브 연동 방법보다 훨씬 간단한 연동 방법이 있습니다. git clone만 하면 돼요! 1. GitHub에 새 디렉토리 생성하기 새 디렉토리를 생성할 때 README.md 파일을 추가하겠다고 체크해주세요! 2. 새 디렉토리 git clone 하기 해당 디렉토리 화면에서 초록색 Code 버튼 클릭 & 빨간색 동그라미 친 부분 클릭하여 주소 복사하기 터미널이나 CMD 창에서 해당 디렉토리 git clone 하기 git clone { 복사한 디렉토리 깃허브 주소 } 3. VScode에서 연동 확인하기 git clone 한 뒤 VScode에서 해당 폴더 오픈하기 작업 후 변경 내용 commit 하기 1) test.txt 파일 생성 후 스테이지에 올리기 2) 아래 캡처 화면 중 ✔ ..

MongoDB를 처음 사용해 보는데요, JSON 문서처럼 데이터를 저장할 수 있다는 게 굉장히 매력적이라고 생각해요. 스키마가 없는 데이터베이스로, JSON 형식 데이터를 다룬다. 몽고DB가 자동으로 각 데이터의 고유 ID를 부여한다. collection은 RDBMS의 테이블과 비슷한 개념이다. nested data structure를 저장할 수 있다. 아래 유튜브 영상과 몽고DB 도큐먼트를 참고하여 작성하였습니다 :) https://www.youtube.com/watch?v=ofme2o29ngU&t=1182s 참고 영상 https://docs.mongodb.com/manual/crud/ MongoDB CRUD Operations — MongoDB Manual Docs Home → MongoDB Manu..

어제는 맥에서 몽고DB를 설치해 보았는데요, 이번엔 윈도우 환경에서 다시 작업해 보려고 합니다! 1. MongoDB Community Server 다운로드 하기 https://www.mongodb.com/try/download/community MongoDB Community Download Download the Community version of MongoDB's non-relational database server from MongoDB's download center. www.mongodb.com 위 사이트를 방문하시면 바로 여러 MongoDB 서버를 다운받을 수 있는 화면이 나오는데요, 그중 "MongoDB Community Server"를 클릭하셔서 다운로드 버튼을 눌러 주세요! Mongo..

** 맥MAC 인텔 칩 환경입니다 :) 1. homebrew 설치하기 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" homebrew 설치 명령어는 https://brew.sh/ 에서도 복사하실 수 있습니다. 이후 homebrew가 잘 설치되었는지 확인하기 위한 명령어는 아래와 같습니다. brew -v 2. homebrew에서 MongoDB 탭 찾기 brew tap mongodb/brew 명령어를 치고 엔터를 눌러도, 아무런 문구가 뜨지 않아요! 엔터 치면 그냥 다음 프롬프트가 떠서 입력을 기다리고 있습니다. 3. MongoDB community 설치하기 mongodb-communi..

** 백준 단계별로 풀어보기를 처음 시작했을 때 작성한 글을 임시저장 해놓았다가 뒤늦게 업로드 합니다 ㅎ 1. 깃허브에서 새 레포지토리 생성하기 저는 백준 사이트의 "단계별로 풀어보기" 코드를 업로드할 용도의 레포지토리를 생성하였습니다. 2. 본인 컴퓨터에서 깃허브와 연동할 폴더 생성하기 컴퓨터에 레포지토리와 동일한 폴더를 생성하고, README.md 파일을 만들었습니다. 굳이 md 파일이 아니더라도, 아무 파일이라도 있어야 깃허브 연동 후 파일 업로드 여부에 따라 연동일 잘 됐는지 안 됐는지를 알 수 있겠죠? 3. VScode 레포지토리 초기화하기 VScode 좌측의 3번째 아이콘을 클릭하면 소스 제어라는 것이 나옵니다. 소스 제어에서 "리포지토리 초기화" 버튼을 클릭합니다. (GitHub에 게시 버튼..