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
반응형
'C언어 > 시스템 소프트웨어' 카테고리의 다른 글
[시스템 소프트웨어/C언어] stat(), fstat() (0) | 2024.10.08 |
---|---|
[시스템 소프트웨어/C언어] lseek, 파일 오프셋 변경 (파일 작업 위치 변경) (0) | 2024.10.08 |
[C언어] 파일 입출력 (open, close, write, read) (0) | 2024.10.07 |
[시스템 소프트웨어] File Sharing (file offset) (0) | 2024.10.07 |
[시스템 소프트웨어] 메타 데이터, inode, 파일 디스크립터 (0) | 2024.10.07 |