no image
[C] 포인터
C언어에서 포인터는 변수의 메모리 주소를 이용하여 함수를 넘나들며 값을 저장하기 위해 사용된다. 즉, 포인터는 값의 주소를 저장하기 위해 사용된다. 포인터 변수는 다음과 같이 * ( Asterisk, 애스터리스크)를 사용하여 선언된다. * 의 위치에 따른 차이는 없으며 모두 같은 뜻이다. int* numPtr; int * numPtr; int *numPtr; 포인터 변수를 선언했다면 아래와 같이 &로 변수의 주소를 구해서 포인터 변수에 저장한다. numPtr = # 즉, 포인터는 메모리의 특정 위치를 가리킬 때 사용한다. 아래 코드는 numPtr 이라는 포인터 변수가 int 형 변수 num 이 있는 공간을 가르키는 예제이다. numPtr이 가르키는 값을 변경할 경우 변수 num의 값도 당연히 변경..
2018.08.21
[C] 파일 목록 가져오기
파일 검색 함수는 특정한 조건에 맞는 파일을 검색한다. 예를 들어 a로 시작하고 확장자가 txt 인 모든 파일(*.txt)을 찾아 작업을 하고자 할 때 조건에 맞는 파일을 찾아야 한다. 파일을 검색하는 함수는 다음과 같다. long _findfirst( char *filespec, struct _finddata_t *fileinfo ); int _findnext( long handle, struct _finddata_t *fileinfo ); int _findclose( long handle ); findfirst 함수의 filespec 인수로 검색 식을 주면 조건에 맞는 첫번째 파일을 찾아 fileinfo 구조체에 검색된 파일의 정보를 채우고 검색 핸들을 리턴한다. 만약 조건에 맞지 않는다면 -1이 리..
2018.08.16
no image
[Linux] 커널 이미지
커널 이미지는 내가 원래 영상처리에서 알던 이미지와 아주 다른 개념이었다. 1. 커널 이미지의 개요 : 리눅스에서 부팅은 도스나 윈도우의 부팅과 상당히 다르며, 도스나 윈도우의 부팅은 컴퓨터를 쓰고 싶으면 전원을 넣고 부팅과정을 거치게 된다. 그러나 리눅스에서의 부팅은 간만에 있을까 말까 하는 중요한 사건이다. 그래서 부팅 속도가 빠른 것이며, 부팅 과정은 매우 복잡하다. 로더(LILO 또는 loadlin)라고 하는 프로그램은 커널을 메모리에 올려놓는 일을 수행한다. 컴퓨터에 전원이 들어오고 나면 제일 먼저 디스크의 첫 부분을 읽어서 로더를 실행시킨다. 로드는 커널 이미지의 위치를 알고 있어서 스스로 커널 이미지를 찾아서 메모리에 올려 놓는다. 2. 커널 이미지란? : 커널이 하나의 파일로 디스크에 저장..
2018.08.05
[Embedded linux] timeconst.pl 에러 해결법
커널 컴파일 도중 아래와 같은 에러 시 Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373./home/xxxx/Workspace/VAB-630_Linux_source_code/Kernel_3.4.5/kernel/Makefile:129: recipe for target 'kernel/timeconst.h' failedmake[1]: *** [kernel/timeconst.h] Error 255Makefile:945: recipe for target 'kernel' failedmake: *** [kernel] Error 2make: *** Waiting for unfinish..
2018.08.05
no image
[Embedded linux] 임베디드 리눅스 개념
리눅스 일반 리눅스 : 일반 데스크탑 환경인 고성능 프로셋와 대용량 메모리 환경에서 동작하는 범용 컴퓨터용 리눅스 임베디드 리눅스 : 저성능의 마이크로 프로세서와 제한된 메모리 환경에서 동작하는 임베디드 시스템용 리눅스 임베디드란? : 임베디드는 아주 작은 형태의 전자회로를 가지고 있는 컴퓨터이다. 따라서 임베디드는 다양한 사물에 숨겨져있다. 임베디드의 뜻이 우리말로 번역하면 "내장된" 이라고 할 수 있다. 주위에 임베디드 장치를 쉽게 찾아 볼 수 있으며 대표적인 것들이 신호등, 지하철 개찰구, 선풍기 등이 있다. 스마트폰도 임베디드 장치라고 할 수 있는데, 내부에서 다양한 센서와 액츄에이터 그리고 초소형 고성능 컴퓨터를 탑재하고 있다. 수백개에서 수천개의 전자회로를 가지고 있는 자동차도 대표적인 임베디..
2018.08.05
[Linux] .bashrc 수정 후 적용
리눅스에서 .bashrc 파일 수정 후 반드시 다시 로그인해야 적용 됨 터미널 종료 후 다시 실행하면 적용 됨 하지만 source ~/.bashrc 위 명령어를 실행하게 되면 터미널 종료 없이도 적용 가능 참고자료 : http://blog.chopestory.net/157
2018.08.05
[Embedded linux] 크로스 컴파일
크로스 컴파일러(Cross compiler) Wiki 정의 : 크로스 컴파일러는 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러이다. 크로스 컴파일러 툴은 임베디드 시스템 혹은 여러 플랫폼에서 실행파일을 생성하는데 사용된다. 이것은 운영체제를 지원하지 않는 마이크로컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용된다. 이것은 시스템이 사용하는데 하나 이상의 플랫폼을 쓰는 반가상화에 이 도구를 사용하는 것이 더 일반적이게되었다. 크로스 컴파일러는 호스트에서 C언어나 어셈블러로 작성된 소스코드를 호스트와 다른 기종에서 사용될 수 있는 기계어로 번역해주는 컴파일러의 일종이다. 임베디드 시스템을 개발하기 위해서는 반드시 크로스 컴파일러가 있어야 한다..
2018.08.05
[C++] 전처리문의 종류
전처리문 : 실질적인 컴파일 이전에 미리 처리되는 문장을 말하며, 선행 처리기라고도 한다. 따라서 컴파일러는 사용자가 작성한 코드를 컴파일 하기 전에 전처리문에서 정의해놓은 작업을 먼저 수행하게 된다. 파일 처리를 위한 전처리문 : #include형태 처리를 위한 전처리문 : #define, #undef조건 처리를 위한 전처리문 : #if, #ifdef, #else, #elif, #endif에러 처리를 위한 전처리문 : #error디버깅을 위한 전처리문 : #line컴파일 옵션 처리를 위한 전처리문 : #pragma 조건 처리를 위한 전처리문은 어떤 조건에 대한 검사를 하고, 그 결과를 참(0이 아닌 값) 또는 거짓(0)으로 돌ㄹ준다. #if : ~이 참 이라면#ifdef : ~이 정의되어 있다면#els..
2018.08.05
no image
[Linux] 리눅스 버전 확인
리눅스 버전 확인 하는 방법 grep . /etc/*-release 참고자료 1 : 제타위키
2018.08.05
no image
[Linux] diff 명령어
diff 명령어 : 리눅스에서 파일을 비교하는 명령어 diff [옵션] file1 file2 file1과 file2를 비교하여 차이점을 찾아냄 옵션 -b : 연속된 공백 무시-i : 대소문자를 구분하지 않음-t : 출력 라인에 TAB 문자를 넣음-w : 두 행의 비교 시 공백을 무시--brief : 파일 비교 후 결과 표시(같은지, 다른지)-d : 세세한 차이까지 검색-H : 큰 파일을 빠르게 처리할 때 사용-q : 두 파일의 차이점만 출력-s : 두 파일이 같은 지 확인-r : 두 디렉토리의 차이점 출력-u : undirectional new file 옵션으로 비교하는 파일/디렉토리가 빠져있을 경우 dummy로 처리해서 출력을 통일시킴-r : recursive 하위 디렉토리 모두 검색-N : 검색 중 ..
2018.08.05
[Linux] cp 명령어와 mv 명령어
1. cp 명령어 : 리눅스에서 파일 복사(copy) 하는 명령어 cp [옵션] [원본] [사본] 옵션 -a: 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사한다. -b: 복사할 대상이 이미 있을 경우 기존 파일을 백업하고 복사한다. -d: 만약 복사할 원본이 심볼릭 링크일 때 심볼릭 자체를 복사한다. -f: 만약 복사할 대상이 이미 있으면 강제로 지우고 복사한다. -i: 만약 복사할 대상이 이미 있으면 사용자에게 물어본다. -l: 하드링크 형식으로 복사한다. -P: 원본 파일 지정을 경로와 같이했을 경우 그 경로 그대로 복사된다. -p: 파일의 소유자, 그룹, 권한, 시간 정보들이 그대로 보존되어 복사된다. -r: 원본이 파일이면 그냥 복사되고 디렉터리라면 디렉터리 전체가 복사된다. -s: 파..
2018.08.05
[C++] STL 정리
STL(Standard Template Library) : C++의 템플릿을 사용하여 표준으로 정리된 라이브러리 - 반복자 / 컨테이너 / 알고리즘 함수객체 등의 라이브러리로 구성 컨테이너(Container) : 컨테이너란 기본 자료형과 유저가 정의한 자료형을 담는 일종의 자료구조 1. 시퀀스 컨테이너 일반적인 자료구조와 동일한 형태 (vector / list / string / deque ...) 자료를 입력한 순서대로 저장하기 때문에 저장, 검색, 알고리즘에 불리함 적은 양의 자료나 검색 속도가 중요하지 않은 경우에 사용 2. 연관 컨테이너 일정한 규칙에 따라 자료를 조직화하여 저장 (set / map / multiset / multimap ...) 자료를 정렬하여 저장하기 때문에 검색에 유리 많은 ..
2018.08.05