[일상다반사] 초보 개발자들을 위한 유튜브 채널 본격 가동에서 설명드린 리눅스 업스킬 도전 프로젝트 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: 빌드 후 실행
- $ gcc -o argv argv.c
- $ ln -s argv ls
- $ export PATH=".:$PATH"
- $ ls
소스코드에 오류가 있어서 알려드립니다.
답글삭제#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;
}