본문 바로가기
728x90
반응형

Ghost의 Linux C Note(노트)22

쉽게 컴파일 하는 법?~~ Linux 에서 makefile 제작. 1. 위 그림은 makefile의 소스다. 보면 아무것도 아닌 것 처럼 보이지만 이 파일을 만들려면 일단 컴파일 단계를 알고 있어야 한다. 컴파일 5단계는 맨 처음 1단계 전처리(processer): 전처리 파일(xx.i)라고 하는 확장자 파일이 생성된다. 2단계 컴파일러(compiler):어셈블리어파일(xx.s)라는 확장자 파일이 생성되고 3단계 어셈블러(asembler):오브젝트(xx.o)라는 확장자 파일을 생성한다. 그리고 4단계 링커(Linker):연결 시키는 단계, 마지막 5단계 실행 파일 생성단계를 거친다. 그래서 간단하게 바로 실행 파일을 만들기 위해서 -o 옵션을 주고 바로 실행 파일을 만들게 된다. 하지만 지금 소스는 간단하기 때문데 쉽지만 만약 부.. 2012. 7. 23.
Ghost 다시 죽음...? ㅠㅠ 리다이렉션.(리 다이(Re Die) : 다시 죽음?.) 1. 위 그림은 리다이렉션 소스이다. 처음 구문을 보면 1번으로 번호가 매겨져 있고 앞에 인자는 stdout를 인자로 받고 있다. 화면에 출력해주는 인자이고 stdout와 반대 되는 출력 인자는 stderr이라는 인자로 2번째 구문에서 받고 있다. 차이점이라면 stdout는 오류가 없는 프로그램을 화면에 출력하는 인자이고 stderr은 오류가 있을시에 화면에 출력을 해주는 인자이다. 그리고 이렇게 따로구현해 놓은 이유는 제목을 보면 알 수 있듯이 리다이렉션을 위해 구현해 놓았다. 2. 컴파일 실행 후 ./main을 보통 실행 시킬때 쓰지만 이번에는 리다이렉션을 위해 ./main 1> test.txt 라고 명령어를 쓴다 ./main은 일반적으로 쓸때와.. 2012. 6. 27.
메모리의 세계는 더 넓어?... 메모리 할당과 최적화. 1. 메모리에 어떻게 할당 되는 지를 보기 위해 짠 소스이다. 그리고 #if는 if문과 비슷하지만 사용 용도가 다르다. 그냥 if 문은 main() 함수내에서 어떠한 조건이 충족되는 지를 알기 위해 쓰여 진 것이라면 #if문은 Test를 위해 2개 이상의 소스 중 하나를 선택하여 Test를 할 수 있도록 사용 한 것이다. 그리고 #if 문 에 1이라는 코드는 지금 이 소스를 선택하여 컴파일 하겠다고 선택 한 것이다. int a; // 4 byte. char b; // 1 byte. int c; // 4 byte. short d; // 2 byte. char e; // 1 byte. int f; // 4 byte. char g; // 1 byte. short h; // 2 byte... 2012. 6. 18.
문자열 함수들 중 하나.. strchr 문자열 함수. 1. strchr 함수는 원하는 문자의 주소로 부터 값들을 반환하는 함수이다. 말로는 어려우니 소스를 보고 결과로 확인 해보자. cahr word[] = "ABC DEF 123"; 2. char형 배열 word에 ABC DEF 123 이라는 문자열들을 넣는다. 물론 배열은 주소이므로 주소값들이 들어 가 있는 것 이다. char *inum; 3. char형 inum 이라는 포인터형 변수를 선언한다. inum = strchr(word, 'E'); 4. inum 이라는 포인터형 변수에 strchr 이라는 함수를 호출하는데 strchr 함수에 인자로 word 라는 배열과 E 라는 문자를 인자로 받아서 넣는다. 그럼 strchr이라는 함구사 inum 변수에 넣기전에 인자를 받았던 분자 .. 2012. 6. 11.
728x90
반응형