금요일, 10월 23, 2020

[유튜브 방송] (리눅스 업스킬 도전 #21-c) busybox에서 심볼릭 링크를 걸어서 실행할 기능을 알아내는 방법

[일상다반사] 초보 개발자들을 위한 유튜브 채널 본격 가동에서 설명드린 리눅스 업스킬 도전 프로젝트 Q&A인 21-c편을 공개해드리겠다. 21-c편은 busybox에서 심볼릭 링크를 걸어서 실행할 기능을 알아내는 방법을 설명한다.

2020년 10월 23일자 [리눅스 업스킬 도전 #21-c] busybox에서 심볼릭 링크를 걸어서 실행할 기능을 알아내는 방법 방송은 다음에서 볼 수 있으며, 전체 방송 플레이리스트는 리눅스업스킬도전에서 확인할 수 있다.

하이라이트를 요약 정리하면 다음과 같다:

  • 00:00 argv 설명
  • 03:20 간단한 프로그램 작성
  • 06:57 심볼릭 링크를 걸고 PATH에 .(현재 디렉토리)를 추가하는 방법
  • 09:11 실제 실행과 테스트

방송에 사용한 실제 실습 자료는 다음을 참고한다:

  • 단계 1: argv[0]의 비밀: argv.c 코드는 다음과 같다.
    #include <stdio.h>
    #include <string.h>
    
    int main(int argc, char **argv) {
            if (!strcmp(argv[0], "ls")) {
                    printf("function ls is called\n");
            } else if (!strcmp(argv[0], " pwd")) {
                    printf("function chown is called\n");
            } else if (!strcmp(argv[0], " echo")) {
                    printf("function chgrp is called\n");
            } else {
                    printf("function is not recognized\n");
            }
            return 0;
    }
    
  • 단계 2: 빌드 후 실행
    1. $ gcc -o argv argv.c
    2. $ ln -s argv ls
    3. $ export PATH=".:$PATH"
    4. $ ls
EOB

댓글 1개:

  1. 소스코드에 오류가 있어서 알려드립니다.

    #include
    #include

    int main(int argc, char **argv) {
    if (!strcmp(argv[0], "ls")) {
    printf("function ls is called\n");
    } else if (!strcmp(argv[0], "pwd")) {
    printf("function pwd is called\n");
    } else if (!strcmp(argv[0], "echo")) {
    printf("function echo is called\n");
    } else {
    printf("function is not recognized\n");
    }
    return 0;
    }

    답글삭제