코딩 83

[C언어/C++] 스레드 이용하여 파일 복사 하기(3/3) - 저수준 파일 입출력 함수(open, write, read 등) 예제 + _beginthreadex 함수

스레드 이용하여 파일 복사 하기(3/3) - 저수준 파일 입출력 함수(open, write, read 등) 예제 + _beginthreadex 함수 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난번에는 Win32 API인 ① CopyFile 함수를 이용한 파일 복사, ② FILE 스트림 함수를 이용한 파일 복사에 대해 살펴보았습니다. 이번에는 파일 복사하기 마지막 세 번째로 스레드를 이용한 ③ 저수준 파일 입출력 함수를 이용한 파일 복사 예제를 포스팅합니다. 전체적인 유형은 파일 스트림(FILE 포인터) 함수를 이용한 예제와 유사합니다. 🔗 파일 복사 방법 종류 ① CopyFile 함수 이용 ② 파일스트림(FILE 구조체) 함수 이용 ③ 저수준 파일 입출력 함수 이용 🔗 저수준 파일 입출력 함수를..

[C언어/C++] 스레드 이용하여 파일 복사 하기(2/3) - FILE 스트림 함수(fopen, fwrite, fread 등) 예제 + _beginthreadex 함수

스레드 이용하여 파일 복사 하기(2/3) - FILE 스트림 함수(fopen, fwrite, fread 등) 예제 + _beginthreadex 함수 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난번에는 Win32 API인 ① CopyFile 함수를 이용한 파일 복사 방법에 대해 살펴보았습니다. 이번에는 파일 복사하기 두 번째로 스레드를 이용한 ② FILE 스트림 함수를 이용한 파일 복사 예제를 포스팅합니다. 🔗 파일 복사 방법 종류 ① CopyFile 함수 이용 ② 파일스트림(FILE 구조체) 함수 이용 ③ 저수준 파일 입출력 함수 이용 🔗 FILE 스트림 함수를 이용한 파일 복사 예제(Example): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ..

[C언어/C++] 스레드 이용하여 파일 복사 하기(1/3) - CopyFile 함수 + _beginthreadex 함수 예제

스레드 이용하여 파일 복사 하기(1/3) - CopyFile 함수 + _beginthreadex 함수 예제(CopyFile, _beginthreadex functions example) 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 윈도우 환경에서 파일을 복사하는 방법은 여러 가지가 있습니다. 대표적인 방법은 CopyFile API를 사용하는 방법, FILE 스트림 계열의 fopen, fwrite, fread 등의 함수를 이용하는 방법, 저수준 파일 입출력 함수인 open, read, write 등의 함수를 이용하는 방법이 있습니다. 🔗 파일 복사 방법 종류 ① CopyFile 함수 이용 ② 파일스트림(FILE 구조체) 함수 이용 ③ 저수준 파일 입출력 함수 이용 먼저 Windows에서 제공하는 Co..

[C언어/C++] Winsock 멀티스레드 1:N 대용량 파일 전송(송수신) 서버/클라이언트 구현하기(TCP/IP Windows socket) #3/3

[C언어/C++] Winsock 멀티스레드 1:N 대용량 파일 전송(송수신) 서버/클라이언트 구현하기(TCP/IP Windows socket) #3/3 - 서버 편 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난번 클라이언트 설명과 소스코드를 포스팅한데 이어 이번에는 1:N 파일 수신 서버 프로그램에 대한 설명과 소스코드입니다. 서버/클라이언트에 대한 전반적인 개념, 실행 절차, 주요 기능 등은 아래 링크를 참고하세요. ⓐ Winsock 멀티스레드 1:N 대용량 파일 전송 서버/클라이언트 구현하기 - 프로그램 주요 기능, 개념, 절차 ⓑ Winsock 멀티스레드 1:N 대용량 파일 전송 클라이언트 구현하기(클라이언트 소스코드) 서버는 N개의 클라이언트로부터 파일을 수신해야 하기 때문에 1개의 파일..

[C언어/C++] Winsock 멀티스레드 1:N 대용량 파일 전송(송수신) 서버/클라이언트 구현하기(TCP/IP Windows socket) #2/3

[C언어/C++] Winsock 멀티스레드 1:N 대용량 파일 전송(송/수신) 서버/클라이언트 구현하기(TCP/IP Windows socket) #2/3 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난번에는 서버, 클라이언트에 대해 구상한 프로그램 개념도, 통신 규약, 서버/클라이언트 통신 절차에 대해 포스팅하였습니다. 이번에는 구상한 내용을 토대로 구현한 클라이언트 프로그램에 대한 설명과 소스코드를 포스팅합니다. 클라이언트는 전송하고자 하는 파일의 파일 크기와 데이터를 읽은 뒤 "파일명&파일 데이터" 형태로 패킷 데이터를 우선 구성합니다. 그런 다음 소켓을 초기하고 서버에 연결한 후 패킷 헤더(PACKET_HEADER)를 구성하여 서버에 패킷 헤더 5바이트를 먼저 전송합니다. typedef st..

