일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- C
- setParameter
- 자료구조
- 쉬운 계단 수
- 10844
- junit
- 여러인수
- springboot
- BubbleSorting
- Linux
- 데코레이터패턴
- 숫자야구
- decorator
- createQuery
- mycp
- NamedParameterNotBound
- java
- 디자인패턴
- 점세개
- gradle
- pscp
- @ModelAttribute
- 전치행렬 #C
- @NotEmpty
- Spring
- 자바
- 10951
- 백준
- designpattern
- @Spring
- Today
- Total
목록CS/시스템 프로그래밍 (3)
...

Make 도구는 리눅스에서 여러 파일들을 관리 해주는 도구이다. 이를 이용함으로써 개발자는 여러 파일들을 쉽게 묶을 수 있고, 반복되는 컴파일을 자동화 할 수 있으며, 모듈화 프로그래밍을 쉽게 구현할 수 있게 된다. 이제 Make 도구를 어떻게 활용할 수 있는지 예시를 살펴 보도록 한다. 정말정말 간단한 계산 프로그램을 구현 하도록 한다. add/ sub 두 가지 연산을 모듈화 프로그래밍을 통해 Makefile을 이용해 구현해 볼 것이다. 일단 헤더 파일과 헤더 파일의 메소드를 구현한 공용 C파일 하나를 구현해 주었다. 이 두 파일은 Add 프로그램에도 이용되고, Sub 프로그램에도 이용될 것이다. //Header.h #ifndef MAKEHEADER_H #define MAKEHEADER_H void P..
[ MyShell 구현 ] 리눅스 터미널에서 명령어를 받아 처리한 후 결과를 출력하는 Shell 프로그램의 구현 [ 프로그램 구현 흐름 ] 1. 현재 디렉토리 name 출력하기 2. 사용자로부터 명령어 입력 받아오기 3. 명령어 토큰화 하기 (단어별로 나누기) 4. 프로세스 fork하여 자식 생성하기 5. 부모 프로세스가 wait 하는 동안 자식 프로세스 동작(명령어 실행) 6. exit 입력시 Shell 중단 [ 구현 전 알아야 하는 부분 ] shell 프로그램을 구현할 때 반드시 알고 있어야 할 부분은 리눅스의 명령어는 내부 명령어와 외부 명령어로 나누어져 있다는 점이다. 외부 명령어는 자식 프로세스의 exec 시스템 콜에 의하여 모두 처리 가능하다. 보통 대부분의 명령어들이 외부 명령어이다. 하지만..

Copy program 원본 파일의 내용을 새로운 파일에 복사 하기 Code //전처리 //main -> input 파일 디스크립터, output 파일 디스크립터 설정 ->argv[1]로 받아온 원본 파일을 파일 디스크립터에 할당함. ->fstat으로 파일의 상태 및 정보를 얻어옴 ->argv[2]로 받아온 새로운 파일을 읽고 쓰기 받아온 형태로 open 하고 파일 디스크립터에 할당함. -> MAX_BUF의 크기에 맞춰 i_fd에 있는 값을 read하여 buf 에 저장 후 o_fd에 쓰기 -> 파일 디스크립터 close