본문 바로가기

리눅스/프로그래밍3

[리눅스] 심플하게 구현하는 echo 명령어(command) 이 글에서는 인자로 받은 값들을 그대로 출력하는 echo 명령의 아주 간단한 형태를 같이 구현해보려고 한다. 여기서 구현하려는 echo 명령이 가지는 단 한 가지 기능은 아래와 같다. - 인자로 받은 모든 값들을 공백을 기준으로 출력한다. 그리고 이러한 기능을 구현하기 위해서 알아야 할 것은 main() 함수로 전해지는 매개변수이다. main()로 전해지는 매개변수에는 두 가지가 있는데 하나는 프로그램을 실행할 때 입력한 인수의 개수이고 또 다른 하나는 그 인수들의 값이다. 인수의 개수는 int형으로, 그리고 인수들의 값(문자열)은 2차원 포인터 혹은 포인터 배열로 전해진다. 즉 main() 함수는 우리가 일반적으로 사용하던 main(void) 말고도 다음과 같이 사용할 수 있다. int main(int.. 2020. 11. 7.
[리눅스] scandir() 함수를 이용하여 구현하는 ls 명령어(command) 여기서는 아주 간단한 형태의 ls 명령을 구현하려고 한다. ls라 함은 리눅스 환경에서 디렉토리(or 폴더)의 내용을 보는 명령을 의미한다. 그리고 이런 ls 명령의 아주 간단한 형태는 단순하게 내부에 있는 파일들/디렉토리들의 이름들을 공백을 기준으로 출력하는 것을 말한다. 먼저 scandir() 함수에 대한 소개를 먼저 하려고 한다. #include int scandir(const char *dirp, struct dirent ***namelist, int (*filter)(const struct dirent *), int (*compar)(const struct dirent **, const struct dirent **)); scandir() 함수는 인자로 dirp에 디렉토리 이름을 주면 해당 디렉.. 2020. 11. 6.
[리눅스]리눅스 C언어 개발환경 갖추고 샘플 프로그램 실행해보기(+ GCC, Vim, Make) [리눅스 C언어 개발환경 갖추고 샘플 프로그램 실행해보기(+ GCC, Vim, Make)] 이번 글에서는 리눅스 환경에서 C언어를 개발하기 위한 개발환경을 갖추고 간단한 프로그램을 작성하여 실행시켜보려고 한다. 본격적으로 시작하기 앞서 아래와 같은 명령을 터미널에 타이핑하자. $ cat /etc/issue 그러면 위와 같은 결과를 얻을 것인데 "cat /etc/issue"는 현재 사용중인 리눅스의 버전을 알려준다. 나같은 경우는 현재 Ubuntu 18.04.2 LTS 버전에서 진행하고 있으니 글을 읽을 때 이 점 고려해서 읽어 주기를 바란다. 이제 본격적으로 시작해보자. 이 글에서는 C컴파일러로 gcc, 에디터로는 Vim을 사용한다. 그리고 빌드를 쉽게 하기 위해서 빌드 자동화 유틸리티인 make를 사용.. 2020. 4. 28.
반응형