본문 바로가기

2-2/시스템 프로그래밍

(4)
[시스템 프로그래밍] Linux - cp 구현 오늘은 리눅스 명령어 cp에 대해서 알아보자. 💻 cp cp는 copy의 약자로 파일을 복사한다. $ cp source-file target-file source-file을 target-file로 복사하는 명령어이다. 먄약 target-file이 존재하지 않는다면, 새로운 파일을 하나 만든다. 이 명령어가 어떻게 구현되어 있는지 알아볼텐데, 알아보기싫은데, 알아봐보자. 💻 시스템 콜 - creat int fd = creat(char *filename, mode_t mode); filename은 말 그대로 파일의 이름이다. 입력인자로 파일의 이름과, 모드를 건네주면 creat 시스템콜은 mode에 따라 권한을 부여해 파일을 생성한다. 오류가 나면 -1을 리턴해주고, 성공하면 fd를 리턴해준다. 💻 파일 쓰..
[시스템 프로그래밍] Linux System - ls-l 구현 지난 포스팅에서 리눅스 시스템에서의 디렉토리, 커널, 시스템 콜에 대해서 알아보고 ls를 구현해보았다. 이번 포스팅에서는 그의 세부 옵션인 ls-l 을 구현해보자. 💻 ls - l 명령어 ls에 옵션 l 을 달아서 ls-l을 리눅스 터미널에서 우리는 사용할 수 있다. ls - l을 사용하면 다음과 같이 출력된다. 위 그림과 같이 여러개의 영역으로 나뉘어 있다. mode : 종류와 , 접근모드를 나타낸다. 접근모드는 r(read), w(write), x(execute) 가 있고 읽기, 쓰기, 실행을 할수 있는 권한을 나타낸다. 3자리씩 끊어서 앞은 owner, 가운데는 group 뒤에는 그 외 user들의 권한을 나타낸다. links : 이 문서에 연결된 하드 링크의 수를 나타낸다. owner : 소유자를..
[시스템 프로그래밍] Linux System - ls 구현하기 이번에는 ls를 구현하는것을 포스팅 해보도록 하겠다. 그전에 알아야 할 것들이 좀 많은데.. 디렉토리란 무엇인지, 시스템 콜이란 무엇인지, ls를 사용하기 위한 시스템 콜들을 알아보고 ls를 구현해보겠다. 💻디렉토리란? 리눅스에서 모든 것들은 파일로 표현된다. 디렉토리도 파일의 한 종류로서 여러개의 하위 파일이나 혹은 디렉토리의 주소들을 담고 있다. 리눅스에서는 FHS라는 디렉토리 구조를 사용하고 있는데, 이는 트리구조로 되어있다. 쉽게 말하자면 디렉토리 안에 디렉토리 안에 디렉토리 안에 파일이 있는 형식이다. 위는 리눅스에서의 디렉토리 계층을 보여주고 있다. /usr/라는 디렉토리에 bin, include 등 여러가지 다른 디렉토리들이 들어있다. 이를 트리구조라고 한다. 💻 Kernel(커널) 커널은 ..
[시스템 프로그래밍] Linux System - 기본 명령어 💻 리눅스란? 리눅스란 쉽게 말해서 운영체제의 일종이다. 소스 코드가 공개되어 있는 대표적인 오픈 소스 소프트웨어로서 가장 많은 참여자가 관여하고 있는 오픈 소스 프로젝트이다. 웹 서버, 모바일, 임베디드 기기 등 여러가지 분야에서 구동되고 있는 운영체제이다. 리눅스의 종류는 레드햇 등 유명한 것이 많다. 그 중 우분투를 사용해서 업로드 할 예정이다. 💻 기본 명령어 c에서의 printf 처럼 리눅스에서 필수로 알아야하는 기본 명령어들이 많이 생긴다. 기본 명령어들을 외우기 쉽게 포스팅으로 남겨두려 한다. 1. ls : 현재 위치의 디렉토리의 모든 파일을 보여줌 ls-l : 파일의 상세정보 ls-t : 파일들을 최신 순으로 표시 ls-r : 파일들을 오래된 순으로 표시 ls-a 경로안의 모든파일을 나열한..