학점은행제/시스템프로그래밍

[시스템프로그래밍] 시스템 프로그래밍 프로젝트 디자인

단비_danbee 2021. 1. 18. 16:47

 

에러 코드 확인

1) 오류를 해결하기 위해 오류의 원인과 해결방법을 확인해보자

  • Windows 시스템 함수 호출 시 오류 발생
  • GetLastError 함수 호출을 통해 오류 원인 확인 가능
  • Windows 시스템 함수 오류 발생 시 NULL을 반환

2) 에러코드가 정말 많은데 그중에 500~900번대에서 자주 보이는 에러 코드를 확인해보자

 

ERROR_ARITHMETIC_VERFLOW 534 Arithmetic result exceeded 32bit.
ERROR_PIPE_CONNECTED 535 There is a process on other end of the pipe
ERROR_PIPE_LISTENING 536 Waiting for process to open the other end of the pipe
ERROR_EA_ACCESS_DENIED 994 Access to the extended attribute was denied
ERROR_OPERATION_ABORTED 995  The I/O operation has been aborted because of either a thread exit or an application request
ERROR_I/O_PENDING 997 Overlapped I/O operation is in progress
ERROR_NOACCESS 998 Invalid access to memory location
ERROR_SWAPERROR 999 Error performing in page operation

 

3) 에러코드 획득 방법에 대한 예

실행 결과 : Error code 2

 

  • CreateFile : 파일을 개방하는 함수
_T("ABC.DAT", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
= 파일탐색기를 열고 검색창에 ABC.DAT 을 쳐보자. 임의로 적은 없는 파일이기 때문에 에러가 나타난다.

 

  • 존재하지 않는 파일 OPEN 설정, 함수 호출 실패
  • CreateFile 함수 실패
INVALID_HANDLE_VALUE 반환

 

  • 에러 코드 출력 "The system cannot find the file specified"
_tprintf(_T("error code:%d\n"), GetLastError() );
return 0;

 

  • 명령 프롬프트 HELP 명령어 입력시 나오는 화면

 

명령 프롬프트에서 명령어 추가하기

  • OS는 사람이 만들었다 CMD가 만들어진 이유는 하드웨어를 더 쉽게 사용하기 위해서다
  • 이렇게 HELP를 입력했을때 나오는 부분에 내가 직접 명령어를 추가할 수 있다
  • int CmdProcessing(void)
  • 명령어를 입력 받아 해당 명령어에 지정된 기능을 수행함
  • Exit가 입력되면 TRUE를 반환하고 프로그램을 종료함