버퍼(buffer)란?
·
프로그래밍/C
버퍼(buffer)데이터를 잠시 담아두는 임시 저장 공간이다. 파일을 열어 해당 파일에 쓰기/읽기 등의 작업을 할 때, 수정 코드 실행을 위해매번 파일에 접근했다가 다시 코드로 돌아왔다가 반복하면 효율과 속도가 떨어짐.코드 실행 → 파일 접근 → 코드로 복귀 → 다시 파일 접근 → 반복...해당 과정 때문에 성능이 크게 저하된다.그래서 C에서는 "버퍼링(buffering)" 기법을 사용한다.버퍼링(Buffering)코드 요청 데이터를 일단 RAM의 버퍼에 모아두고, 일정량 쌓이면 한 번에 파일로 보내는 방식. 버퍼링 쓰기 예시예를 들어, 코드가 아래와 같을 때, 실제 파일에는 바로 기록되지 않는다.fprint(file, "Hello"); - 버퍼 → "Hello" 저장- fclose() 또는 fflus..
회식 자리에서 기분 나쁜 말을 들었다
·
배움 기록
어젯밤, 아르바이트를 마치고 회식을 했습니다.여느 때와 같은 회식이었지만, 대학교 동기이자 알바 동료이며 동거인이기도 한 H씨가 던진 농담에 기분이 굉장히 나빴습니다.필자가 내일 오전에 C랑 공모전 회의가 있다하자,그는 “아~ 그 여자애 남자친구 없다고 또 ㅋㅋ” 라 한 것인데요.평소 가까이 지내는 형이지만, 여자친구가 있는 제게 공적인 자리에서 그런 지나친 장난은 매우 불쾌하게 느껴지더군요.그의 장난은 단순한 농담이 아니었습니다. 저를 한순간에 불건전한 이들에 결속시키는 말이었기 때문입니다.특히 그 자리에 있는 이 중 한 명은 자녀가 두 명 있는 유부남임에도 평소 유흥(성매매)를 즐기는 이었기에, 저는 마치 그 사람과 저를 동일시하는 것 같이 느껴졌습니다. (그런 의도로 말한 것이 아님에도)회식 자리에..
구조체(structure)란?
·
프로그래밍/C
배열배열이 같은 타입 데이터의 집합이라면,구조체는 다른 타입의 데이터의 집합이라 볼 수 있다. 연관된 정보들을 한데 모아 저장할 순 없을까? 자연스레 이러한 질문이 나오기 마련이다.배열에서 여러 값들을 모아 저장하듯 저장되면 사용이 용이할테니 말이다.가령 어떤 한 사람에 대한 정보를 변수에 넣을 때, 해당 정보들을 한 데 모아 관리하면 얼마나 편하겠는가!구조체 선언핵심 삼인방구조체 선언에는 세가지의 중요한 것이 있다.구조체 명 / 구조체 내의 멤버 / 구조체 변수명문법의 형식은 아래와 같으며, 구조체는 struct 키워드를 사용하여 정의할 수 있다.struct 구조체명 { 각 멤버 선언;} 구조체 변수명;조금 어렵게 부연설명하자면, 구조체명과 구조체 변수명 중 하나는 생략될 수 있다. (구조체 변수명이..
포인터 배열이란?
·
프로그래밍/C
포인터 배열이란 무엇인가?특정 타입의 데이터(변수, 상수, 문자열 등)를 가리키는 주소들을 모아둔 배열 선언 방법char* arr[3]; arr[0]은 어떤 메모리를 가리키고 있다. (포인터)arr[1]도 어떤 메모리를 가리키고 있다. (포인터)arr[2]도 어떤 메모리를 가리키고 있다. (이것 또한 포인터)이 세개들의 배열이다.char* arr[3]은 메모리 3곳을 가리키고 있는 배열이다.포인터 배열 예제#include int main() { char *arr[3]; arr[0] = "hello"; arr[1] = "world"; arr[2] = "first article"; for (int i = 0; i %s\n", i, arr[i]); } return 0;}..