C언어 오류처리 error ㆍerror 은 에 다음과 같이 정의되어 있다. extern int errno; 선행처리기 문자열 정의 설명 E2BIG 너무 긴 인수 목록 EACCESS 접근 거부 EAGAIN 재시도 EBADF 잘못된 파일 번호 EBUSY 이미 사용 중인 디바이스나 자원 ECHILD 자식 프로세스 없음 EDOM 함수 영역을 넘어선 수학 인수 EEXIST 이미 존재하는 파일 EFAULT 잘못된 주소 EFBIG 너무 큰 파일 EINTR 인터럽트가 걸린 시스템 호출 EINVAL 유효하지 않은 인수 EIO 입출력 오류 EISDIR 디렉터리임 EMFILE 열린 파일이 너무 많음 EMLINK 너무 많은 링크 ENFILE 파일 테이블 넘침 ENODEV 그런 디바이스 없음 ENOENT 그런 파일이나 디렉터리..
; C 언어 Dos에서의 메시지 박스 🔔 예) 도스에서의 메시지 박스 사용 #include #include #pragma comment (lib,"user32.lib") HANDLE hFile; char buff[1023]; int iret; int main() { hFile = CreateFile("a.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(INVALID_HANDLE_VALUE != hFile) { ReadFile(hFile, buff, 1023, &iret, NULL); buff[iret]; printf("안녕 난 printf야\n"); MessageBox(NULL, buff,"File read",MB_..
C언어 조건부 컴파일 지시자는 #if, #else, #elif, #endif가 있다. #if 조건 수식 명령문1 #else 명령문2 #endif 조건수식이 참일 경우 명령문1 이 컴파일되고, 거짓일 경우에는 명령문2가 컴파일된다. 작성중 오류를 검사하기 위한 출력코드를 프로그램에 삽입하였다가 프로그램 검사가 끝난 경우 출력문을 주우는 것을 조건부 컴파일을이용하면 다음과 같이 작성할 수 있다. #define DEBUG 1 void main() { #if DEBUG == 1 printf("program start\n); #endif ..... } 위와 같은 형식은 선택적 컴파일 또는 조건부 컴파일이라 한다. 조건부 컴파일로 또 다른 지시자는 #ifdef, #ifndef, #endif로 매크로의 존재여부에 따..
C언어 Chapter 33. 파일 입/출력 복습 🔔 예) 학생의 레코드를 키보드로부터 입력받아 write()함수를 이용하여 구조체 단위로 파일에 기록하고, 다시 열어서 read()함수로 읽어서 화면에 출력하는 프로그램. [구조체 STUDENT] [main 함수] 실행 결과 리다이렉션 📌 리다이렉션(redirection)이란 표준 입력 장치인 키보드나 표준 출력 장치인 스크린을 대상으로 작성된 프로그램에서 키보드나 스크린을 대신 입력이나 출력을 다른 파일로 바꾸어 주는 것을 말한다. bzero() 함수 와 memset() void bzero(void *s, size_t n); 메모리를 0으로 채운다. void *memset(void *s, int c, size_t n); 메모리를 상수 바이트(constan..
C언어 Chapter 32. 임의 접근 지금까지의 파일의 입출력은 파일의 처음부터 끝까지 순차적으로 읽거나 쓰는 것이었다. fseek()함수를 이용하면 파일 내의 임의의 위치에 바로 접근할 수 있다. 📌 fseek() 함수의 원형 int fseek(FILE *fp, long offset, int origin); origin 부터 offset 만큼 떨어진 부분을 찾는다. origin 는 기준점 이다. [origin 의 값] 🔔 예) fseek(fp, 35L, SEEK_SET); 파일의 시작점에서 35바이트 떨어진 위치가 파일 내 현재의 위치도 설정 된다. 여기서부터 읽거나 쓸 수 있다. fseek() 함수는 성공이면 0을 반환한다. ftell() 함수는 현재파일 내의 읽기 점이나 쓰기 점을 반환한다. (파..
C언어 Chapter 31. gets() 함수의 man page 설명 📌 gets 함수의 정의 형태 🔔 예) while 문의 올바른 사용 🎯 프로그램 수정 위와 같은 while 문은 한눈에 분석하기 까다롭다. 아래와 같이 고쳐 쓸수있다. 한글자만 쓸 경우fputs 보다 fputc 로 대체할 수 있다. 형식화 입출력 int fscanf(FILE *stream, const char *format [, argument]...); int fprintf(FILE *stream, const char *format [, argument]...); fscanf() 함수는 오륙 발생하거나 파일의 끝에 도달하면, EOF 를 돌려준다. fprintf() 함수는 오류가 발생하면 음수값을 반환한다. 🔔 예) 키보드로부터 학생 ..
C언어 Chapter 30. 문자열 입출력 fgets() 함수와 fputs() 함수의 원형 char *fgets(char *str, int length, FILE *fp); // EOF를 만나면 NULL반환 int fputs(const char *str, FILE *fp); fgets() 함수의 호출 형식 char buffer[80] fgets(buffer, length, fp); fputs() 함수의 호출 형식 fputs(buffer, fp); 🔔 예) 문자열을 입력받아 파일에 기록한 후 파일의 내용을 화면에 출력하는 프로그램 🎯 프로그램 설명 while (fgets (string, 80, fp) != NULL) { printf("%s", string); } fgets() 함수는 EOF를 만나면 NUL..