Microsoft PowerPoint - (제14강)Win32 API.ppt
|
|
- 현수 손
- 6 years ago
- Views:
Transcription
1 14. 파일입출력 1 1. 파일입출력 BOOL ReadFile( HANDLE hfile, LPVOID lpbuffer, DWORD nnumberofbytestoread, LPDWORD lpnumberofbytesread, LPOVERLAPPED lpoverlapped ); hfile : 데이터를읽을대상파일의핸들 lpbuffer : 읽은데이터를저장할버퍼 nnumberofbytestoread : 읽고자하는양 lpnumberofbytesread : 실질적으로읽은바이트양 lpoverlapped : 비동기입출력을할때사용한다. BOOL CloseHandle( HANDLE hobject ); 파일핸들도메모리를차지하므로다사용하고난후에해제해주어야한다. 2
2 1. 파일입출력 HANDLE CreateFile( LPCTSTR lpfilename, DWORD dwdesiredaccess, DWORD dwsharemode, LPSECURITY_ATTRIBUTES lpsecurityattributes, DWORD dwcreationdisposition, DWORD dwflagsandattributes, HANDLE htemplatefile ); lpfilename : 열거나만들고자하는파일의완전경로 dwdesiredaccess : 파일의액세스타입, 즉파일로부터데이터를읽을것인지쓸것인지를지정한다. 파일로부터데이터를읽기만하면 GENERIC_READ 쓰기만하면 GENERIC_WRITE 읽기쓰기 : GENERIC_READ GENERIC_WRITE dwsharemode : 열려진파일의공유모드지정. 0 이면파일은공유되지않으며열려진파일을또열수없음. FILE_SHARE_DELETE : 삭제액세스에대해서만파일을열수있다. FILE_SHARE_READ : 읽기모드로열때만파일을열수있다. FILE_SHARE_WRITE : 쓰기모드로열때만파일을열수있다 파일입출력 lpsecurityattributes : 리턴핸들을차일드프로세스로상속할것인지를지정 SECURITY_ATTRIBUTES 구조체의핸들 dwcreationdisposition : 생성파일이이미존재, 또는오픈할파일이없을경우지정. CREATE_NEW : 새로운파일을만들되만약지정한파일이이미있으면만들지않는다. CREATE_ALWAYS : 새로운파일을만들되만약지정한파일이이미있으면기존파일을삭제하고다시만든다. OPEN_EXISTING : 이미있는파일을열되만약파일이없으면에러코드를되돌린다. OPEN_ALWAYS : 파일을열되만약없으면새로만든다. TRUNCATE_EXISTING : 파일을열되파일크기를 0으로만든다. 4
3 1. 파일입출력 dwflagsandattributes FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN FILE_ATTRIBUTE_NORMAL FILE_ATTRIBUTE_READONLY FILE_ATTRIBUTE_SYSTEM FILE_ATTRIBUTE_TEMPORARY 아카이브속성히든파일아무속성도가지지않은보통파일읽기전용운영체제가배타적으로사용하는파일임시저장소에저장되는파일. 이속성의파일은디스크에저장되지않고메모리에저장되므로입출력속도가빠르다. 사용후에는반드시지워주어야한다. FILE_FLAG_WRITE_THROUGH 데이터출력시캐시를통해곧바로디스크 로출력하도록한다. 플러쉬가더빨라진다. FILE_FLAG_OVERLAPPED 비동기입출력을행한다. FILE_FLAG_RANDOM_ACCESS 임의접근파일임을알린다. FILE_FLAG_SEQUENTIAL_SCAN 순차접근파일임을알린다. 이상의두플래 그는시스템이캐시를최적화하는데도움을 5 줄뿐이다. ( 임의접근가능 ) htemplatefile : 만들고자하는파일의추가속성을지원하는템플리트파일의핸들을지정. 일반적으로 NULL 지정 6
4 1. 파일입출력 리턴값 : 파일의핸들 어떤이유로파일열기에실패하면 INVALID_HANDLE_VALUE 를리턴한다. BOOL WriteFile( HANDLE hfile, LPCVOID lpbuffer, DWORD nnumberofbytestowrite, LPDWORD lpnumberofbyteswritten, LPOVERLAPPED lpoverlapped ); hfile : 대상파일의핸들 lpbuffer : 데이터가들어있는버퍼 nnumberofbytestowrite : 쓰고자하는바이트수 lpnumberofbyteswritten : 실제로쓰여진바이트수 lpoverlapped : 비동기입출력을할때사용한다 비동기입출력 ReadFile 이나 WriteFile 같은입출력함수는입출력이완전히끝날때까지리턴하지않는다. 비동기입출력을하려면 CreateFile 함수로파일을열때 FILE_FLAG_OVERLAPPED 플래그를주고 ReadFile, WriteFile 함수의마지막인수에 OVERLAPPED 구조체의포인터를전달해준다. 입출력함수는입출력이시작되는즉시리턴하여다른작업을계속할수있도록해준다. 입출력함수느데이터를완전히다입출력하지않았다는의미로 FALSE 를리턴하며 GetLastError 함수로에러코드를점검해보면 ERROR_IO_PENDING 이리턴된다. BOOL GetOverlappedResult( HANDLE hfile, LPOVERLAPPED lpoverlapped, LPDWORD lpnumberofbytestransferred, BOOL bwait ); 다음함수로입출력진행상태를언제든지확인할수있다. lpnumberofbytestransferred : 현재까지입출력한바이트수 bwait : 입출력이완료될때까지대기할것인가를지정 8
5 #include <windows.h> #include "resource.h" #include <process.h> #include <commctrl.h> BOOL CALLBACK DlgProc (HWND hdlg, UINT message, WPARAM wparam, LPARAM lparam); int WINAPI WinMain (HINSTANCE hinstance, HINSTANCE hprevinstance,pstr szcmdline, int icmdshow) DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc) ; return TRUE; typedef struct param HWND hbutton; HWND hprogress; PARAM; void DispErrorMessage() DWORD ErrorCode = GetLastError(); char errmsg[1024]; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,ErrorCode,0,errMsg,1204,NULL); MessageBox(NULL,errMsg,"",MB_OK); BOOL GetFileName(char temp[]) strcpy(temp,"123.txt"); OPENFILENAME ofn; ZeroMemory(&ofn,sizeof(ofn)); ofn.lstructsize = sizeof(openfilename); ofn.hwndowner = NULL; ofn.lpstrfilter = " 모든파일 (*.*) 0*.* 0 텍스트파일 (*.txt) 0*.txt 0 0 0"; ofn.lpstrfile = temp; ofn.nfilterindex = 2; ofn.nmaxfile = 256; ofn.flags = OFN_EXPLORER OFN_ALLOWMULTISELECT OFN_ENABLESIZING ; if (GetOpenFileName(&ofn) == NULL) return TRUE; else return FALSE; 9 unsigned stdcall MyThreadProc( void * parguments ) PARAM * pparam = (PARAM *)parguments; EnableWindow(pParam->hButton,FALSE); char temp[256]; if (GetFileName(temp)) return FALSE; HANDLE hreadfile = CreateFile(temp,GENERIC_READ,NULL,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL); if (hreadfile == INVALID_HANDLE_VALUE) DispErrorMessage(); return FALSE; unsigned long dfilesize = 0; unsigned long dfilesizehigh = 0; dfilesize = GetFileSize(hReadFile,&dFileSizeHigh); BYTE * pdata = (BYTE *)malloc(dfilesize); BYTE * pbuffer = (BYTE *)malloc(1024*1024); SendMessage(pParam->hProgress,PBM_SETRANGE32,0,dFileSize); SendMessage(pParam->hProgress,PBM_SETPOS,0,0); DWORD ReadLen = 0; OVERLAPPED ov; memset(&ov,0,sizeof(overlapped)); ov.offset = 0; ov.offsethigh = 0 ; ov.hevent = NULL; int ntotalread = 0; do ReadLen = 0; if (ReadFile(hReadFile,pBuffer,1024*1024,&ReadLen,&ov) == FALSE) DispErrorMessage(); 10
6 WaitForSingleObject(hReadFile,INFINITE); GetOverlappedResult(hReadFile,&ov,&ReadLen,TRUE); SendMessage(pParam->hProgress,PBM_SETPOS,nTotalRead,0); CopyMemory(pData+nTotalRead,pBuffer,ReadLen); ntotalread += ReadLen; ov.offset += ReadLen; while( dfilesize!= ntotalread ); EnableWindow(pParam->hButton,TRUE); CloseHandle(hReadFile); //free(pdata); free(pbuffer); DWORD dwritelen; memset(&ov,0,sizeof(overlapped)); WriteFile(hWriteFile,pData,dFileSize,&dWriteLen,&ov); SendMessage(pParam->hProgress,PBM_SETPOS,0,0); DWORD ntotalwrite = 0; do DWORD WriteLen = 0; GetOverlappedResult(hWriteFile,&ov,&WriteLen,FALSE); ntotalwrite += WriteLen; SendMessage(pParam->hProgress,PBM_SETPOS,nTotalWrite,0); while(dfilesize!= ntotalwrite); CloseHandle(hWriteFile); free(pdata); _endthreadex( 0 ); return 0; 11 BOOL CALLBACK DlgProc (HWND hdlg, UINT message, WPARAM wparam, LPARAM lparam) static HWND hprogress,hbutton; static HANDLE hthread; static PARAM param; switch (message) case WM_INITDIALOG : hprogress = GetDlgItem(hDlg,IDC_PROGRESS1); hbutton = GetDlgItem(hDlg,IDC_BUTTON1); return TRUE ; case WM_COMMAND : switch (LOWORD (wparam)) case IDC_BUTTON1: param.hbutton = hbutton; param.hprogress = hprogress; hthread = (HANDLE)_beginthreadex(NULL,NULL,MyThreadProc,¶m,NULL,NULL); return TRUE; case IDOK : case IDCANCEL : EndDialog (hdlg, 0) ; return TRUE ; break ; return FALSE ; 12
7 3. 파일관리 BOOL CopyFile( LPCTSTR lpexistingfilename, LPCTSTR lpnewfilename, BOOL bfailifexists ); lpexistingfilename : 복사대상피일명 lpnewfilename : 새로만들어질파일명 bfailifexists : 새로만들어질파일이이미있을경우의처리 FALSE : 기존파일을지워버리고새로운파일을복사한다. TRUE : 기존파일이있을경우이함수는복사하지않고에러코드를리턴한다. BOOL CopyFileEx( LPCTSTR lpexistingfilename, LPCTSTR lpnewfilename, LPPROGRESS_ROUTINE lpprogressroutine, LPVOID lpdata, LPBOOL pbcancel, DWORD dwcopyflags ); 파일관리 lpexistingfilename : 복사대상피일명 lpnewfilename : 새로만들어질파일명 lpprogressroutine : 이파라미터로전달한콜백함수를주기적으로호출해준다. lpdata : Argument to be passed to the callback function. pbcancel : 복사중에중지할수있는기능이있다. DWORD CALLBACK CopyProgressRoutine( LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwstreamnumber, DWORD dwcallbackreason, HANDLE hsourcefile, HANDLE hdestinationfile, LPVOID lpdata ); 14
8 3. 파일관리 BOOL MoveFile( LPCTSTR lpexistingfilename, LPCTSTR lpnewfilename ); BOOL DeleteFile( LPCTSTR lpfilename ); DWORD GetFileSize( HANDLE hfile, LPDWORD lpfilesizehigh ); BOOL CreateDirectory( LPCTSTR lppathname, LPSECURITY_ATTRIBUTES lpsecurityattributes ); BOOL RemoveDirectory( LPCTSTR lppathname ); DWORD GetCurrentDirectory( DWORD nbufferlength, LPCTSTR lpbuffer ); DWORD GetSystemDirectory( LPTSTR lpbuffer, UINT usize ); DWORD GetWindowsDirectory( LPTSTR lpbuffer, UINT usize ); 파일관리 int SHFileOperation(LPSHFILEOPSTRUCT lpfileop); 파일을관리하는함수로복사, 이동, 삭제, 이름변경등여러가지작업을하나의함수로처리 ( 탐색기에서이용하는파일관리함수 ) typedef struct _SHFILEOPSTRUCTA HWND hwnd; UINT wfunc; LPCSTR pfrom; LPCSTR pto; FILEOP_FLAGS fflags; BOOL fanyoperationsaborted; LPVOID hnamemappings; LPCSTR lpszprogresstitle; // only used if FOF_SIMPLEPROGRESS SHFILEOPSTRUCTA, FAR *LPSHFILEOPSTRUCTA; 16
9 3. 파일관리 wfunc flags 값 설명 FO_COPY pfrom 파일을 pto 파일로복사 FO_DELETE pfrom 파일을삭제 FO_MOVE pfrom 파일을 pto 파일로이동 FO_RENAME pfrom 파일을 pto로이름을변경 ( 파일만적용 ) 파일관리 UINT GetDriveType( LPCTSTR lprootpathname ); 리턴값 lprootpathname 에조사대상디스크의루트디렉토리를지정하는문자열을준다. NULL 이면현재디렉토리가사용된다. 설명 DRIVE_UNKNOWN 알수없는타입이다. DRIVE_NO_ROOT_DIR 루트디렉토리가없다. DRIVE_REMOVABLE DRIVE_FIXED 이동식디스크이다. 플로피디스크 고정된디스트이며, 하드디스크 DRIVE_REMOTE 네트웍에연결된드라이브다. DRIVE_CDROM CD_ROM 드라이브이다. DRIVE_RAMDISK 램디스크이다. 18
10 #include <windows.h> #include "resource.h" BOOL CALLBACK DlgProc (HWND hdlg, UINT message, WPARAM wparam, LPARAM lparam); int WINAPI WinMain (HINSTANCE hinstance, HINSTANCE hprevinstance,pstr szcmdline, int icmdshow) DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1), NULL, DlgProc) ; return TRUE; BOOL CALLBACK DlgProc (HWND hdlg, UINT message, WPARAM wparam, LPARAM lparam) static HWND hlist,hbutton; switch (message) case WM_INITDIALOG : hlist = GetDlgItem(hDlg,IDC_LIST1); hbutton = GetDlgItem(hDlg,IDC_BUTTON1); return TRUE ; case WM_COMMAND : switch (LOWORD (wparam)) case IDC_BUTTON1: char temp[256]; for(char ch = 'a'; ch <= 'z';ch++) wsprintf(temp,"%c: ",ch); switch(getdrivetype(temp)) case DRIVE_UNKNOWN: strcat(temp," : 알수없는타입이다."); SendMessage(hList,LB_ADDSTRING,0,(LPARAM)temp); break; case DRIVE_NO_ROOT_DIR: //strcat(temp," : 루트디렉토리가없다."); //SendMessage(hList,LB_ADDSTRING,0,(LPARAM)temp); break; case DRIVE_REMOVABLE: strcat(temp," : 이동식디스크이다."); SendMessage(hList,LB_ADDSTRING,0,(LPARAM)temp); break; 19 case DRIVE_FIXED: strcat(temp," : 하드디스크 "); SendMessage(hList,LB_ADDSTRING,0,(LPARAM)temp); break; case DRIVE_REMOTE: strcat(temp," : 네트웍에연결된드라이브다."); SendMessage(hList,LB_ADDSTRING,0,(LPARAM)temp); break; case DRIVE_CDROM: strcat(temp," : CD_ROM 드라이브이다."); SendMessage(hList,LB_ADDSTRING,0,(LPARAM)temp); break; case DRIVE_RAMDISK: strcat(temp," : 램디스크이다."); SendMessage(hList,LB_ADDSTRING,0,(LPARAM)temp); break; return TRUE; case IDOK : case IDCANCEL : EndDialog (hdlg, 0) ; return TRUE ; break ; return FALSE ; 20
11 3. 파일관리 HANDLE FindFirstFile( LPCTSTR lpfilename, LPWIN32_FIND_DATA lpfindfiledata ); BOOL FindNextFile( HANDLE hfindfile, LPWIN32_FIND_DATA lpfindfiledata ); BOOL FindClose( HANDLE hfindfile ); lpfilename : 검색식을준다. 검색시작위치와검색대상파일을와일드카드식으로표현한다. (C: Windows *.exe) lpfindfiledata : 검색결과가구조체에담겨서넘어온다. WIN32_FIND_DATA FindData; HANDLE hfindfile = FindFirstFile("C: Windows *.*",&FindData); BOOL bresult = TRUE; while(bresult) bresult = FindNextFile(hFindFile,&FindData); SendMessage(hList,LB_ADDSTRING,0,(LPARAM)FindData.cFileName); FindClose(hFindFile); 파일관리 HANDLE FindFirstChangeNotification( LPCTSTR lppathname, BOOL bwatchsubtree, DWORD dwnotifyfilter ); 윈도우는특정디렉토리의내용이변경될때통지를해줄수있으며응용프로그램은이통지를받았을때자신이가지고있는목록을갱신하거나특별한동작을할수있다. lppathname : 감시의대상이되는디렉토리경로 이객체는변화가생기면신호상태가되므로대기함수와함께사용하면변화의시점을정확하게통지받을수있다. bwatchsubtree : 서브디렉토리까지검사할것인지를지정한다. dwnotifyfilter : 어떤변화를감시할것인가를지정하며다음플래그들의조합으로지정한다. FILE_NAME : 파일명이변경되었다. 파일생성, 삭제 DIR_NAME : 디렉토리가변경되었다. 생성, 삭제 ATTRIBUTE : 속성중일부가변경되었다. SIZE : 파일의크기가변경되었다. LAST_WRITE : 파일의최후기록시간이변경되었다. 22
12 DLL DLL (Dynamic Link Library) 동적연결라이브러리 (DLL) : (<-> 정적라이브러리, *.Lib) Microsoft Windows 의가장중요한구조적요소중하나이다. 라이브러리의기초 DLL 은직접실행될수없다. 메시지를받지않는다. 프로그램에서호출되는함수들을가진별도의파일이다. 프로그램이라이브러리내의함수들중하나를호출할때만동작한다. 확장자가 DLL 이면자동으로로드된다. DLL 의목적 다수의서로다른프로그램들에의해사용될수있는함수와자원을제공 DllMain DLL 이단순함수의집합이라면필요치않지만, 복잡한전역변수가있거나동적으로메모리를할당해사용할때초기화와종료처리를위해작성 DLL 이실행파일에의해요청되거나해제될때호출된다. DllMain(HINSTANCE hinstance, DWORD dwreason, LPVOID lpreserved) hinstance : 라이브러리의인스턴스핸들 dwreason : Windows 가 DllMain 을호출하는이유 DLL_PROCESS_ATTACH» 동적연결라이브러리가프로세스의주소공간으로매핑되어있음을나타낸다.» 프로세스가수행되는동안오직한번의호출된다. 24
13 1. DLL (Dynamic Link Library) DLL_PROCESS_DETACH» 해당프로세스에 DLL이더이상필요로하지않는다는것을의미» 라이브러리가자신을정리한다. DLL_THREAD_ATTACH» 추가된프로세스가새로운스레드를만든다. DLL_THREAD_DETACH» 스레드가종료될때 Window는호출한다. 우선함수를제공하는 DLL에서는자신이제공하는함수에대한정보를밖으로공개해놓아야한다. Export DLL을사용하는클라이언트에서는어떤 DLL에있는어떤함수를사용하겠다고선언해야한다. Import declspec ( extended-decl-modifier-seq ) 함수에대한정보를제공하는선언문이며엑스포트또는임포트하는함수앞에수식어로이문구가있어야한다. extern "C" declspec(dllexport) int InitHook( HINSTANCE hdll, HWND hwndhost ) extern "C" typedef declspec(dllimport) int (*PFNInitHook)( HINSTANCE hdll, HWND hwndhost ); extern "C" typedef declspec(dllimport) void (*PFNGetDeadWndTxt)( char *pszbuf, int nmaxbuf ); extern "C" typedef declspec(dllimport) void 25 (*PFNReleaseHook)(); 1. DLL (Dynamic Link Library) extern C mangled name 을만들지않도록지정함으로써 C 형식으로함수의정보를공개하도록한다. 명시적연결 m_hinstdll = ::LoadLibrary( "l3t_hook.dll" ); if(!m_hinstdll ) MessageBox( "l3t_hook.dll 을찾을수없습니다.", " 오류 " ); return FALSE; m_pfninithook = (PFNInitHook)::GetProcAddress( m_hinstdll, "InitHook" ); m_pfnreleasehook = (PFNReleaseHook)::GetProcAddress( m_hinstdll, "ReleaseHook" ); m_pfngetdeadwndtxt = (PFNGetDeadWndTxt)::GetProcAddress( m_hinstdll, "GetDeadWndTxt" ); if( (!m_pfninithook) (!m_pfnreleasehook) ) MessageBox( " 잘못된 dll입니다.", " 오류 " ); ::FreeLibrary( m_hinstdll ); m_hinstdll = 0; return FALSE; 26
14 DLL 컴파일시 dll, lib 자동복사 27 디버깅 DLL, EXE : 디버깅모드로컴파일되어야 각각프로젝트세팅에서패스지정해야 28
슬라이드 1
파일 I/O 와디렉터리컨트롤 1 목차 기본적인파일처리 파일검색 파일열기 & 닫기 파일읽기 & 쓰기 삭제, 복사, 이동 (?) 파일의시간정보얻기 파일특성정보얻기 파일포인터 directory 생성 & 삭제 경로설정 경로얻기 2 파일생성 / 열기 HANDLE CreateFile ( LPCTSTR lpfilename, DWORD dwdesiredaccess, 파일이름
More information[dwcreationdisposition ( 만들고자하는파일이이미있는경우와없는경우처리지정 )] CREATE_NEW CREATE_ALWAYS OPEN_EXISTING OPEN_ALWAYS 없는경우만생성있으면삭제하고새로생성졲재할때만열기없으면새로만들고열기 TRUNCATE_E
API used in malware 작성자 : l@ughfo0l 1. 파일관련 API 1.1 파일읽기 BOOL ReadFile( HANDLE hfile, /* 파일핸들 */ LPVOID lpbuffer, /* 읽은데이터를저장할버퍼 */ nnumberofbytestoread, /* 읽고자하는양 */ LP lpnumberofbytesread, /* 실제로읽은양
More information1장 윈도우 프로그래밍 들어가기
1 장 윈도우프로그래밍들어가기 김성영교수 금오공과대학교 컴퓨터공학부 예제 다음프로그램은언제종료할까? #include #define QUIT -1 int Func(void) int i; cout > i; return i; void main(void) int Sum = 0, i; cout
More informationMicrosoft PowerPoint - 09-CE-5-윈도우 핸들
순천향대학교컴퓨터학부이상정 1 학습내용 윈도우핸들 윈도우찿기 윈도우확인및제거 윈도우숨기기 윈도우포커스 윈도우텍스트 윈도우핸들 순천향대학교컴퓨터학부이상정 3 핸들 (handle) 윈도우에서구체적인어떤대상을구분하기위해지정되는고유의번호 32비트의정수값 핸들은운영체제가발급하고사용자가이값을사용 실제값이무엇인지는몰라도상관없음 윈도우, DC, 브러쉬등등 순천향대학교컴퓨터학부이상정
More informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationMicrosoft PowerPoint - (제15강)Win32 API.ppt
15. 가상메모리, 프로세스 1 1. 메모리할당 가상메모리 OS는 4G 까지메모리 ( 단지주소공간, 물리적인메모리와연결가능성이있는메모리번지 ) 관리가능 사용하지않는부분은하드디스크의페이징파일에저장하여사용가능한 RAM을늘린다. (RAM+ 하드디스크의페이징파일 ) Win32에서추가된가상메모리할당함수들 1. 메모리를예약상태로할당할수있다. 예약이란물리적인메모리를소비하지않으면서주소공간만을미리할당해놓는방법을말한다.
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More information2015 년정보보호학과졸업작품보고서 USB 를이용한 System Lock 및 File Security Service 팀명 : Team IU ( Intelligent USB ) 지도교수 : 양정모교수님 조장 : 조상일 유승우 조한슬 중부대학교정보보호학과
2015 년정보보호학과졸업작품보고서 USB 를이용한 System Lock 및 File Security Service 팀명 : Team IU ( Intelligent USB ) 지도교수 : 양정모교수님 조장 : 조상일 유승우 조한슬 2015. 6 중부대학교정보보호학과 목 차 Ⅰ. 서론 Ⅰ-1. 프로젝트소개 Ⅰ-2. 연구활동배경 Ⅰ-3. 피해사례조사 Ⅱ. 본론
More informationContent 1. DLL? 그게뭐야?
DLL Injection 은어떻게이루어지는가? By bl4ck3y3 (http://hisjournal.net/blog) Abstract 루트킷을비롯하여바이러스, 악성코드등여러분야에두루쓰이는기법이 DLL Injection입니다. Windows에한정되어적용되는것이지만, Windows 자체의점유율이높은이유로아주효과적으로공격자가원하는작업을수행할수있는방법이죠. 최근루트킷에대해공부하면서이
More information제목
Development Technology Seminar 작 성 자 : 고형호 이 메 일 : hyungho.ko@gmail.com 최초작성일 : 2007.01.19 최종작성일 : 2007.02.05 버 전 : 01.05 홈 피 : www.innosigma.com Goal Exception Handling 1. SEH vs. CEH Exception Handling
More information<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>
의료프로그래밍실습 의료공학과이기영 1 Chap. 11 파일입출력 2 1 이장의목표 텍스트파일의입출력방법을익힌다. (284 쪽그림참조 ) 3 C 언어의파일종류 텍스트파일 (text file) 사람들이읽을수있는문자들을저장하고있는파일 텍스트파일에서 한줄의끝 을나타내는표현은파일이읽어들여질때, C 내부의방식으로변환된다. 이진파일 (binary file) : 자료형그대로의바이트수로연속해서저장
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More informationUI TASK & KEY EVENT
T9 & AUTOMATA 2007. 3. 23 PLATFORM TEAM 정용학 차례 T9 개요 새로운언어 (LDB) 추가 T9 주요구조체 / 주요함수 Automata 개요 Automata 주요함수 추후세미나계획 질의응답및토의 T9 ( 2 / 30 ) T9 개요 일반적으로 cat 이라는단어를쓸려면... 기존모드 (multitap) 2,2,2, 2,8 ( 총 6번의입력
More informationDLL(Dynamic Linked Library)
제 11 장동적연결라이브러리 11.1 DLL 의링크 11.2 DLL 의종류 실습 11-1 Implicit 링킹을통한정규 DLL 달력만들기 실습 11-2 Explicit 링킹을통한정규 DLL 달력만들기 실습 11-3 확장 DLL 을통한주민등록번호조회 프로그램만들기 DLL(Dynamic Linked Library) DLL 이란? 동적연결라이브러리 프로그램내부에라이브러리가있는것이아니라따로독립적으로실행가능한파일
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More informationLab 4. 실습문제 (Circular singly linked list)_해답.hwp
Lab 4. Circular singly-linked list 의구현 실험실습일시 : 2009. 4. 6. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 12. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Circular Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Circular
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information쉽게 풀어쓴 C 프로그래밍
제 13 장파일처리 1. 스트림의개념을이해한다. 2. 객체지향적인방법을사용하여파일입출력을할수있다. 3. 텍스트파일과이진파일의차이점을이해한다. 4. 순차파일과임의접근파일의차이점을이해한다. 이번장에서만들어볼프로그램 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 입출력관련클래스들 파일쓰기
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 16 강. 파일입출력목차 파일입출력기초 파일입출력모드 텍스트파일과이진파일 이진파일입출력 임의접근 1 /18 16 강. 파일입출력파일입출력기초 파일입출력과정 파일스트림객체생성 파일열기 사용 : 기본적으로표준입출력객체 (cin, cout) 사용방법과동일 파일닫기 파일스트림클래스의종류
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More information<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>
2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More information03장.스택.key
---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():
More information슬라이드 1
2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)
More information직렬 통신 컴포넌트의 제작
직렬통신컴포넌트의제작 (Creating Serial Communication Components) 이번장에서는윈도우 API 함수를이용해서시리얼통신을제어할수있는방법을소개하고, 이를바탕으로간단한시리얼통신컴포넌트를제작하도록할것이다. 시리얼통신과관련해서는여러가지프리웨어컴포넌트를인터넷에서찾을수있으므로, 자신에게맞는컴포넌트를찾아서사용하는것도하나의방법이될것이다. 그러나,
More information[Immunity Debugger & Python (Part 1)] Written by Osiris ( , msn by beistlab(
[Immunity Debugger & Python (Part 1)] Written by Osiris (email, msn mins4416@naver.com) by beistlab(http://beist.org) Synopsis Immunity Debugger는 Python을플러그인형태로지원하고있습니다. 이 2개를연동할경우강력한 Reverse Engineering
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include "QuickSort.h" 7 using namespace std; 8 9 10 Node* Queue[100]; // 추가입력된데이터를저장하기위한 Queue
More informationMicrosoft PowerPoint - 04windows.ppt
Game Programming I Windows 프로그래밍 (1) March 27, 2006 목표 윈도우프로그래밍에서이용되는이벤트구동프로그래밍모델의이해 Direct3D 를이용하는윈도우어플리케이션의작성을위한최소한의코드이해 윈도우 (Win32) 어플리케이션 Direct3D API ( 어플리케이션프로그래밍인터페이스 ) 를이용하기위해필요 Win32 API 를이용해작성
More informationMicrosoft PowerPoint - chap11-포인터의활용.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More informationChapter 4. LISTS
C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More information<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>
#include "stdafx.h" #include "Huffman.h" 1 /* 비트의부분을뽑아내는함수 */ unsigned HF::bits(unsigned x, int k, int j) return (x >> k) & ~(~0
More information61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&
More informationUI TASK & KEY EVENT
KEY EVENT & STATE 구현 2007. 1. 25 PLATFORM TEAM 정용학 차례 Key Event HS TASK UI TASK LONG KEY STATE 구현 소스코드및실행화면 질의응답및토의 2 KEY EVENT - HS TASK hs_task keypad_scan_keypad hs_init keypad_pass_key_code keypad_init
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More informationC프로-3장c03逞풚
C h a p t e r 03 C++ 3 1 9 4 3 break continue 2 110 if if else if else switch 1 if if if 3 1 1 if 2 2 3 if if 1 2 111 01 #include 02 using namespace std; 03 void main( ) 04 { 05 int x; 06 07
More information<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>
01 : 윈도우프로그래밍기초 학습목표 윈도우운영체제와윈도우응용프로그램의특징을이해한다. SDK 응용프로그램작성과정, 기본구조, 동작원리를이해한다. MFC 응용프로그램작성과정, 기본구조, 동작원리를이해한다. 비주얼 C++ 개발환경사용법을익힌다. 윈도우운영체제특징 (1/3) 그래픽사용자인터페이스 1 윈도우운영체제특징 (2/3) 메시지구동구조 이벤트발생... 대기
More informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More information윈도우즈 프로그래밍
8 장대화상자 VS 2015 008. 윈도우프로그래밍 DB & Mining LAB. Korea University Updated 2010. 10. 23 Updated 2012. 10. 02 Updated 2015. 09. 23 이종욱 eastwest9@korea.ac.kr 1 8-1 대화상자 (1/3) 사용자로부터끊임없이지시를받고사용자의지시에따라작업을하고 작업한결과를사용자에게보고한다.
More information2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 중부대학교정보보호학과
2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 2014. 5 중부대학교정보보호학과 목 차 1. 프로젝트설명 1 2. 연구계획 1 2.1 연구목적 1 2.2 연구방법 2 2.3 연구개요 2 2.4 연구구성도 3 3. 연구프로그램구축 5 3.1 주요소스 5 3.2 실행결과
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More information프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어
개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More informationIn this tutorial i'll try to cover all of the known methods(or at least, those that I know =p) of injecting dll's into a proce
DLL injection Written by Darawk 편역 : poc@securityproof.net * 이글은 Codebreakers Journal Vol.1, No.1, 2007 에서발표된것이며, 오역이나 오타가있을수있으니원문을참고시기바랍니다. 이문서에서, 나는프로세스에 dll을삽입하는알려진 ( 적어도내가아는한에서 ) 방법들모두를다룰것이다. Dll injection은
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationMicrosoft Word - hook4.doc
개발자를위한윈도우후킹테크닉 SendMessage 후킹하기 지난시간에 WH_GETMESSAGE 훅을통해서메시큐에서메시지가처리되는과정을후킹해보았다. 이번시간에는 WH_CALLWNDPROC, WH_CALLWNDRETPROC 훅을통해서 SendMessage 의처리과정을후킹하는방법과다수의훅프로시저를설치한경우에동기화하는방법에대해서설명할것이다. 목차 목차...1 필자소개...1
More informationDCL Debugging Support
DCL Runtime Debugging Support 2005.06.08 김대중 http://www.sysdeveloper.net/daejung 요약 버그없는소프트웨어를개발하는것은결코쉬운일이아니다. 대부분의상업적개발도구들이소스프로그램을추적할수있도록하는디버깅환경을제공하고있고이러한것들은단위함수들을디버깅하는데있어서매우유용한건사실이다.
More informationPowerPoint 프레젠테이션
@ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program
More informationPowerPoint 프레젠테이션
파일입출력 Heeseung Jo 이장의내용 파일과파일포인터 파일입출력함수 임의접근파일처리 2 파일과파일포인터 파일 파일은모든데이터를연속된바이트형태로저장 4 C 언어의파일종류 텍스트파일 (text file) 사람들이읽을수있는문자들을저장하고있는파일 텍스트파일에서 " 한줄의끝 " 을나타내는표현은파일이읽어들여질때, C 내부의방식으로변환 예, a.txt, main.c,
More informationPowerPoint 프레젠테이션
배효철 th1g@nate.com 1 목차 표준입출력 파일입출력 2 표준입출력 표준입력은키보드로입력하는것, 주로 Scanner 클래스를사용. 표준출력은화면에출력하는메소드를사용하는데대표적으로 System.out.printf( ) 를사용 3 표준입출력 표준출력 : System.out.printlf() 4 표준입출력 Example 01 public static void
More information슬라이드 1
핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton
More information슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
More informationMicrosoft PowerPoint - chap12-고급기능.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로
More informationCKKeyPro 적용가이드
3.20 사이버테러악성코드분석보고서 라온시큐어보안기술연구팀 작성일 : 2013. 03 페이지 : 1/15 Introduction 2013년 3월 20일오후, MBC, KBS, YTN, 농협, 신한은행, 제주은행전산망장애가동시에발생하였다. 피해기관들의호스트약 500여대에오류메시지가화면에나타났으며악성코드에감염된호스트는사용할수없는상태가되었다. 현재까지정확한침투경로가밝혀지지않고있다.
More information8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )
8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop
More informationPowerPoint 프레젠테이션
Win32 API Windows Programming 1 http://idb.korea.ac.kr DB & Mining LAB. Korea Univ. 최종업데이트 : 2012. 08. 14 1 컴퓨터시스템의주요구성요소 2 2 컴퓨터하드웨어구성 Fetch : 메인메모리에저장되어있는명령어를 CPU 로 Decode : 컨트롤유닛에의해분석 Execution : ALU
More information슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More information5.스택(강의자료).key
CHP 5: https://www.youtube.com/watch?v=ns-r91557ds ? (stack): (LIFO:Last-In First-Out):. D C B C B C B C B (element) C (top) B (bottom) (DT) : n element : create() ::=. is_empty(s) ::=. is_full(s) ::=.
More informationPowerPoint 프레젠테이션
@ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field
More informationMFC 프로그래밍
윈도우프로그래밍 Visual C++ 2010 MFC Programming 1 장. 윈도우프로그래밍기초 윈도우운영체제의특징 그래픽사용자인터페이스 시스템메뉴타이틀바메뉴최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 상태표시줄 스크롤바 윈도우운영체제의특징 메시지구동구조 윈도우운영체제의특징 멀티태스킹과멀티스레딩 멀티태스킹 (Multitasking) 운영체제가여러개의응용프로그램을동시에실행
More informationPowerPoint 프레젠테이션
오픈소스소프트웨어개발입문 (CP33992) 파일입출력 부산대학교공과대학정보컴퓨터공학부 학습목표 파일의기본개념과특징을이해할수있다. 파일처리과정을이해할수있다. 형식을지정한파일입출력함수의사용법을알수있다. 2 파일과파일포인터 3 파일 C 의파일은모든데이터를연속된바이트형태로저장한다. 4 텍스트파일 (text file) C 언어의파일종류 사람들이읽을수있는문자들을저장하고있는파일
More information(Microsoft Word - \301\337\260\243\260\355\273\347.docx)
내장형시스템공학 (NH466) 중간고사 학번 : 이름 : 문제 배점 점수 1 20 2 20 3 20 4 20 5 10 6 10 7 15 8 20 9 15 합계 150 1. (20 점 ) 다음용어에대해서설명하시오. (1) 정보은닉 (Information Hiding) (2) 캡슐화 (Encapsulation) (3) 오버로딩 (Overloading) (4) 생성자
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More informationThe C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시
The C++ Programming Language 4 장타입과선언 4.11 연습문제 4.11.1 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include //#include 문, 헤더파일, 전처리지시자로호칭 using namespace std; //using 키워드를사용하여 std 네임스페이스를사용선언
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More information슬라이드 1
HTC-3500 Series Vision Camera Multi Vision Camera Development Manual Ver 2.1 2013. 06. 25 http:// Jun 25, 2013 목차 1. 개요.. 4 2. Multi Vision Camera Specification. 2.1 General feature 2.2 PC Requirements.
More information문서의 제목 나눔고딕B, 54pt
산업공학과를위한 프로그래밍입문 (w/ 파이썬 ) PART II : Python 활용 가천대학교 산업경영공학과 최성철교수 간단한파일다루기 [ 생각해보기 ] 우리는어떻게프로그램을시작하나? 보통은이렇게생긴아이콘을누른다! 그러나실제로는아이콘이아닌 실행파일 을실행시키는것아이콘을클릭하고오른쪽마우스클릭 속성 을선택해볼것 [ 생각해보기 ] 옆과같은화면이나올것이다대상에있는
More informationC 프로그램의 기본
C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석
More information1 1. INTRODUCTION 2 2. DOWNLOAD Windows Desktop & Server Max OS X, Linux, Windows CE 2 3. API REFERENCE CAN_OpenVcp CAN_Op
USB2CAN USB2CAN-VCP USB2CAN-FIFO API Reference Manual ver. 1.00 Updated in November 2013 1 1. INTRODUCTION 2 2. DOWNLOAD 2 2-1. Windows Desktop & Server 2 2-2. Max OS X, Linux, Windows CE 2 3. API REFERENCE
More informationPowerPoint 프레젠테이션
Web server porting 2 Jo, Heeseung Web 을이용한 LED 제어 Web 을이용한 LED 제어프로그램 web 에서데이터를전송받아타겟보드의 LED 를조작하는프로그램을작성하기위해다음과같은소스파일을생성 2 Web 을이용한 LED 제어 LED 제어프로그램작성 8bitled.html 파일을작성 root@ubuntu:/working/web# vi
More informationUSB2
USB2.0 KIT 용 적외선 온도센서와 온/습도 센서 보드 1. 주의 사항(필독) 2. 시스템 구성 3. USB 프로그램 다운로드 방법 4, PC 프로그램 5. PC Library 사용방법 6. 상품 구입시 회 사 명 : IESystems Website : www.iesystems.co.kr Email : matrixhj@iesystems.co.kr 전화번호
More informationALTIBASE 사용자가이드 Templete
Real Alternative DBMS ALTIBASE, Since 1999 ALTIBASE & Visual C++ 2010 Professional Edition 개발가이드 2014. 04 Copyright c 2000~2013 ALTBASE Corporation. All Rights Reserved. Document Control Change Record
More information- 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager clas
플랫폼사용을위한 ios Native Guide - 목차 - - ios 개발환경및유의사항. - 플랫폼 ios Project. - Native Controller와플랫폼화면연동. - 플랫폼 Web(js)-Native 간데이터공유. - 플랫폼확장 WN Interface 함수개발. - Network Manager class 개발. - Native Controller에서
More informationMicrosoft PowerPoint - 09-CE-14-리스트콤보박스
순천향대학교컴퓨터학부이상정 1 학습내용 리스트박스컨트롤 다이얼로그와리스트박스 콤보박스컨트롤 순천향대학교컴퓨터학부이상정 2 리스트박스컨트롤 순천향대학교컴퓨터학부이상정 3 리스트박스컨트롤 사용자가선택할수있는항목들을여러개나열해두고선택할수있는컨트롤 윈도우클래스의이름은 "listbox" 생성예 hlist=createwindow(l"listbox",null,ws_child
More informationchap x: G입력
재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘
More information윈도우즈 프로그래밍
윈도우프로그래밍및실습 002. 윈도우프로그래밍의기본 DB & MINING LAB. Korea University since 2007. 09. 03 updated 2012. 08. 18 last updated 2015. 08. 25 이종욱 eastwest9@korea.ac.kr 1 Purpose of this chapter What is a Window programming
More informationMicrosoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More information버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습
앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수
More informationMicrosoft PowerPoint - chap11-1.ppt [호환 모드]
chapter 11-1 참고자료. 파일입출력 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 파일입출력의개념 파일은데이터를입출력하는모든대상을의미한다. - 키보드로부터데이터를입력하고모니터로출력하는것은키보드파일과 모니터파일로데이터를입출력하는것이다.
More informationPowerPoint 프레젠테이션
KeyPad Device Control - Device driver Jo, Heeseung HBE-SM5-S4210 에는 16 개의 Tack Switch 를사용하여 4 행 4 열의 Keypad 가장착 4x4 Keypad 2 KeyPad 를제어하기위하여 FPGA 내부에 KeyPad controller 가구현 KeyPad controller 16bit 로구성된
More informationMicrosoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]
Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)
More informationMicrosoft PowerPoint - es-arduino-lecture-03
임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습
More information슬라이드 1
CHAP 2: 순환 (Recursion) 순환 (recursion) 이란? 알고리즘이나함수가수행도중에자기자신을다시호출하여문제를해결하는기법 정의자체가순환적으로 되어있는경우에적합한방법 순환 (recursion) 의예 팩토리얼값구하기 피보나치수열 1 n! n*( n 1)! fib( n) 0 1 fib( n 2) n n 0 ` 1 fib( n 1) if n 0 if
More informationMicrosoft PowerPoint 자바-기본문법(Ch2).pptx
자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March
More information