• Git,  Programming

    [Git] Repository에 올라온 파일 삭제 (git rm)

    이미 repository에 올라간 파일을 삭제할 경우가 종종 생긴다. 이 때 사용되는 명령은 다음과 같다. Option Description -f 실제 파일을 삭제한 뒤 수정한 파일이 staged 상태에 있는 경우, staged 상태에서 제거 할 때 사용…

  • C / C++,  Programming

    [C / C++] #include 지시어 “”와 <>

    C coding을 하면 header file include를 많이 하는데, 지시어인 <>과 “”를 혼용해서 사용한다. 그 둘의 차이는 다음과 같다. include <> 일반적으로 system header file들의 경로에서 해당하는 header file을 검색한다. 컴파일러에게 따로 include path를…

  • Git,  Programming

    [Git] fatal: refusing to merge unrelated histories

    Git을 사용하는 도중 다음과 같은 error를 종종 발견 할 수 있다. 나같은 경우엔 github의 repository에 local에 있는 git을 업로드하기 위해서 우선 git pull을 수행한 경우다. 위 error 원인은 로컬 저장소와 원격지의 저장소의 기록(History)을 비교했을 때 소스코드의 차이가 심한 저장소의 경우, 병합 오류가 날 것을 대비하여 오류 메시지를 띄우는 것이다. 이 때 아래와 같이…

  • OS,  Study

    [OS] Message Queue

    IPC를 위한 방법은 크게 6가지가 있다. Pipe FIFO Message Queue Shared Memory Semaphore Socket Pipe나 FIFO는 file descriptor를 이용해서 통신하기 때문에 virtual file system에 속한다. Message queue, shared memory, semaphore는 key값을 통해서 통신한다.…

  • OS,  Study

    [OS] Pipe

    Inter Process Communication (IPC) 방법 중 하나로, OS에서 process의 standard 출력을 다른 process의 standard input에 연결하는 방식이다. Process간 단방향 통신의 한 방법이며 동기화를 기본적으로 제공한다. Signal은 1~31번까지 번호만 전달할 수 있지만, pipe는 data를…

  • OS,  Study

    [OS] SIGALRM 동작

    Linux signal 종류 중 SIGALRM의 동작에 대해 알아본다. 기본적으로 alarm() 함수를 통해 signal을 줄 수 있으며, 인자로 “초”를 받는다. Signal number는 14번이다. Argument Description unsigned int seconds 알람을 주고자 하는 초0을 넣게 되면…

  • OS,  Study

    [OS] Signal 동작

    Process간 통신을 하기 위해 signal을 사용한다. 우리가 평소에 자주 사용하는 많은 명령어들이 signal로 process에게 전달된다. Ctrl+c Ctrl+z kill 명령어 잘못된 메모리 참조 우리가 인위적으로 signal을 줄 수 있는 것들을 보는 방법은 다음과 같다.…

  • Linux,  Programming

    [Linux] readline 구현

    readline은 Command Line Interface (CLI)에서 줄 편집 및 입력 기록 저장 등의 역할을 하는 library다. 크게 두 부분 (client, server)로 나눠진다. 1 Byte 단위로 Data Read Example # Make fifo $ mkfifo mkfifo…