✅ 2024-03-23 내용 추가 내용 구성 원인 파악 해결 방법 참고 원인 파악 문제 상황 Node.js에서 MySQL을 사용하려던 차, 연결 코드를 작성하고 실행하니 1251 오류가 발생하였다. 검색 결과, 클라이언트 프로그램이 MySQL 패스워드 플러그인인 'caching_sha2_password'를 소화하지 못하기 때문에 발생한다고 한다. caching_sha2_password MySQL 8.0에서부터 사용되는 기본 인증 플러그인이다. 데이터베이스 유저의 비밀번호를 SHA-256 알고리즘 기반으로 암호화하여 저장한다. 보안성이 높고, 무단으로 비밀번호를 해독하기 어렵다는 장점이 있다. 그러나 이 방식은 종종 호환성 문제가 발생하는데, 바로 위 같은 경우이다. Node.js에서 설치한 MySQL용 ..
팀원과 함께 작성한 중간 보고서 내용입니다 :) 목차 1. 옵션 개요 2. 설계 내용 a. prompt 관련 b. 삭제 관련 c. 기타 3. 개발자 가이드 a. 개발환경 설정 b. 테스트 환경 설정 c. 빌드/테스트 방법 1. 옵션 개요 어떤 디렉터리에서 일부 파일은 남기고 나머지만 삭제하고자 할 때가 있다. 기존 rm의 interactive 옵션을 사용하면 모든 파일에 대해 삭제 여부를 입력하는 무의미한 작업을 반복하므로 다소 소모적이다. 따라서 본 프로젝트에서는 옵션명은 한번만 입력하고 파일명과 확장자만 반복적으로 입력하여 디렉터리 내부 다수의 파일 삭제를 돕는 고급 삭제 옵션을 추가함으로써 rm 명령어를 사용하는 사용자의 편의성을 높이려 한다. 옵션 타입 사용법 Short option rm -rb ..
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..