perror & exit
·
Programming Languages/C
https://modoocode.com/53 C 언어 레퍼런스 - perror 함수 modoocode.com https://codetravel.tistory.com/28 exit 함수를 사용하여 프로세스 종료하기 일반적으로 프로세스를 종료할 때 return문을 사용합니다. 그리고 exit()함수를 사용하기도 합니다. return 문과 exit() 함수를 사용하는 것은 시스템 입장에서 보았을 때 동일합니다. #include void exit(int codetravel.tistory.com https://jepo.tistory.com/26
[네트워크/C reference] inet_pton
·
Programming Languages/C
https://techlog.gurucat.net/317 [네트워크/C reference] inet_pton 함수 기능 요약 (Summary) inet_pton( ) 함수는 사람이 알아보기 쉬운 텍스트(human-readable text)형태의 IPv4 와 IPv6 주소를 binary 형태로 변환 하는 기능을 한다. 헤더 (Header files) 이 함수를 사용하려면.. techlog.gurucat.net inet_aton( ) 및 inet_addr( )와는 달리, inet_pton( )은 IPv6주소를 지원한다.
\n NULL strlen, sizeof
·
Programming Languages/C
strlen 문자열의 길이 = index + 1 == 실제 길이 + 개행문자 1개 sizeof는 NULL문자를 포함한 메모리의 할당크기를 바이트단위로 구합니다. 연산자입니다. strlen는 순수하게 문자열의 길이만을 구합니다. 함수입니다. 문자 자체만 주고 받을 경우 출력에 null을 명시한 후 printf 하여야 한다. 문자 자체만 주고 받을 것인지, 개행 문자를 포함한 값을 주고 받을 것인지 주고 받은 값에 null값을 추가할 것인지 정해야 한다. 연속으로 문자열을 주고 받을시, 이전에 받은 메시지가 버퍼로 지정된 곳에 계속 남아 있다.
Stream(2) C언어 입출력
·
Programming Languages/C
C 언어의 Stream - 외부 장치와의 입출력에 스트림을 이용하며 일반적으로, 바이트(문자) 및 바이너리(이진)으로 구분 처리한다. - printf()와 scanf() 와 같은 콘솔 입출력의 'input stream'과 'output stream'이 자동으로 생성되고, 소멸된다. 1. C 언어 표준 입출력 스트림 스트림 설명 장치 stdin 표준 입력 키보드 stdout 표준 출력 화면 stderr 표준 에러 화면 : 표준 스트림 : stdin, stdout, stderr . 따로, 스트림을 열 필요 없이 바로 사용 가능함 : 파일 스트림 : 파일 입출력시, 자동으로 스트림이 생성되지 않고, 먼저 스트림을 생성시켜야 함 : 문자를 unsigned char 형식으로 다룬다. 리턴은 int 형식으로 변환되..
Stream(1) 스트림과 버퍼
·
Programming Languages/C
Stream 1. Stream(스트림) 이란? : 끊기지 않고 연속적인 "데이터의 흐름"을 나타내는 개념적 용어 : 바이너리 스트림 0x0C, 12, 문자열 스트림 "12" 2. Stream 사용 이유 : 스트림은 여러 입출력 장치들과 데이터를 읽고 쓰기 위한 통일된 방법 제공 : 입출력 장치의 종류에 상관없이, 스트림 라이브러리와 운영체제에 의한 입출력 구현 3. Stream과 화면 출력 예시 : 장치가 달라지더라도, 항상 똑같은 절차를 통해 데이터를 읽고 쓰는 스트림을 이용한다. 출발지(source)는 메모리 등 여러 장치, 목적지(destination)는 모니터 메모리(source)에 대한 스트림을 열고 순차적으로 데이터를 읽어온다. 모니터(destination)의 스트림을 열고 데이터를 순차적으로..
MultiCast & BroadCast
·
Programming Languages/C
“멀티미디어 데이터의 실시간 전송”과 같이, 다수의 사용자에게 동일한 서비스를 제공해야 할 경우, TCP의 경우 수천, 수만개의 소캣을 생성해야 하고, UDP의 경우 수천 수만개의 전송해야 하는 경우, 서버와 네트워크 트래픽 측면에서 매우 부정적이다. - 멀티캐스트 서버는 특정 멀티캐스트 그룹을 대상으로 딱 한번 데이터를 전송하더라도 그룹에 속하는 모든 클라이언트가 데이터를 수신한다. - 멀티캐스트 그룹의 수는 IP주소 범위 내에서 얼마든지 추가가 가능하다. - 특정 멀티캐스트 그룹으로 전송되는 데이터를 수신하려면 해당 그룹에 가입하면 된다. 멀티캐스트 방식의 데이터 전송은 UDP를 기반으로 한다. 차이점은, UDP의 목적지는 하나지만, 멀티케스트 방식은 특정 그룹에 등록된 다수의 호스트가 된다. 멀티캐..
12 매크로
·
Programming Languages/C
매크로 장점 1. 매크로 함수는 단순 치환, 타입을 고려하지 않는다. 2. 매크로 함수를 사용하면 여러 개의 명령문을 동시에 포함할 수 있다. 3. 함수 호출에 의한 성능 저하가 일어나지 않으므로, 프로그램의 실행속도가 향상된다. 단점 1. 원하는 결과를 얻는 정확한 매크로 함수의 구현은 어려우며, 따라서 디버깅 또한 매우 어렵습니다. 2. 매크로 함수의 크기가 증가하면 증가할수록 사용되는 괄호 또한 매우 많아져서 가독성이 떨어집니다. 매크로 정의 #define 매크로이름 값 #undef 매크로이름 #include #define COUNT 10 // 10을 COUNT로 정의 int main() { printf("%d\n", COUNT); // 10 #undef COUNT // 앞에서 정의한 COUNT 해..
11 함수 포인터
·
Programming Languages/C
- 함수 이름은 함수의 메모리 시작 주소를 가리키는 함수 포인터(function pointer)다. - 함수 포인터는 다음 예제처럼 함수를 또 다른 함수의 인수로 전달할 때 유용하게 사용된다. - 함수 포인터 선언 방법 함수 포인터의 포인터 타입은 함수의 반환값과 매개변수에 의해 결정된다. 즉, 함수의 원형을 알아야만 해당 함수에 맞는 함수 포인터를 만들 수 있다. // 함수 원형 void func (int, int); // 함수 포인터 void (*ptr_func) (int, int); - 함수 포인터 사용시, 연산자 우선순위에 의해 *ptr_func 부분을 괄호(())로 둘러싸야 한다. - 함수에 대한 포인터는 매개변수 선언시, 변수 이름앞 *와 ( )를 생략 할 수 있다. #include doubl..
10 알고리즘과 배열
·
Programming Languages/C
문제: 배열 요소의 최대값 알고리즘을 구현하라 문제: 배열 요소를 역순으로 정렬하기는 알고리즘을 구현하라 문제: 기수 변환 알고리즘을 구현하라 문제: 어떤 정수 이하의 모든 소수 나열하는 알고리즘을 구현하라(1) 문제: 어떤 정수 이하의 모든 소수 나열하는 알고리즘을 구현하라(2) : 2,4,6,8,12와 같이 모두 2의 배수이므로 중복으로 비교 할 필요 없다. 문제: 어떤 정수 이하의 모든 소수 나열하는 알고리즘을 구현하라(3) : 100의 약수 2x50과 50x2는 같다. : 100의 약수는 10x10을 중심으로 대칭 형태다. : 2, 4, 5로 나누어 떨어지면, 50, 25, 20으로도 나누어 떨어진다. (= 2, 4, 5로 나누어 떨어지지 않으면, 50, 25, 20으로도 나누어 떨어지지 않는다...
09 포인터
·
Programming Languages/C
포인터란? - 해당되는 메모리 공간의 첫 바이트 주소값을 저장하는 변수이다. 포인터(pointer) 논리적으로 "☞ 메모리 공간을 가리킨다" 는 의미다. 포인터를 통한 주소값 OS가 관리하는 가상의 메모리 주소값이다. 고로, C에서 메모리가 어떻게 구성, 관리되는지 이해하면 포인터를 이해하는 것이다. - *포인터 연산자의 위치는 상관 없으나, 변수명 앞에 *를 사용한다. (int* a, b, c 문제) 포인터와 메모리 컴파일된 C 프로그램은 세 종류의 메모리를 사용한다. 정적(Static)/전역(Global) 동적(Dynamic) 자동(Autmatic)/로컬(Local) 포인터 * 참조 연산자 * 는 주소값을 참조하는 연산자다. int형 변수 x 를 사용하면 13을 가져오듯이, 포인터 변수 xp 를 사용..
08 구조체와 동적할당
·
Programming Languages/C
구조체 구조체(Struct) 선언과 맴버 접근 구조체는 배열과 같은 사용자 정의 자료형(User-Defined Data Type)이다. struct 키워드를 통해 구조체 자료형을 선언하고, 사용한다. 구조체 별칭(Alias) typedef 키워드를 통해 struct name -> alias 로 간단히 사용한다. 구조체 동적할당 #include #include #include // 구조체 별칭과 포인터 int main(void) { typedef struct Person { char name[20]; char addr[50]; int age; } as_; as_ *ptr = malloc(sizeof(as_)); as_ a; ptr = &a; strcpy(ptr->name, "이순신"); // (*ptr)...
07 배열과 동적할당
·
Programming Languages/C
자료 구조(Data Structure) : 데이터의 물리적, 논리적 관계 : 변수 또한 bit와 byte 단위의 Data를 다루는 자료구조지만, 주로 연속적, 규칙적으로 반복되는 Data의 집합을 의미한다. : 배열과 구조체(+공용체, 열거체)는 사용자 정의 자료형이다. 배열 배열(Array) 연속적, 규칙적으로 반복되는 자료들을 다루는 가장 기본적인 자료구조 배열 a 의 자료형(Data Type)은 int[5] 와 같은 사용자 정의 자료형(User-Defined Data Type)이다. 배열과 포인터(Array & Pointer) 다차원 배열(Multidimensional Array) : 배열을 요소로하는 배열 배열과 동적할당(Dynamic Memory Allocation) 03. memory 03.1..
ubiquitous4g
'분류 전체보기' 카테고리의 글 목록 (5 Page)