분류 전체보기 328

[4월 30일 1교시] 프로그램 개발 환경1

프로그래밍 단계 소스코드 -> 컴파일러 -> 오브젝트 코드 -> 링커(startup code, library code 포함)-> 실행가능한 코드 startup code : main code를 수행할 수 있도록 하는 code 컴파일러 세부기능: 전처리기 -> 컴파일 -> 어셈블 GCC C 컴파일러 옵션 -c : 소스파일을 컴파일하고 어셈블한다.  -S : 컴파일하고 어셈블 ..

[4월 29일 3교시] 라이브러리 파일 관련 함수 3

줄단위 입력 #include<stdio.h> char* fgets(char *buf, int n, FILE *fp); 기능  fp로 부터 입력, buf는 '\0'으로 끝난다. \n이 나올때까지 입력받아 \n까지 포함하여 buf에 저장. 입력한 문자열이 n-1을 초과하면 n-1개의 문자만 돌려준다. char *gets(char* buf); 기능 표준 입력으로부터 문자열을 읽음. 버퍼의 영역을 넘어 데..

[4월 29일 2교시] 라이브러리 파일 관련 함수 2

freopen #include<stdio.h> FILE *freopen(const char *pathname, const char *type, FILE *fp); 기능 : fp가 가리키는 스트림(주로 stdin, stdout, stderr)으로 파일을 개방. 리턴 : 성공시 FILE포인터, 실패시 NULL (printf를 파일 스트림과 연결하여 txt파일에 출력가능하게 할 수 있다.) fdopen #include<stdio.h> FILE *fdopen(int filedes, const char *typ..

[4월 29일 1교시] 라이브러리 파일 관련 함수 1

sync(), fsync() 기능 : 버퍼 캐시의 내용을 디스크에 쓰도록 한다. (실제 메모리와 캐시 사이에 inconsistency가 있을 때 synchronization을 위해 사용) #include<unistd.h> void sync(void); 데몬 프로세스에 의해 30초마다 호출. int fsync(int filedes); 지정된 파일에 대해서만 버퍼 캐시 내용에 대해 I/O작업을 수행. Blocking함수. ..

[4월 28일 2교시] WinMain 기본 프로그램 분석2

1. 윈도우 설계도 작성 WndClass.cbClsExtra=0; WndClass.cbWndExtra=0; WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);   윈도우의 배경색으로 쓸 색깔을 정함.   브러쉬 핸들을 리턴받기 위해 (HBRUSH)로 casting한다.   GetStockObject : 이미 생성(윈도우 부팅시)된 GDI객체를 가져온다. WndClass.hCursor = LoadCursor(NULL,IDC_AR..

[4월 28일 1교시] WinMain 기본 프로그램 분석1

CALLBACK  시스템이 사용자 함수를 호출함. <=> call : 사용자가 system call을 통해 함수를 수행. #define  CALLBACK    stdcall 함수호출방식 참고주소 : http://www.winapi.co.kr/clec/cpp2/16-1-2.png 스택 포인터 값은 아래로(-방향으로) 증가한다. 함수에 진입할 때 bp = sp함으로써 함수들은 bp레지스터를 관리하여 내부 ..