온라인 무료 공개 [C언어 표준 라이브러리 함수 가이드]
목차
- C언어 표준과 책의 기술 범위
- STDIO.H
- putchar 함수
- puts 함수
- printf 함수
- getchar 함수
- gets 함수
- scanf 함수
- gets_s 함수
- scanf_s 함수
- fopen 함수
- fclose 함수
- fputc 함수
- putc 함수
- fputs 함수
- fprintf 함수
- fgetc 함수
- getc 함수
- fgets 함수
- fscanf 함수
- fscanf_s 함수
- fopen_s 함수
- sprintf 함수
- sprintf_s 함수
- sscanf 함수
- sscanf_s 함수
- vprintf 함수
- fflush 함수
- fwrite 함수
- fread 함수
- ftell 함수
- fseek 함수
- ferror 함수
- feof 함수
- perror 함수
- clearerr 함수
- fgetpos 함수
- fsetpos 함수
- STRING.H
- strlen 함수
- strcpy 함수
- strcpy_s 함수
- strncpy 함수
- strncpy_s 함수
- strcmp 함수
- strncmp 함수
- strcat 함수
- strcat_s 함수
- strncat 함수
- strncat_s 함수
- strchr 함수
- strrchr 함수
- strstr 함수
- strtok 함수
- strtok_s 함수
- strerror 함수
- memcpy 함수
- memmove 함수
- memcmp 함수
- memcpy_s 함수
- memset 함수
- STDLIB.H
- atof 함수
- atoi 함수
- atol 함수
- atoll 함수
- strtod 함수
- strtof 함수
- strtold 함수
- strtol 함수
- strtoll 함수
- strtoul 함수
- strtoull 함수
- rand 함수
- srand 함수
- calloc 함수
- free 함수
- malloc 함수
- realloc 함수
- abort 함수
- atexit 함수
- exit 함수
- getenv 함수
- system 함수
- bsearch 함수
- qsort 함수
- abs 함수
- labs 함수
- llabs 함수
- div 함수
- ldiv 함수
- lldiv 함수
- mblen 함수
- mbtowc 함수
- wctomb 함수
- wctomb_s 함수
- mbstowcs 함수
- mbstowcs_s 함수
- wcstombs 함수
- wcstombs_s 함수
- TIME.H
- clock 함수
- difftime 함수
- mktime 함수
- time 함수
- asctime 함수
- asctime_s 함수
- ctime 함수
- ctime_s 함수
- gmtime 함수
- gmtime_s 함수
- localtime 함수
- localtime_s 함수
- strftime 함수
- MATH.H
- acos, acosf,acosl 함수
- asin, asinf, asinl 함수
- atan, atanf, atanl 함수
- atan2, atan2f, atan2l 함수
- cos, cosf, cosl 함수
- sin, sinf, sinl 함수
- tan, tanf, tanl 함수
- log1p, log1pf, log1pl 함수
- ldexp, ldexpf, ldexpl 함수
- log, logf, logl 함수
- modf, modff, modfl 함수
- frexp, frexpf, frexpl 함수
- hypot, hypotf, hypotl 함수
- pow, powf, powl 함수
- ceil, ceilf, ceill 함수
- floor, floorf, floorl 함수
- fmod, fmodf, fmodl 함수
- acosh, acoshf, acoshl 함수
- asinh, asinhf, asinhl 함수
- atanh, atanhf, atanhl 함수
- cosh, coshf, coshl 함수
- sinh, sinhf, sinhl 함수
- tanh, tanhl, tanhf 함수
- exp2, exp2f, exp2l 함수
- ilogb, ilogbf, ilogbl 함수
- log2, log2f, log2l 함수
- logb, logbf, logbl 함수
- scalbn, scalbf, scalbl 함수
- cbrt, cbrtf, cbrtl 함수
- erf, erff, erfl 함수
- erfc, erfcf, erfcl 함수
- lgamma, lgammaf, lgammal 함수
- tgamma, tgammaf, tgammal 함수
- nearbyint, nearbyintf, nearbyintl 함수
- lrint, lrintf, lrintl, llrint, llrintf, llrintl 함수
- round, roundf, roundl 함수
- lround, lroundf, lroundl, llround, llroundf, llroundl 함수
- trunc, truncf, truncl 함수
- remainder, remainderf, remainderl 함수
- remquo, remquof, remquol 함수
- copysign, copysignf, copysignl 함수
- nan, nanf, nanl 함수
- nextafter, nextafterf, nextafterl 함수
- nextword, nextwordf, nextwordl 함수
- fdim, fdimf, fdiml 함수
- fmax, fmaxf, fmaxl 함수
- fmin, fminf, fminl 함수
- fma, fmaf, fmal 함수
- 실수 판별식 매크로
- ASSERT.H
- CTYPE.H
- isalnum 함수
- isalpha 함수
- isblank 함수
- iscntrl 함수
- isdigit 함수
- isgraph 함수
- islower 함수
- isprint 함수
- ispunct 함수
- isspace 함수
- isupper 함수
- isxdigit 함수
- tolower, toupper 함수
책 소개
C언어는 1972년 벨 연구소의 데니스 리치가 B를 기반으로 만든 언어입니다. 1983년 미국 국가 표준 협회인 ANSI에서 ANSI X3.159-1989 표준을 지정한 것이 C언어 표준의 시작입니다. 1999년 C99 표준으로 잘 알려진 ISO/IEC 9899:1999를 출간하고 2005년에는 ANSI에서도 C99를 표준으로 채택합니다. 그리고 2011년에 C11 표준인 ISO/IEC 9989:2011을 출간합니다.
ANSI X3.159-1989 표준에서는 미국 국가 표준 협회에서 최초로 지정하였고 변수 이름과 함수 이름 등을 영어 알파벳과 언더 바, 숫자만 사용할 수 있습니다. char 형식도 다양한 기호와 숫자 문자, 영어 알파벳은 표현할 수 있지만 한글이나 한자 등을 표현하려면 문자열을 빌려서 표현해야 하는 한계를 갖고 있었죠. 또한 함수의 반환 형식을 명시하지 않아도 오류를 발생하지 않아 많은 부분에서 논리적 버그의 책임은 개발자의 몫이었습니다.
ISO 국제 표준 기구에서 제시한 C99에서는 다양한 국가의 언어를 수용하기 위해 wchar_t 형식을 추가하였고 함수의 반환 형식을 명확하게 명시하도록 제안했습니다. 하지만 여전히 문자열 복사나 문자열 입력 등의 다양한 함수에서 개발자가 선언한 버퍼의 크기를 표준 라이브러리 함수에서 전달받지 않아 버퍼 오버 플로우 문제점이 남아있었죠.
C11 표준에서는 다양한 버퍼 오버 플로우 문제가 있는 함수들을 버퍼의 크기를 입력 인자로 전달하게 수정하였습니다. 그리고 표준 라이브러리 내부에서 동적으로 개체를 만들어 포인터를 반환하는 함수를 포인터의 주소를 입력 인자로 전달받고 내부적으로 문제가 있을 때 에러 형식 값을 반환하게 수정하였습니다. 또한 asctime처럼 함수 내부에서 수행한 결과가 있는 메모리 주소를 반환하는 함수 중에 언제나 같은 주소를 반환하여 두 번 이상 호출했을 때 마지막 호출한 결과만 확인할 수 있었던 함수들도 포인터의 주소를 입력 인자로 전달하며 표준 라이브러리 함수 내부에서 값을 설정하고 문제가 있을 때 에러 형식 값을 전달하게 수정하였습니다.
이 책에서는 C99와 C11 표준을 포함하여 다양한 표준 라이브러리 함수들의 사용법을 소개할 것입니다. 이 책은 단순한 문법을 전달하기 보다는 표준 라이브러리 함수가 어떠한 역할을 하고 어떻게 사용하는지에 초점을 맞출 것입니다. 이를 통해 보다 효과적으로 C언어로 프로그래밍할 수 있기를 기대합니다.
'개인 취미 > 블로그 이야기' 카테고리의 다른 글
온라인 무료 공개 [디딤돌 C언어] (0) | 2016.06.13 |
---|---|
C언어 형식[ehpub.co.kr 캐스팅] (0) | 2016.06.11 |
C언어 소개 [ehpub.co.kr 캐스팅] (0) | 2016.06.10 |
새로운 출발, 언제나 휴일 프로그래머 ehpub.co.kr (0) | 2016.06.08 |
SEO보다 중요한 것은 고품질 사이트 만들기 (2) | 2016.05.15 |
네이버 검색 엔진에 티스토리 블로그 등록하기, SEO 사이트 만들기 (0) | 2016.05.10 |
구글 검색 엔진에 티스토리 블로그 등록하기 - SEO 사이트 만들기 (0) | 2016.05.09 |
티스토리 사이트 맵 만들기 및 2차 도메인 설정 - SEO 사이트 만들기 (2) | 2016.05.09 |
전문 블로거의 길을 가다. 1. 2016년 4월 (2) | 2016.05.01 |
프로그래밍에 관한 검색할 때 팁 (0) | 2016.04.30 |