[C/C++] 라이브러리 함수(isalnum, isalpha, isupper, islower, isdigit, isspace)를 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환(toupper, tolower)하기

[C/C++] 라이브러리 함수(isalnum, isalpha, isupper, islower, isdigit, isspace)를 이용하여 문자열 내 알파벳, 숫자, 영어 대소문자, 공백 식별하기 + 대소문자 변환(toupper, tolower)하기 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난 번에는 별도의 C/C++ 라이브러리를 사용하지 않고 ASCII 코드 테이블만을 이용하여 사용자가 입력한 문자열 내에서 알파벳 대소문자, 공백, 숫자 등을 식별하여 분류하였습니다. ※ 참고: [C/C++] ASCII 값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기 지난 번 자료에서 조금 더 고민해 보면 m_isdigit(), m_isalpha(), m_isaln..

[C/C++] ASCII 코드값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기

[C/C++] ASCII 값을 이용하여 문자열 내 알파벳, 대소문자, 공백, 숫자 식별(분류)하기 + 대소문자 변환하기 안녕하세요 JollyTree입니다 (•̀ᴗ•́)و C/C++에서 char 자료형의 문자 변수는 0에서 127 사이의 정수 값을 저장할 수 있습니다. 이는 미국 ANSI(American Standard Code for Information Interchange)에서 표준화한 정보교환용 7비트 부호체계인 ASCII 코드에 해당되며 영문 키보드로 입력할 수있는 모든 기호들이 할당되어 있어 있습니다. ※ ASCII 코드에 대한 자세한 설명은 위키백과를 참고해 주세요. 아래 표와 같이 ASCII 코드값에는 십진수(Dec.)기준으로 숫자(0~9)가 48번에서 57번에 할당되어 있고, 알파벳 대문자..

[C/C++] C언어 수학 함수(round, ceil, floor) 직접 구현 하기(예제포함)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و 지난번에는 abs(), fabs(), sqrt(), pow() 수학 함수를 직접 구현하여 C/C++ 라이브러리 함수와 비교하는 자료를 포스팅하였습니다. 이번에는 추가적으로 다음 3개 수학 함수들을 직접 구현하여 컴파일러가 제공하는 라이브러리 함수와 비교하고자 합니다. o 반올림 값을 구하는 round() 함수 o 소수점 올림 값을 구하는 ceil() 함수 o 소수점 내림 값을 리턴하는 floor() 함수 구현한 사용자 함수가 올바른 결과 값이 구해지는지의 검증은 지난 번과 마찬가지로 동일한 실험 데이터를 가지고 C/C++ 라이브러리 함수와 비교하였습니다. double r[] = { 3.2, 3.7, -3.2, -3.7, 5.1, -6.6 }; double..

[C/C++] C언어 수학 함수(pow, sqrt, abs, fabs) 직접 구현 하기(예제포함)

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و C/C++ 언어는 기본적으로 많은 수학 관련 함수를 지원합니다. 수학 과련 함수들을 사용하기 위해서는 #include 를 소스코드에 추가하여 사용합니다. 이미 준비된 라이브러리 함수를 사용하면 아주 편리하지만 이런 라이브러리 함수들이 내부적으로 어떻게 구현되어 있을까?라는 호기심이 생깁니다. 그래서 C/C++ 언어가 제공하는 수학 함수 중에 비교적 많이 사용되는 함수를 컴파일러가 제공해 주는 라이브러리를 사용하지 않고 스터디 차원에서 직접 구현해 보았습니다. o 정수의 절대값을 계산하는 abs() 함수 o 실수의 절대값을 계산하는 fabs() 함수 o 제곱근을 계산하는 sqrt() 함수 o 거듭 제곱을 계산하는 pow() 함수 직접 구현한 사용자 정의 함..

[C/C++] 정수(int)와 문자열(string) 상호 변환하기(itoa, atoi, sprintf, snprintf function examples)

안녕하세요 JollyTree(•̀ᴗ•́)و입니다. 정수와 문자열을 서로 변경하는 방법에 대해 정리하려고 합니다. 자료형 간의 변환은 코딩시 많이 사용되는 경우로 이번 자료에서는 itoa, atoi, sprintf 함수 사용 예제 위주로 설명하고 snprintf()를 사용한 응용 예제를 공유합니다. 인터넷에 함수 원형(Prototype)을 설명한 자료들은 많기에 예제위주로 설명을 하려합니다. 예제를 보고 편리한 방법을 사용하면 되겠습니다. 정수(int)와 문자열(string) 상호 변환 예제(Example) - itoa, atoi, sprintf, snprintf 함수 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29..