본문 바로가기

C언어/시스템 소프트웨어

[C언어] perror, errno, exit

728x90
반응형

errno

 

errno는 <errno.h>에 정의되어 있는 정수형 변수이다.

 

만약 에러가 발생하게 되면 에러의 종류에 맞는 정수가 errno에 들어가게 된다.

 

즉, errno는 마지막으로 발생한 에러 코드라고 할 수 있다.

 

 

 

 

 

 

perror()

 

<stdio.h>에 정의되어 있는 함수로 에러 메시지를 출력하는 데 사용된다.

 

perror()의 시그니처는 아래 코드와 같다.

void perror(const char* s);

 

perror()은 입력받은 문자열을 출력하고 그 문자열에 덧붙여서 errno의 정수값을 기반으로 한 에러 메시지를 출력한다.

 

 

 

 

 

exit()

 

<stdlib.h>에 정의되어 있는 함수로 프로그램을 종료하는 역할을 한다.

 

exit()의 시그니처는 아래 코드와 같다.

void exit(int status);

 

0을 전달받았을 경우 정상종료를 의미하고 0 이외의 값을 전달받았을 경우 비정상종료를 의미한다.

 

 

 

 

 

파일의 정상 오픈

 

파일을 open()함수로 열려고 할 때 정상적으로 open 되었는지 확인하는 과정이 필요하다.

 

이때 perror()와 exit()를 사용하여 아래 코드처럼 작성할 수 있다.

 

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#inlcude <fcntl.h>

int main () {
	int fd;
	char buf[512];
	if (fd = open("a.txt", O_RDONLY) < 0) {
		perror("open");
		exit(-1);	
	}
	return 0;	
}

 

 

 

 

 

728x90
반응형