C

·C
목차 SHA256이란? 이전 빌드 환경 구성 포스팅 C Openssl SHA256 컨텍스트 생성 예제 C Openssl SHA256 해시 예제 C Openssl 문자열 입력받아 실시간 SHA256 해시 예제 C Openssl 파일 SHA256 해시 예제 MD5, SHA1, SHA256 차이점 1. SHA256이란? SHA256(Secure Hash Algorithm 256-bit)은 데이터 무결성을 확인하기 위해 사용되는 해시 함수로, 임의의 길이의 데이터를 입력받아 256비트의 고정된 길이 해시 값을 출력하는 알고리즘입니다. 데이터의 무결성을 보장하는 데에 주로 사용됩니다. 2. 이전 빌드 환경 구성 포스팅 이전에 OpenSSL 라이브러리를 정적 또는 동적으로 빌드하는 방법과 개발 환경을 구성하는 방법..
·C
목차 rand 함수란? rand 함수 원형과 인자 및 반환 값 설명 rand을 사용하여 랜덤 값 생성하는 예제 rand 일정한 범위 안에서 랜덤 값 생성 예제 rand 사용시 주의점 1. rand 함수란? rand 함수는 C언어에서 무작위로 랜덤한 정수 값을 생성하는 함수입니다. 이 함수를 사용하면 프로그램은 실행할 때마다 다른 랜덤 값을 얻을 수 있습니다. rand 함수는 난수 생성기를 사용하여 값을 생성하는데, 이 난수 생성기는 seed 값을 기반으로 무작위 값을 생성합니다. 2. rand 함수 원형과 인자 및 반환 값 설명 rand 함수의 원형과 인자, 반환 값에 대해 설명합니다. int rand(void); 인자: rand 함수는 인자를 가지지 않습니다. 반환 값: rand 함수는 0에서 RAND..
·C
목차 strptime 함수란? strptime 함수 원형과 인자 및 반환 값 설명 strptime을 사용하여 날짜 및 시간 문자열을 시간으로 변환하는 예제 strptime 다른 시간 형식 문자열 파싱 예제 - 1 strptime 다른 시간 형식 문자열 파싱 예제 - 2 strptime 사용시 주의점 1. strptime 함수란? strptime 함수는 C언어에서 주어진 날짜와 시간 형식의 문자열을 struct tm 구조체로 변환하는 함수입니다. 이는 strftime 함수의 반대 기능을 수행합니다. strptime 함수를 사용하면 문자열을 구문 분석하여 날짜와 시간 정보를 추출하고, 이를 struct tm 구조체로 저장할 수 있습니다. 2. strptime 함수 원형과 인자 및 반환 값 설명 strptim..
·C
목차 strftime 함수란? strftime 함수 원형과 인자 및 반환 값 설명 strftime을 사용하여 오늘 날짜 및 시간을 문자열로 변환하는 예제 strftime 특정 시간 값을 포맷 출력하기 예제 strftime 새로운 파일에 생성 날짜 이름 추가하기 예제 strftime 사용시 주의점 1. strftime 함수란? strftime 함수는 C언어에서 struct tm 구조체에 저장된 날짜와 시간 정보를 원하는 형식의 문자열로 변환하는 함수입니다. 변환된 문자열은 지정된 형식에 따라 년, 월, 일, 시, 분, 초 등의 정보를 포함할 수 있습니다. 2. strftime 함수 원형과 인자 및 반환 값 설명 strftime 함수의 원형과 인자, 반환 값에 대해 설명합니다. size_t strftime(..
·C
목차 localtime 함수란? localtime 함수 원형과 인자 및 반환 값 설명 localtime을 사용하여 내가 있는 지역의 시간 구하기 예제 localtime 활용 예제 2 localtime 사용시 주의점 1. localtime 함수란? localtime 함수는 C언어에서 time_t 형식의 시간 값을 내가 있는 지역의 시간으로 변환하는 함수입니다. 변환된 시간 정보는 struct tm 구조체에 저장되며, 년, 월, 일, 시, 분, 초, 요일 등의 정보를 확인할 수 있습니다. 2. localtime 함수 원형과 인자 및 반환 값 설명 localtime 함수의 원형과 인자, 반환 값에 대해 설명합니다. struct tm* localtime(const time_t* timeptr); timeptr:..
·C
목차 asctime 함수란? asctime 함수 원형과 인자 및 반환 값 설명 asctime을 사용하여 현재 시간의 문자열 구하기 예제 asctime 활용 예제 2 asctime 사용시 주의점 1. asctime 함수란? asctime 함수는 C언어에서 현재 시간을 구하고 이를 문자열 형태로 변환하는 함수입니다. 변환된 문자열은 정해진 형식에 따라 표시되며, 시간 정보를 읽기 쉬운 형태로 제공합니다. 2. asctime 함수 원형과 인자 및 반환 값 설명 asctime 함수의 원형과 인자, 반환 값에 대해 설명합니다. char* asctime(const struct tm* timeptr); timeptr: struct tm 구조체 형태의 시간 정보를 가리키는 포인터입니다. 일반적으로 localtime 함..
·C
목차 time 함수란? time 함수 원형과 인자 및 반환 값 설명 time을 사용하여 현재 시간 구하기 예제 time 시, 분, 초 단위로 구하여 출력하기 예제 time 사용시 주의점 1. time 함수란? time 함수는 C언어에서 현재 시간을 구하는 함수입니다. 이 함수는 시간 정보를 정수 값으로 반환하며, 1970년 1월 1일 자정 이후로 경과한 초를 나타냅니다. 2. time 함수 원형과 인자 및 반환 값 설명 time 함수의 원형과 인자, 반환 값에 대해 설명합니다. time_t time(time_t* tloc); tloc: (선택적) time_t 타입의 포인터입니다. 함수가 성공적으로 현재 시간을 얻으면 해당 포인터에 현재 시간을 저장합니다. 이 인자를 NULL로 전달할 경우, 현재 시간을 ..
·C
목차 strlen 함수란? strlen 함수 원형과 인자 및 반환 값 설명 strlen를 사용하여 문자열의 총 길이 구하기 예제 strlen 활용 예제 2 strlen 사용시 주의점 1. strlen 함수란? strlen 함수는 C언어에서 문자열의 길이를 구하는 함수입니다. 문자열의 길이는 널 종료 문자('\0')를 제외한 문자의 개수를 세어 구합니다. 2. strlen 함수 원형과 인자 및 반환 값 설명 strlen 함수의 원형과 인자, 반환 값에 대해 설명합니다. size_t strlen(const char* str); str: 길이를 구하고자 하는 널 종료 문자열입니다. 반환 값: 문자열의 길이를 나타내는 size_t 형식의 값을 반환합니다. 3. strlen를 사용하여 문자열의 총 길이 구하기 예..
·C
목차 strstr 함수란? strstr 함수 원형과 인자 및 반환 값 설명 strstr를 사용하여 특정 문자열 찾기 예제 strstr 활용 예제 2 strstr 사용시 주의점 1. strstr 함수란? strstr 함수는 C언어에서 문자열에서 특정 부분 문자열(substring)을 찾아주는 함수입니다. 대상 문자열에서 찾고자 하는 부분 문자열이 첫 번째로 나타나는 위치의 포인터를 반환합니다. 2. strstr 함수 원형과 인자 및 반환 값 설명 strstr 함수의 원형과 인자, 반환 값에 대해 설명합니다. char* strstr(const char* haystack, const char* needle); haystack: 대상 문자열로부터 찾고자 하는 부분 문자열을 검색합니다. needle: 찾고자 하는..
·C
목차 strtok 함수란? strtok 함수 원형과 인자 및 반환 값 설명 strtok를 사용하여 문자열 나누기 예제 strtok 여러개의 토큰을 이용하여 문자열 나누기 예제 안전하게 strtok를 사용하는 방법 1. strtok 함수란? strtok 함수는 C언어에서 문자열을 특정 구분자를 기준으로 토큰(token) 단위로 나누는 함수입니다. 토큰은 연속된 문자열의 일부로, 구분자에 따라 문자열이 분리됩니다. 2. strtok 함수 원형과 인자 및 반환 값 설명 strtok 함수의 원형과 인자, 반환 값에 대해 설명합니다. char* strtok(char* str, const char* delim); str: 토큰을 나눌 대상이 되는 문자열. 첫 번째 호출 시에는 원본 문자열을 전달하고, 이후 호출 시..
·C
목차 strdup 함수란? strdup 함수 원형과 인자 및 반환 값 설명 strdup를 사용하여 문자열 복사 예제 strdup 사용 시 메모리 관리 주의 예제 안전하게 strdup를 사용하는 방법 1. strdup 함수란? strdup 함수는 C언어에서 문자열을 복사하는 함수로, 주어진 문자열을 새로운 메모리 공간에 복사합니다. 복사된 문자열은 동적으로 할당되며, 원본 문자열과 동일한 값을 갖습니다. 2. strdup 함수 원형과 인자 및 반환 값 설명 strdup 함수의 원형과 인자, 반환 값에 대해 설명합니다. char* strdup(const char* src); src: 복사하고자 하는 원본 문자열 반환 값: 새로운 메모리에 복사된 문자열의 포인터. 만약 메모리 할당에 실패하면 NULL을 반환합..
·C/응용
C언어에서 fputs 함수는 문자열을 파일에 쓰는 데 사용되는 함수입니다. 우리가 이전 포스팅에서 확인한 fprintf도 파일에 데이터를 쓰는 함수이지만 fputs도 동일합니다. 2023.07.20 - [C/stdio] - [C언어/C++] fprintf 함수를 활용한 파일 쓰기 [C언어/C++] fprintf 함수를 활용한 파일 쓰기 C언어에서 fprintf 함수는 파일에 데이터를 출력하는 데 사용되는 중요한 함수입니다. 오늘은 이 함수를 이용한 예제를 확인해 보도록 하겠습니다. 우선 fprintf 함수 원형을 살펴보겠습니다. fprintf salguworld.tistory.com 함수의 맨 앞 f 알파벳이 붙는 이유는 file을 핸들링하는 함수이기 때문입니다. 자 그러면 fputs 함수원형부터 확인해..
·C/stdio
C언어에서 fprintf 함수는 파일에 데이터를 출력하는 데 사용되는 중요한 함수입니다. 오늘은 이 함수를 이용한 예제를 확인해 보도록 하겠습니다. 우선 fprintf 함수 원형을 살펴보겠습니다. fprintf 함수원형 fprintf 함수의 함수 원형과 각 인자에 대한 설명은 다음과 같습니다 int fprintf(FILE *stream, const char *format, ...); 각 인자들은 아래와 같습니다. 함수인자 stream: 파일 포인터로, 데이터를 쓸 파일을 가리키는 FILE 구조체에 대한 포인터 format: 형식 지정자를 포함한 문자열로, 출력할 데이터의 서식 ...: 가변 인자 (variadic arguments)로, format 문자열에서 사용된 형식 지정자에 해당하는 값 파일에 문자..
·C/응용
strcpy 프로그램을 개발하다 보면 배열의 문자열들을 다른 배열에 복사해야 할 때가 있습니다. 이럴 때 우리는 string.h 에 있는 유틸리티 함수들을 많이 사용하게 됩니다. C 언어에서는 strcpy 라는 함수를 통해 문자열 복사를 지원합니다. 이 함수는 소스 문자열을 대상 문자열에 복사하여 문자열을 복제합니다. strcpy 함수를 사용하면 문자열을 효율적으로 복사하고 조작할 수 있습니다. strcpy 함수 원형은? strcpy 함수는 헤더 파일에 선언되어 있으며, 다음과 같은 원형을 갖습니다. char *strcpy(char *dest, const char *src); strcpy 인자는? strcpy 함수는 아래와 같은 총두 개의 인자를 받습니다. 각 인자에 대해 알아보도록 하겠습니다. dest..
·C/stdio
이전에 배운 memcpy 함수는 한 메모리 공간의 값을 다른 공간으로 복사하는 역할을 하였습니다. 오늘은 복사가 아닌 한쪽 공간의 값을 그대로 다른 공간으로 이동시키는 방법에 대해 알아보겠습니다. 이러한 API 명은 바로 memmove입니다. 이름에서 바로 알 수 있듯이 memory + move의 약자입니다. 이 memmove 함수는 memcpy와 비슷한 역할을 함으로써 메모리 공간을 관리해 줍니다. memmove 함수 원형은? memmove 함수는 헤더 파일에 선언되어 있으며, 다음과 같은 원형을 갖습니다 void *memmove(void *dest, const void *src, size_t n); memmove 인자는? memmove 함수는 아래와 같은 인자들을 받습니다. 각 인자에 대해 알아보도록..
·C/stdio
우리가 흔히 C언어로 코딩을 하다 보면 원래 있던 메모리 공간의 값을 다른 공간으로 복사해야 할 때가 있습니다. 이런 문제를 해결해주는 함수가 바로 mempcy입니다. memory + copy의 약자입니다. 이 함수는 내가 복사하려는 대상의 공간을 새로운 공간에 원하는 크기만큼 복사해 줍니다. 즉, 포인터를 알고 memcpy를 알고 있다면 연속된 값들의 집합 변수인 배열, 구조체 등의 메모리를 조금 더 의미 있고 효율적으로 사용할 수 있습니다. memcpy 함수 원형은? memcpy 함수는 헤더 파일에 선언되어 있으며, 함수 원형은 아래와 같습니다. void *memcpy(void *dest, const void *src, size_t n); memcpy 인자는? memcpy 함수는 총 세 개의 인자를 ..
·C/stdio
C언어 memset 메모리 초기화 API memset함수는 전달하는 메모리 공간을 인자로 전달한 특정 값으로 저장하여 일괄 초기화하는 함수입니다. 특정한 메모리 공간을 지정한 값으로 저장 및 채우며 우리가 프로그래밍하다 변수나 배열이 필요한데, 이런 상황에서 초기화도 필요하다면 이때 memset을 사용합니다. memset 함수 원형 memset 함수는 헤더 파일에 선언되어 있으며 원형은 아래와 같습니다. void *memset(void *ptr, int value, size_t num); memset 인자는? memset 함수는 아래와 같은 세 개의 인자를 가집니다. ptr: 초기화할 메모리 영역의 시작 주소를 가리키는 포인터입니다. value: 설정할 값으로, 보통 0이나 1과 같은 값이 주로 사용됩니..
·C/응용
strcmp 오늘은 C언어에서 두 개의 문자열이 같은 문자열인지 비교하는 함수인 strcmp에 대해 알아보도록 하겠습니다. 이 함수는 두 개의 문자열이 같은지 다른지 비교하기 위해서 문자열 길이도 확인합니다. 왼쪽 오른쪽 문자열이 있다면 왼쪽 문자열 길이는 7인데 오른쪽 문자열의 길이가 5라면 이미 다르다는 게 판명되겠죠? 이러한 원리로 문자열이 같은지 검사하는 함수입니다. 간단하면서도 재미있는 strcmp에 대해 알아보겠습니다. strcmp 함수 원형은? strcmp 함수는 헤더 파일에 선언되어 있으며, 다음과 같은 원형을 갖습니다 int strcmp(const char *s1, const char *s2); strcmp 인자는? strcmp 함수는 두 개의 인자를 가집니다. s1: 비교할 첫 번째 문..
·C/응용
프로그래밍에서 스레드란? 프로세스는 1개의 메인 스레드로 구성되어 코드가 실행되는 주체입니다. 하나의 프로세스에서 독립적으로 2개 이상의 코드를 병렬 처리하기 위해서 우리는 스레드를 사용합니다. 즉, 스레드는 독립적인 실행을 수행하며 하나의 프로세스 안에서 여러 개의 스레드를 동시에 실행할 수 있습니다. 우리는 이러한 처리를 병렬처리라고 합니다. 개별 스레드는 자신만의 스텍 메모리 영역을 가지고 관리하며 1개의 부모 프로세스 내에서 자원을 서로 공유할 수 있습니다. 여기서 자원이라 함은 곧 변수를 의미하기도 합니다. 한 개의 일만 처리하는게 아닌 동시에 여러 개의 일을 처리할 수 있으므로 우리 프로그램의 작업 성능을 향상합니다. C언어에서 pthread란? C 언어에서 pthread는 POSIX 스레드를..
·C/응용
strcat 오늘은 C언어의 strcat 함수에 대해 알아보도록 하겠습니다. strcat함수는 하나의 문자열 뒤에 새로운 문자열을 이어 붙이는 함수입니다. 이 함수는 붙이고싶은 문자열을 붙이고 싶은 대상에 합칩니다. 결국 memcpy, strncpy와 비슷한 기능을 하게 됩니다. 하지만 모든게 동일하다면 함수가 괜히 나눠져 있을 필요는 없겠죠? 차이점도 천천히 알아보도록 하겠습니다. strcat 함수 원형은? strcat 함수는 헤더 파일에 선언되어 있으며, 다음과 같은 원형을 갖습니다 char *strcat(char *dest, const char *src); strcat 인자는? strcat 함수는 두 개의 인자를 가집니다. dest: 문자열이 추가될 대상 문자열의 시작 주소를 가리키는 포인터 src..
·C/응용
C언어에서 함수 포인터란? 포인터 변수에서 더 나아가 값을 저장할 수 있는 일반 변수에 함수를 가리키는 함수 주소값을 저장하면 이 변수가 곧 함수 포인터가 됩니다. 그리고 이 주소를 참조하여 변수에 저장된 함수를 호출할 수 있습니다. 즉, 동적으로 프로그램이 실행되는 과정에서 중간 중간 변수가 가리키는 함수의 주소를 바꾸면 호출할 함수도 바꿀 수 있다는 의미입니다. 이런 프로그래밍은 함수의 인자를 동적으로 변경시킬 수 있어 프로그램의 흐름을 효율적이고 유연하게 관리할 수 있도록 합니다. 함수 포인터 변수 선언 예제 함수 포인터 변수를 선언하는 방법은 저장하려는 함수의 원형과 동일한 타입으로 선언해야 합니다. 예를 들어, 반환 타입이 int형이고 함수가 받는 인자의 타입이 char 타입 한개를 받는 함수라..
·C/응용
strncpy 자 오늘은 문자열의 일부분만 떼내어 다른 문자열 버퍼에 복사하는 strncpy에 대해 알아보도록 하겠습니다. 일부분을 뗀다는 말은 무슨 말일까요? 우리가 이전에 배웠던 strcpy는 문자열 끝 0이 나올 때까지 전체 문자열을 복사하는 함수였습니다. 그런데 오늘은 한 문자열이 있다면 이중 3글자만 떼내어 복사하는 함수에 대해 알아봅니다. strncpy는 글자를 복사한 후 결과물의 마지막에 0을 추가하여 정상적인 문자열을 만들어줍니다. 이제 strncpy 함수원형을 알아보겠습니다. strncpy 함수 원형은? strncpy 함수는 헤더 파일에 선언되어 있으며, 다음과 같은 원형을 갖습니다 char *strncpy(char *dest, const char *src, size_t n); strnc..
·C/응용
C언어의 BSD 소켓이란? BSD 소켓은 Berkeley Software Distribution에서 개발된 네트워크 프로그래밍 인터페이스입니다. BSD 소켓은 TCP/IP 프로토콜을 기반으로 하며, 소켓이라는 추상적인 개념을 통해 네트워크 통신을 수행할 수 있습니다. BSD 소켓은 다양한 운영체제에서 지원되며, C언어에서는 헤더 파일을 포함하여 사용할 수 있습니다. 서버 소켓 생성 예제 서버 소켓을 생성하려면 socket() 함수를 사용합니다. socket() 함수는 세 개의 인자를 받으며, 각각 소켓의 도메인, 타입, 프로토콜을 지정합니다. Socket 인자 도메인 주소 체계를 의미하며, 일반적으로 AF_INET (IPv4) 또는 AF_INET6 (IPv6)를 사용합니다. 타입 전송 방식을 의미하며, ..
·C/응용
C 관련 포스팅 목록 2021.12.07 - [C/응용] - C/C++ 함수 포인터 변수 활용 예제 - 2(구조체 함수 포인터) 2021.12.06 - [C/응용] - C/C++ 함수 포인터 변수 활용 예제 - 1 2021.12.19 - [C/stdio] - C 파일 오프셋 위치 이동 예제 - 2(stdio/fseek/SEEK_END) 2021.12.18 - [C/stdio] - C 파일 오프셋 위치 이동 예제 - 1(stdio/fseek/SEEK_SET) 2021.12.05 - [C/stdio] - C 파일 실시간 쓰기 예제(stdio/fflush) JAVA 인스턴스처럼 C에서 객체 생성을 따라 하기 안녕하세요. 오늘은 이전 포스팅에서 다뤘던 함수 포인터 활용 예제의 심화 학습으로 마무리 포스팅을 써보..
·C/stdio
C 관련 포스팅 목록 2021.12.18 - [C/stdio] - C 파일 오프셋 위치 이동 예제 - 1(stdio/fseek/SEEK_SET) 2021.12.05 - [C/stdio] - C 파일 실시간 쓰기 예제(stdio/fflush) 2021.12.01 - [C/stdio] - C 파일 생성 및 스트림 열기 예제(stdio/fopen) 2021.11.30 - [C/stdio] - C 파일 스트림 닫기(stdio/fclose) 2020.07.03 - [C/stdio] - C/C++ printf 포맷 API 사용 예제(출력) - 1 fseek함수에 SEEK_END를 사용하여 파일의 마지막부터 읽기 안녕하세요. 오늘은 이전 fseek 포스팅에서 다루지 못했던 SEEK_END 매크로 값을 사용하여 파일의..