이 섹션에서는 C/C++의 단일 프로그램에서 좀비 프로세스와 고아 프로세스를 실행하는 방법을 살펴봅니다. 본론으로 넘어가기 전에 좀비 프로세스와 고아 프로세스가 무엇인지 알아보자. 좀비 프로세스 좀비 프로세스는 실행이 완료되었지만 여전히 프로세스 테이블에 항목이 있는 프로세스입니다. 좀비 프로세스는 일반적으로 자식 프로세스에 대해 발생합니다. 부모 프로세스는 여전히 자식의 종료 상태를 읽어야 하기 때문입니다. 이것이 대기 시스템 호출을 사용하여 완료되면 좀비 프로세스는 프로세스 테이블에서 제거됩니다. 이것을 좀비 프로세스를 수확하
이 섹션에서는 C/C++ 프로그램에서 SQLite를 사용하는 방법을 배웁니다. 설치 C/C++ 프로그램에서 SQLite 사용을 시작하기 전에 머신에 SQLite 라이브러리가 설정되어 있는지 확인해야 합니다. SQLite 설치 장을 확인하여 설치 과정을 이해할 수 있습니다. C/C++ 인터페이스 API 다음은 중요한 C/C++ SQLite 인터페이스 루틴으로, C/C++ 프로그램에서 SQLite 데이터베이스를 사용하는 데 필요한 요구 사항을 충족할 수 있습니다. 보다 정교한 애플리케이션을 찾고 있다면 SQLite 공식 문서를 살펴
C/C++에서는 실제 숫자 앞에 0을 입력하여 8진수 리터럴을 사용할 수 있습니다. 예를 들어 8진수가 25이면 025를 써야 합니다. 예시 코드 #include <stdio.h> int main() { int a = 025; int b = 063; printf("Decimal of 25(Octal) is %d\n", a); printf("Decimal of 63(Octal) is %d\n",
C에서 스레드 속성의 스택 크기를 가져오고 설정하기 위해 다음 스레드 속성을 사용합니다. pthread_attr_getstacksize() 스레드 스택 크기를 가져오는 데 사용합니다. stacksize 속성은 스레드 스택에 할당된 최소 스택 크기를 제공합니다. 성공적인 실행의 경우 0을 제공하고 그렇지 않으면 값을 제공합니다. 두 개의 인수가 필요합니다 - pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize) pthread 속성의 첫 번째 항목입니다. 두 번째
여기에서 C에서 동적 메모리 할당이 무엇인지 볼 것입니다. C 프로그래밍 언어는 메모리 할당 및 관리를 위한 여러 기능을 제공합니다. 이러한 기능은 헤더 파일에서 찾을 수 있습니다. 메모리 할당을 위한 다음 기능. 함수 설명 void *calloc(int num, int size); 이 함수는 num개의 배열을 할당합니다. 각 요소의 크기는 바이트 단위가 됩니다. 무효(무효 *주소); 이 함수는 주소로 지정된 메모리 블록의 블록을 해제합니다. 무효 *malloc(정수); 이 함수는 num개의 배열을 할당합니다. 바이트를 초
이 섹션에서는 fork()를 사용하여 C에서 자식 프로세스를 만드는 방법을 볼 것입니다. 또한 각 프로세스에서 몇 가지 다른 작업을 수행합니다. 따라서 부모 프로세스에서 다른 값을 인쇄합니다. fork()가 호출되면 값을 반환합니다. 값이 0보다 크면 현재 상위 프로세스에 있고 그렇지 않으면 하위 프로세스에 있습니다. 따라서 이를 사용하여 프로세스를 구분할 수 있습니다. 예시 코드 #include <stdio.h> #include <unistd.h> int main() { int n =
여기서 우리는 C에서 함수 프로토타입을 사용해야 하는 이유를 볼 것입니다. 함수 프로토타입은 컴파일러에게 인수의 수와 함수 매개변수의 필수 데이터 유형에 대해 알려주고 함수의 반환 유형에 대해서도 알려주는 데 사용됩니다. 이 정보를 통해 컴파일러는 함수 서명을 호출하기 전에 교차 확인합니다. 함수 프로토타입이 언급되지 않은 경우 프로그램이 일부 경고와 함께 컴파일되고 때때로 이상한 출력이 생성될 수 있습니다. 어떤 함수가 어딘가에서 호출되었지만 그 본문이 아직 정의되지 않은 경우, 즉 현재 행 다음에 정의되면 문제가 발생할 수 있
여기서 우리는 두 개의 함수가 존재하는 코드를 작성하는 방법을 볼 것이며, 하나의 함수는 메인 함수보다 먼저 실행되고 다른 함수는 메인 함수 다음에 실행될 것입니다. 이러한 기능은 메인을 실행하기 전에 일부 시작 작업을 수행하고 메인을 실행한 후에 일부 정리 작업을 수행하는 데 사용됩니다. 이 작업을 수행하려면 이 두 함수에 대한 속성을 넣어야 합니다. 속성이 생성자 속성이면 main()보다 먼저 실행되고 속성이 소멸자 유형이면 main() 이후에 실행됩니다. 예시 코드 #include<stdio.h> void befo
이 섹션에서는 C에서 인수의 수가 가변적인 경우 인수의 수를 계산하는 방법을 볼 것입니다. C는 줄임표를 지원합니다. 이것은 함수에 대한 다양한 수의 인수를 취하는 데 사용됩니다. 사용자는 세 가지 방법 중 하나를 사용하여 인수를 계산할 수 있습니다. 매개변수의 개수로 첫 번째 인수를 전달하여 마지막 인수를 NULL로 전달하여. 첫 번째 인수에 다른 인수에 대한 자리 표시자가 있는 printf() 또는 scanf()와 같은 논리 사용 다음 프로그램에서는 전달된 인수 변수의 총 개수를 계산합니다. 예시 코드 #
우리는 일부 함수에 다른 인수를 전달합니다. 이제 함수 매개변수의 평가 순서가 무엇인지에 대한 한 가지 질문이 떠오를 수 있습니다. 왼쪽에서 오른쪽인가요, 오른쪽에서 왼쪽인가요? 평가 순서를 확인하기 위해 간단한 프로그램을 사용합니다. 여기에 일부 매개변수가 전달됩니다. 결과에서 평가 방법을 찾을 수 있습니다. 예시 코드 #include<stdio.h> void test_function(int x, int y, int z) { printf("The value of x: %d\n"
C 또는 C++에서는 함수에서 직접 여러 값을 반환할 수 없습니다. 이 섹션에서는 몇 가지 트릭을 사용하여 함수에서 둘 이상의 값을 반환하는 방법을 볼 것입니다. call by address 또는 call by reference라는 방법을 사용하여 함수에서 둘 이상의 값을 반환할 수 있습니다. 호출자 함수에서 두 개의 변수를 사용하여 결과를 저장하고 함수는 포인터 유형 데이터를 사용합니다. 따라서 데이터의 주소를 전달해야 합니다. 이 예제에서는 하나의 함수에서 두 개의 숫자를 나눈 후 몫과 나머지를 반환할 수 있는 함수를 정의하
여기서 우리는 C 또는 C++에서 함수 프로토타입을 사용하는 목적이 무엇인지 볼 것입니다. 함수 프로토타입은 인수의 수와 함수 매개변수의 필수 데이터 유형에 대해 컴파일러에 알리고 함수의 반환 유형에 대해서도 알려주는 데 사용됩니다. 이 정보를 통해 컴파일러는 함수 서명을 호출하기 전에 교차 확인합니다. 함수 프로토타입이 언급되지 않은 경우 프로그램이 일부 경고와 함께 컴파일되고 때때로 이상한 출력이 생성될 수 있습니다. 어떤 함수가 어딘가에서 호출되었지만 그 본문이 아직 정의되지 않은 경우, 즉 현재 행 다음에 정의되면 문제가
일부 함수 프로토타입을 사용하지 않고 함수 본문이 해당 함수의 호출 문 뒤에 있는 섹션에 선언되어 있는 경우. 이러한 경우 컴파일러는 기본 반환 유형이 정수라고 생각합니다. 그러나 함수가 다른 유형의 값을 반환하면 오류가 반환됩니다. 반환 유형이 정수인 경우에도 제대로 작동하며 때로는 경고가 발생할 수 있습니다. 예시 코드 #include<stdio.h> main() { printf("The returned value: %d\n", function); } char function(
_Noreturn 함수 지정자는 함수가 아무 것도 반환하지 않을 것임을 컴파일러에 알리는 데 사용됩니다. 프로그램이 내부에 일부 return 문을 사용하는 경우 컴파일러는 컴파일 시간 오류를 생성합니다. 예시 코드 #include<stdio.h> main() { printf("The returned value: %d\n", function); } char function() { return 'T'; //return T as character }
콜백은 기본적으로 다른 코드에 인수로 전달되는 실행 가능한 코드로, 주어진 시간에 인수를 다시 호출하거나 실행할 것으로 예상됩니다. 다음과 같이 정의할 수 있습니다. 함수 참조가 호출을 위해 다른 함수 인수에 전달되면 이를 콜백 함수라고 합니다. C에서는 콜백 함수를 호출하기 위해 함수 포인터를 사용해야 합니다. 다음 코드는 콜백 함수가 작업을 수행하는 방법을 보여줍니다. 예시 코드 #include<stdio.h> void my_function() { printf("This is a no
C 프로그램이 실행될 때 명령줄에서 일부 값을 C 프로그램으로 전달할 수 있습니다. 이러한 값을 명령줄 인수라고 합니다. 특히 코드 내부의 값을 하드 코딩하는 대신 외부에서 프로그램을 제어하려는 경우 프로그램에 중요합니다. 명령줄 인수는 argc에서 main() 함수 인수를 사용하여 처리됩니다. 전달된 인수의 수를 나타내며 argv[] 프로그램에 전달된 각 인수를 가리키는 포인터 배열입니다. 다음은 명령줄에서 제공된 인수가 있는지 확인하고 그에 따라 조치를 취하는 간단한 예입니다 - 예시 코드 #include <stdio.h
콜백은 기본적으로 다른 코드에 인수로 전달되는 실행 가능한 코드로, 주어진 시간에 인수를 다시 호출하거나 실행할 것으로 예상됩니다. 다음과 같이 정의할 수 있습니다. 함수 참조가 호출을 위해 다른 함수 인수에 전달되면 이를 콜백 함수라고 합니다. C에서는 콜백 함수를 호출하기 위해 함수 포인터를 사용해야 합니다. 다음 코드는 콜백 함수가 작업을 수행하는 방법을 보여줍니다. 예시 코드 #include<stdio.h> void my_function() { printf("This is a no
C 또는 C++에서 다음과 같은 문이 있다고 가정해 보겠습니다. c = a+++b; 그렇다면 이 줄의 의미는 무엇입니까? 음, b와 b가 각각 2와 5를 잡고 있다고 가정합니다. 이 표현식은 두 가지 다른 유형으로 간주될 수 있습니다. c =(a++) + b c =a + (++b) 사후 증가 연산자와 사전 증가 연산자가 있습니다. 사용 방법에 따라 다릅니다. 두 가지 기본 개념이 있습니다. 우선 순위와 연관성. 이제 왼쪽에서 오른쪽으로 표현식을 확인하면 결과는 이 두 가지가 됩니다. c =(a++) + b → 2 + 5
C++에서 구조와 클래스는 기본적으로 동일합니다. 그러나 약간의 차이가 있습니다. 이러한 차이점은 아래와 같습니다. 클래스 멤버는 기본적으로 private이지만 구조체의 멤버는 public입니다. 차이점을 알아보기 위해 이 두 코드를 살펴보겠습니다. 예시 #include <iostream> using namespace std; class my_class { int x = 10; }; int main() { my_class my_ob; cout
C 프로그래밍 언어는 1970년 초 Dennis Ritchie에 의해 개발되었습니다. UNIX 운영 체제를 재설계하기 위해 개발되었습니다. 이전에 UNIX 시스템에서 사용되었던 B 언어에는 다른 단점이 있습니다. 구조를 지원하지 않으며 데이터 유형을 이해하지 못합니다. 이러한 이유로 C 언어가 도입되었습니다. C는 높은 수준의 기능과 OS 프로그래밍을 위한 세부적인 기능을 가지고 있습니다. UNIX 커널은 C를 사용하여 개발되었습니다. C 언어의 장점 C는 중급 언어입니다. 하위 수준과 상위 수준 기능이 모두 있습니다. C를