new을 사용한 메모리 할당이 malloc 인 각 유형 생성자 및 메모리 할당을 호출하는 것으로 알려져 있습니다. 그러나 kmalloc은 어떨까요?kmalloc 유형 생성자를 호출합니까?
일부 시스템 호출을 개발하려고하는데 메모리를 아래 구조에 할당해야합니다. 내가 kmalloc이 함께 메모리를 할당 할 경우
struct mailbox{
unsigned long existing_messages;
unsigned long mxid;
struct message *msg;
struct message *last_node;
mailbox(){
existing_messages = 0;
mxid = 0;
msg = NULL;
last_node = NULL;
}
};
그것은 할당 시간에 구조체 사서함에 대한 생성자를 호출 할 것인가? 생성자를 명시 적으로 제외하고 이라는 생성자를 얻을 수있는 합리적인 가능한 방법은 무엇입니까? 커널에 메모리 할당을 위해 과 같은 함수가 있습니까?
잠깐, 어떻게 리눅스 커널에서 C++을 사용하고 있습니까? C에서 생성자와 같은 것은 없습니다. 코드가 컴파일되지 않아야합니다! – tangrs
커널 메인에서 파일을 만들었습니다 ** HOSTCXX = g ++ HOSTCXXFLAGS = -O2 ** 이것은 커널 컴파일시 C++ 코드를 컴파일 할 수 있음을 의미합니다. 내가 틀렸다면 나를 바로 잡아주세요. – user3508953
나는 당신이 많은 성공을 거둘 것인지 의심 스럽다. 물론, 컴파일 할 수는 있지만, 쓸모없는 것을 얻을 수는 없을 것이다. 커널은 C++ 런타임 AFAIK를 지원하지 않습니다. – tangrs