프로그래밍 언어
-
[bash] 명령행 인자 $0, $@, $#, $* (command line argument)프로그래밍 언어/Shell Script 2021. 5. 14. 10:50
C언어에서 명령행 인자를 받는 것처럼 Bash 스크립트에서도 명령행 인자를 받습니다. int main(int argc, char * argv[]) 명령행 인자는 Bash 스크립트를 실행할 때 커맨드라인에서 직접 받은 입력으로 C언어와 비교해보자면 argc에 해당하는 건 $#, argv[0]는 $0, argv[1]는 $1 로 매칭할 수 있습니다. 즉, 명령행 인자의 개수나 몇 번째 명령행 인자 등을 받아서 스크립트 내에서 처리할 수 있는 기능을 지원 합니다. 그렇다면 어떤 종류가 있고 어떻게 사용하는 지 알아보도록 합시다. 명령행 인자의 종류? 아래와 같이 3가지 종류의 인자로 구분할 수 있는데요. # 위치 인자(Positional argument) $0, $1, $2, ... ${10}, ${11} ....
-
[bash] 파일, 디렉토리 경로(path) 다루기 dirname, basename프로그래밍 언어/Shell Script 2021. 5. 13. 14:11
Github의 여러가지 오픈 소스를 보면, 각 프로젝트별로 자신들이 사용하는 Path를 bash script를 통해 참 깔끔하게 정리합니다. 그렇게 잘 정리된 프로젝트는 개발자가 해당 오픈 소스 프로젝트를 사용하는 데 있어서 굉장한 편의성을 가져다 줍니다. 하지만 bash 문법에 익숙하지 않으면 어떤 식으로 동작하는 지, 어느 스크립트 혹은 파일를 사용하는 지가 헷갈릴 때가 있기 때문에, 그런 경우에 경로 설정을 해줄 때 사용하는 커맨드를 위주로 정리를 해보려합니다. 경로를 다루는 커맨드? 아래와 같은 3가지 커맨드를 간단한 예제를 통해 설명하겠습니다. $0 dirname basename 간단한 예제를 살펴 봅시다. foo/bar/tmp.sh 를 생성하였습니다. 아래와 같이 tmp.sh에 $0, dirn..
-
[c/c++] int8_t, uint8_t, int16_t, uint16_t ?프로그래밍 언어/C & C++ 2021. 3. 10. 17:38
c언어를 배우면 보통 primitive type 이라고 하여 short, int, long, char, float, double 등의 자료형을 배웁니다. 그런데, 소스코드를 살펴보다 보면 int8_t, uint8_t, int16_t, uint16_t ... 등을 사용하는 것을 심심치 않게 볼 수 있습니다. 이런 자료형들은 라는 헤더에 정의가 되어 있는데요, 어떤 자료형인지, 왜 쓰는지를 알아 보려고 합니다. 1. int8_t, uint8_t, int16_t, uint16_t ... 등은 어떤 자료형인가요? 일단 해당 자료형의 정의가 된 헤더파일의 소스코드는 아래의 링크에서 확인할 수 있습니다. sites.uclouvain.be/SystInfo/usr/include/stdint.h.html stdint.h..
-
[Python] 파일 복사하기 (shutil.copy)프로그래밍 언어/Python 2021. 3. 8. 14:02
파이썬으로 파일을 복사하는 함수인 shutil.copy 의 사용법을 예제로 알아보려고 합니다. 아래 내용은 파이썬 공식 문서를 참고하여 작성하였습니다. 파이썬 shutil 관련 공식 문서 한국어 공식 문서: docs.python.org/ko/3/library/shutil.html shutil — 고수준 파일 연산 — Python 3.9.2 문서 shutil — 고수준 파일 연산 소스 코드: Lib/shutil.py shutil 모듈은 파일과 파일 모음에 대한 여러 가지 고수준 연산을 제공합니다. 특히, 파일 복사와 삭제를 지원하는 함수가 제공됩니다. 개별 파일 docs.python.org 영어 공식 문서: docs.python.org/3/library/shutil.html shutil — High-lev..
-
[Python] 디렉토리 만들기 (os.mkdir)프로그래밍 언어/Python 2021. 3. 8. 13:42
파이썬으로 디렉토리를 만드는 함수인 os.mkdir의 사용법을 예제로 알아보려고 합니다. 아래 내용은 파이썬 공식 문서를 참고하여 작성하였습니다. 파이썬 file, directory 관련 공식 문서 한국어 공식 문서: docs.python.org/ko/3/library/filesys.html 파일과 디렉터리 액세스 — Python 3.9.2 문서 docs.python.org 영어 공식 문서: docs.python.org/3/library/os.html#os-file-dir os — Miscellaneous operating system interfaces — Python 3.9.2 documentation os — Miscellaneous operating system interfaces Source c..
-
전처리기 지시문(Preprocessor directives) - 3프로그래밍 언어/C & C++ 2020. 6. 28. 18:36
분량이 많아져서 세번째 글까지 나눠서 나머지 지시문에 대해 설명합니다 전처리기 지시문에는 아래와 같은 종류가 있습니다. - Macro definitions (#define #undef) - Conditional inclusions (#ifdef #ifndef #if #endif #else #elif) - Line control(#line) - Error directive(#error) - Source file inclusion(#include) - pragma directive(#pragma) * predefined macro names( __something__) 6. pragma directive(#pragma) -#pragma pragma는 컴파일러에 다양한 옵션을 설정하기 위해 사용됩니다. 이 옵..
-
전처리기 지시문(Preprocessor directives) - 2프로그래밍 언어/C & C++ 2020. 6. 27. 22:26
첫번째 글에 이어서 나머지 지시문에 대해 설명합니다 전처리 지시문에는 아래와 같은 종류가 있습니다. - Macro definitions (#define #undef) - Conditional inclusions (#ifdef #ifndef #if #endif #else #elif) - Line control(#line) - Error directive(#error) - Source file inclusion(#include) - pragma directive(#pragma) * predefined macro names( __something__) 3. Line Control(#line) -#line 보통 컴파일시 에러가 나게되면, 해당 소스 코드의 이름과 라인 넘버를 컴파일러에서 에러메시지로 줍니다. 이..
-
전처리기 지시문(Preprocessor directives) - 1프로그래밍 언어/C & C++ 2020. 6. 26. 23:19
전처리기 지시문은 프로그램의 코드에 #로 시작하는 라인들을 말합니다. 예를 들어 #include, #define 등이 있죠. 이 코드들은 구문(statement)이 아니라 전처리기(preprocessor)에서만 사용되는 지시문입니다. 전처리기는 실제로 컴파일을 하기전에, 전처리기 지시문을 읽어서 해당하는 지시문에 따라 처리를 해주는데요, 이 지시문은 구문과 다르게 ';' 로 끝나지 않고 newline 문자가 있으면 끝나는 것으로 봅니다. 전처리 지시문이 한 줄을 넘어가게 된다면 \ 를 입력하여 줄을 구분해주면 됩니다. 전처리 지시문에는 아래와 같은 종류가 있습니다. - Macro definitions (#define #undef) - Conditional inclusions (#ifdef #ifndef ..