본문 바로가기

컴퓨터/C

C 문자열 변수와 문자열 상수 1 char str1[5] = "abcd"; 2 char *str2 = "ABCD"; 1: 요소가 char형인 str1이라는 이름의 배열을 선언하고, 대입 연산자 오른쪽에 선언된 문자열을 저장하고 있다. 따라서 배열 st1이 저장하고 있는 문자열은 변수가 된다. 문자열 전체를 저장하고 있는 것이다. 2: 대입 연산자의 왼쪽에 char형 포인터를 선언하고, 오른쪽에는 "ABCD"를 가리키겠다는 의미가 된다. 따라서 str2는 문자열의 첫 문자 'A'를 가리키게 된다. 포인터의 타입이 char*인 이유도 여기에 있다. 메모리상에 저자오디어 있는 문자열 상수 "ABCD"를 단순히 가리키고만 있다. 문자열 상수는 메모리 공간에 저장이 되면, 그 순간에 문자열 상수의 주소 값이 반환된다. #include int ..
C array 다차원 배열과 포인터 #include int main(void) { int arr[3][2] = { {1,2}, {3,4}, {5,6} }; printf("arr의 %%p: %p\n", arr); for(int i=0; i
C system() I. syntax #include int system(const char* string); 코드 안에서 시스템 명령어를 실행시킨다. II. return 성공시 0이 아닌 값, 실패시 0 III. parameters const char* string: 시스템 명령어
C buffer 버퍼 I. 버퍼란? 여분의 임시 메모리 공간이다. 표준 입·출력 함수를 사용하는 경우에 버퍼를 제공 받는다. II. 버퍼의 위치 III. 버퍼링(buffering)을 하는 이유 데이터를 키보드로부터 입력을 받거나 모니터로 출력하는 표준 입·출력 작업은 다른 작업에 비해 중요도가 떨어짐에도 의외로 시간이 많이 걸린다. 그래서 급한 작업을 우선으로 처리하고 입·출력 작업은 어느 정도 쌓아 두었다가 처리하는데 이 때 버퍼링 작업이 필요하다. IV. 버퍼 비우기 fflush 함수 1. syntax #include int fflush(FILE* stream); 지정한 스트림의 버퍼를 비운다. stdin 스트림의 버퍼를 비우면 버퍼안의 데이터들이 모두 버려진다. stdout 스트림의 버퍼를 비우면 데이터들이 목적지를 향..
C HTTP Request, Response 요청, 응답 메시지 I. Request Message 요청 메시지 요청 라인 GET /index.html HTTP/1.1 메시지 헤더 User-Agent: Mozilla/5.0 Accept: image/gif, image/jpeg ... 공백라인 메시지 몸체 메시지 몸체는 POST 방식으로 요청 시에만 삽입된다. II. Response Message 응답 메시지 상태 라인 HTTP/1.1 200 OK 메시지 헤더 Server: SimpleWebServer Content-type: text/html Content-length: 2048 ... 공백 라인 메시지 몸체 ... ...