보안 공부하는 꼬깔이

Coding/C +1

(1) fgets 

※ 역할

스트림에서 문자열을 받는역할을 하는 함수이며, 문자열을 받아 (num - 1) 개의 문자를 입력 받을 떄 까지나, 

개행 문자(\n) 또는 파일 끝에 도달할 때 까지 입력받아서 C형식의 문자열로 저장한다. 


※ 특징

- 파일 끝이나 개행 문자까지 읽음.

- 라인 끝(CR/LF)을 읽으면 개행 문자 '\n'으로 변환

- string 끝에 NULL 문자를 추가함


※ 함수의 구조 및 설명

char *fgets( char *string, int n, FILE *stream );

- string : 파일 데이터를 읽어서 저장할 버퍼의 포인터를 의미

- n : 읽을 최대 문자의 수 +1, 읽은 문자열의 끝에 NULL 추가

- stream : 개방된 FILE 구조체의 포인터

- return 값 : 읽은 string의 포인터, 더 읽을 파일이 없거나 에러 출력시 NULL 포인터


(2) atoi

※ 역할

- 문자열을 long 형 정수로 변환시켜주는 함수


※ 특징

- "+","-", 숫자가 아니면 변환이 이루어지지 않음

- 문자열이 공백 문자로만 이루어져 있어도 변환이 이루어지지 않음


※ 함수의 구조 및 설명

int atoi (const char* str);

- 파라미터 : 문자열

- return 값 : long 형 정수로 변환된 값 ("1000" 이라는 문자열을 파라미터로 전달하면 1000 의 long형 정수가 반환됨)


(3) fread

※ 역할

스트림에서 데이터 블록을 읽어옴


※ 특징

- 스트림에서 count 개의 원소를 가지는 배열을 읽음, 원소의 크기는 size 바이트이며 ptr이 가리키는 배열에 넣게됨

- 스트림의 위치 표시자는 읽어들인 바이트 수 만큼 증가


※ 함수의 구조 및 설명

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

- ptr : size * count 의 크기를 가지는 배열을 가리키는 포인터

- size : 읽어들일 원소의 크기로 단위는 바이트

- count : 읽어들일 원소들의 개수로 각 원소의 크기는 size 바이트

- stream 데이터를 입력받을 스트림의 FILE 객체를 가리키는 포인터

- return 값 : 지정한 원소의 개수 만큼 읽어 들였다면 읽어들인 원소의 개수가 size_t 형으로 반환됨