※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. ○ fseek : fseek 함수는 fopen으로 호출된 파일에서의 현재 위치를 이동시킬 수 있는 함수다. 인자로는 3개가 들어간다. 첫 번째로는 파일포인터, 두 번째로는 이동할 거리, 세 번째는 어떻게 이동할지 방식이 들어간다. 여기서 어떻게 이동할지를 정하는 방식에는 3가지가 있는데 1. SEEK_SET(0) : 파일의 처음 위치를 기준으로 이동한다. 2. SEEK_CUR(1) : 현재 파일의 위치를 기준으로 이동한다. 3. SEEK_END(2) : 파일의 마지막 위치를 기준으로 이동한다. 우선 임의의 텍스트 파일이 다음과 같이 있다. 그리고 다음과 같이 소스파일을 작성해서 값이 어떻게 출력되는지 ..
※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. 파일 위치 지시자는 FILE 구조체가 명시된 stdio.h 안의 struct _iobuf의 _cnt 변수를 일컫는다. 이 변수에는 읽어온 파일 커서의 현재 위치를 가리킨다. (stdio.h 에서 FILE 구조체를 확인해본 모습) 파일 입출력과 관련된 함수들을 사용하면서 우리가 따로 현재 위치를 변경해 주지 않아도 스스로 현재 위치가 변경되는 것은 파일 포인터를 사용하는 함수를 사용함과 동시에 이 FILE 구조체 내의 _cnt 변수의 값이 같이 변하기에 가능한 것이다. 만약 다음과 같은 파일이 있고 우리가 ‘0’, ‘1’, ‘2’, ‘3’의 값을 어떤 함수를 통해 사용했을 때 _cnt의 값이 4로 변하면..
※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. struct member alignment를 한글로 직역하면 구조체 멤버 정렬 정도가 된다. 이 정렬은 프로세서의 성능저하를 방지하기 위함이며, 구조체 멤버를 사용할 시 메모리상의 특정 배수 값에 위치한 메모리에 둠으로써 효율적으로 메모리를 읽겠다는 소리인데, 대신에 구조체 내에서 변수선언 순서에 따라 같은 자료형의 구조체라도 전체 크기가 달라질 수도 있단 소리다. 다음 코드를 보자 struct member { int a; char b; int c; double d; } 구조체 멤버 정렬에 의하면 가장 크기가 큰 자료형의 배수로써 메모리 크기가 구분된다. 이를 실행시키면 가 된다. 좀 더 가독성을 높이..