2015년 9월 14일 월요일

Windows programming 공부하면서..(4)

GetLastError 함수와 에러코드



참고[1]
GetLastError 함수를 사용하면 오류의 원인을 확인 할 수 있다. 많은 수의 Windows 시스템 함수들은 오류가 발생할 때 NULL을 반환한다. 에러코드에 관련된 내용은 참고[2]를 통하여 확인할 수 있다.

예제 코드



error code 2는 "This system cannot find the file specified."를 의미하며, "찾고자 하는 파일이 존재하지 않는다."는 의미를 한다. 또한 GetLastError 함수의 특징은 "오류 확인은 오류가 발생한 직후에 바로 한다."라는 특징을 갖는다.


Windows의 시스템 명령어


CMD에서 'help'를 치면 아래와 같은 시스템 명령어들을 확인 할 수 있다.(평소에 항상 봐야지 했던 명령어 인데 한번씩 읽어보자 ! 신기한 명령어가 많다.)

ASSOC : 파일 확장명 연결을 보여주거나 수정합니다.
ATTRIB : 파일 속성을 표시하거나 바꿉니다.
BREAK : 확장된 CTRL + C 검사를 설정하거나 지웁니다.
BCDEDIT : 부팅 로딩을 제어하기 위해 부팅 데이터베이스에서 속성을 설정합니다.
CACLS : 파일의 액세스 컨트롤 목록(ACL)을 표시하거나 설정합니다.
CALL : 한 일괄 프로그램에서 다른 일괄 프로그램을 호출합니다.
CD : 현재 디렉터리 이름을 보여주거나 바꿉니다.
CHCP : 활성화된 코드 페이지의 번호를 표시하거나 설정합니다.
CHDIR : 현재 디렉토리 이름을 보여주거나 바꿉니다.
CHKDSK : 디스크를 검사하고 상태 보고서를 표시합니다.
CHKNTFS : 부팅하는 동안 디스크 확인을 화면에 표시하거나 변경합니다.
CLS : 화면을 지웁니다.
CMD : WINDOWS 명령 인터프리터의 새 인스턴스를 시작합니다.
COLOR : 콘솔의 기본색과 배경색을 설정합니다.
COMP : 두 개 또는 여러 개의 파일을 비교합니다.
COMPACT : NTFS 분할 영역에 있는 파일의 압축을 표시하거나 변경합니다.
CONVERT : FAT 볼륨을 NTFS로 변환합니다. 현재 드라이브는 변환할 수 없습니다.
COPY : 하나 이상의 파일을 다른 위치로 복사합니다.
DATE : 날짜를 보여주거나 설정합니다.
DEL : 하나 이상의 파일을 지웁니다.
DISKPART : 디스크 파티션 속성을 표시하거나 구성합니다.
DOSKEY : 명령줄을 편집하고, WINDOWS 명령을 다시 호출하고, 매크로를 만듭니다.
DRIVERQUERY : 현재 장치 드라이버 상태와 속성을 표시합니다.
ECHO : 메시지를 표시하거나 ECHO를 켜거나 급니다.
ENDLOCAL : 배치 파일에서 환경 변경의 지역화를 끝냅니다.
ERASE : 하나 이상의 파일을 지웁니다.
EXIT : CMD.EXE 프로그램(명령 인터프리터)을 종료합니다.
FC : 두 파일 또는 파일 집합을 비교하여 다른 점을 표시합니다.
FIND : 파일에서 텍스트 문자열을 검색합니다.
FINDSTR : 파일에서 문자열을 검색합니다.
FOR : 파일 집합의 각 파일에 대해 지정된 명령을 실행합니다.
FORMAT : WINDOWS에서 사용할 디스크를 포맷합니다.
FSUTIL : 파일 시스템 속성을 표시하거나 구성합니다.
FTYPE : 파일 확장명 연결에 사용되는 파일 형식을 표시하거나 수정합니다.
GOTO : WINDOWS 명령 인터프리터가 일괄 프로그램에서 이름표가 붙여진 줄로 이동합니다.
GPRESULT : 컴퓨터 또는 사용자에 대한 그룹 정책 정보를 표시합니다.
GRAFTABL : WINDOWS가 그래픽 모드에서 확장 문자 세트를 표시할 수 있게 합니다.
HELP : WINDOWS 명령에 대한 도움말 정보를 제공합니다.
ICACLS : 파일과 디렉터리에 대한 ACL을 표시, 수정, 백업 또는 복원합니다.
IF : 일괄 프로그램에서 조건 처리를 수행합니다.
LABEL : 디스크의 볼륨 이름을 만들거나, 바꾸거나 지웁니다.
MD : 디렉터리를 만듭니다.
MKDIR : 디렉터리를 만듭니다.
MKLINK : 바로 가기 링크와 하드 링크를 만듭니다.
MODE : 시스템 장치를 구성합니다.
MORE : 출력을 한번에 한 화면씩 표시합니다.
MOVE : 하나 이상의 파일을 한 디렉터리에서 다른 디렉터리로 이동합니다.
OPENFILES : 파일 공유에서 원격 사용자에 의해 열린 파일을 표시합니다.
PATH : 실행 파일의 찾기 경로를 표시하거나 설정합니다.
PAUSE : 배치 파일의 처리를 일시 중단하고 메시지를 표시합니다.
POPD : PUSHD에 의해 저장된 현재 디렉터리의 이전 값을 복원합니다.
PRINT : 텍스트 파일을 인쇄합니다.
PROMPT : Windows 명령 프롬프트를 변경합니다.
PUSHD : 현재 디렉터리를 저장한 다음 변경합니다.
RD : 디렉터리를 제거합니다.
RECOVER : 불량이거나 결함이 있는 디스크에서 읽을 수 있는 정보를 복구합니다.
REM : 배치 파일 또는 CONFIG.SYS에 주석을 기록합니다.
REN : 파일 이름을 바꿉니다.
RENAME : 파일 이름을 바꿉니다.
REPLACE : 파일을 바꿉니다.
RMDIR : 디렉터리를 제거합니다.
ROBOCOPY : 파일과 디렉터리 트리를 복사할 수 있는 고급 유틸리티입니다.
SET : Windows 환경 변수를 표시, 설정 또는 제거합니다.
SETLOCAL : 배치 파일에서 환경 변경의 지역화를 시작합니다.
SC : 서비스(백그라운드 프로세스)를 표시하거나 구성합니다.
SCHTASKS : 컴퓨터에서 실행할 명령과 프로그램을 예약합니다.
SHIFT : 배치 파일에서 바꿀 수 있는 매개 변수의 위치를 바꿉니다.
SHUTDOWN : 컴퓨터의 로컬 또는 원격 종료를 허용합니다.
SORT : 입력을 정렬합니다.
START : 지정한 프로그램이나 명령을 실행할 별도의 창을 시작합니다.
SUBST : 경로를 드라이브 문자에 연결합니다.
SYSTEMINFO : 컴퓨터별 속성과 구성을 표시합니다.
TASKLIST : 서비스를 포함하여 현재 실행 중인 모든 작업을 표시합니다.
TASKKILL : 실행 중인 프로세스나 응용 프로그램을 중단합니다.
TIME : 시스템 시간을 표시하거나 설정합니다.
TITLE : CMD.EXE 세션에 대한 창 제목을 설정합니다.
TREE : 드라이브 또는 경로의 디렉터리 구조를 그래픽으로 표시합니다.
TYPE : 텍스트 파일의 내용을 표시합니다.
VER : Windows 버전을 표시합니다.
VERIFY : 파일이 디스크에 올바로 기록되었는지 검증할지 여부를 지정합니다.
VOL : 디스크 볼륨 레이블과 일련 번호를 표시합니다.
XCOPY : 파일과 디렉터리 트리를 복사합니다.
WMIC : 대화형 명령 셸 내의 WMI 정보를 표시합니다.


명령 프롬프트 중 EXIT 명령어 구현





참고
[1]. GetLastError MSDN : https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms679360%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
[2]. System error codes : https://msdn.microsoft.com/ko-kr/library/windows/desktop/ms681381(v=vs.85).aspx
[3]. 유니코드를 표준 출력에 내보내기 : http://andromedarabbit.net/wp/unicode_hangul_to_stdout/

댓글 없음:

댓글 쓰기