반응형

C 35

_chkstk() 함수의 목적은 무엇입니까?

_chkstk() 함수의 목적은 무엇입니까? 최근에 Visual C++ 컴파일러 옵션을 사용하여 특히 긴 멤버 함수 정의의 소스 + 어셈블리를 출력했습니다.어셈블리 출력에서 스택 프레임이 설정된 후 알 수 없는 호출이 한 번 발생합니다._chkstk()기능. 의 MSDN 페이지에서는 이 기능이 호출되는 이유를 설명하지 않습니다.스택 오버플로 질문 스택에 더 많은 페이지 크기의 버퍼를 할당하면 메모리가 손상된다는 것도 보았지만 OP와 수락된 답변이 무엇을 말하는지 이해할 수 없습니다. 의 목적은 무엇입니까?_chkstk()CRT 기능?그것은 무엇을 합니까?사용 중인 스레드에 대한 추가 스택의 Windows 페이지입니다.스택의 끝에는 액세스 불가능한 메모리로 매핑된 가드 페이지가 하나 있습니다. 프로그램이 ..

prosource 2023.07.22

gcc, 엄격한 별칭 지정 및 조합을 통한 캐스팅

gcc, 엄격한 별칭 지정 및 조합을 통한 캐스팅 여러분은 할 수 있는 공포 이야기가 있나요?GCC 매뉴얼은 최근 -fstrict-aliasing 및 조합을 통한 포인터 캐스팅과 관련된 경고를 추가했습니다. [...] 주소를 가져와서 결과 포인터를 캐스팅하고 결과를 참조하지 않으면 캐스트가 다음과 같은 조합 유형을 사용하는 경우에도 정의되지 않은 동작[강조 추가됨]이 있습니다. union a_union { int i; double d; }; int f() { double d = 3.0; return ((union a_union *)&d)->i; } 이 정의되지 않은 행동을 설명할 수 있는 예를 가진 사람이 있습니까? 이 질문은 C99 표준이 말하는 것과 그렇지 않은 것에 관한 것이 아닙니다.그것은 오늘날..

prosource 2023.07.22

makefile에 정적 라이브러리를 포함하는 방법

makefile에 정적 라이브러리를 포함하는 방법 나는 다음과 같은 makefile을 가지고 있습니다. CXXFILES = pthreads.cpp CXXFLAGS = -O3 -o prog -rdynamic -D_GNU_SOURCE -L./libmine LIBS = -lpthread -ldl all: $(CXX) $(CXXFILES) $(LIBS) $(CXXFLAGS) clean: rm -f prog *.o 나는 그것을 포함시키려고 노력하고 있습니다../libmine안에 있는 도서관.CXXFLAGS그러나 정적 라이브러리를 포함하는 것은 올바른 방법이 아닌 것 같습니다. 프로그램을 컴파일할 때 정의되지 않은 참조 오류가 많이 발생하기 때문입니다.그렇다면 정적 라이브러리를 작성 파일에 포함하는 올바른 방법은 ..

prosource 2023.07.22

리눅스에서 C/C++로 사용자 이름을 얻는 방법은 무엇입니까?

리눅스에서 C/C++로 사용자 이름을 얻는 방법은 무엇입니까? 환경을 사용하지 않고 어떻게 실제 "사용자 이름"을 얻을 수 있습니까?getenv...) 프로그램에서?환경은 Linux를 사용하는 C/C++입니다.에서 정의된 함수unistd.h사용자 이름을 반환합니다.봐man getlogin_r자세한 정보는. 서명은 다음과 같습니다. int getlogin_r(char *buf, size_t bufsize); 말할 필요도 없이, 이 함수는 C나 C++에서도 쉽게 호출될 수 있습니다.http://www.unix.com/programming/21041-getting-username-c-program-unix.html 에서: /* whoami.c */ #define _PROGRAM_NAME "whoami" #in..

prosource 2023.07.17

수준 및 에지 트리거 네트워크 이벤트 메커니즘

수준 및 에지 트리거 네트워크 이벤트 메커니즘 일부 네트워크 이벤트 메커니즘(예: epoll/poll/select)이 에지 또는 레벨 트리거된다는 것은 무엇을 의미합니까?즉, 에지 트리거는 이벤트가 탐지될 때(개념적으로 순간적으로)만 알림을 받는 것을 의미하는 반면, 레벨 트리거는 이벤트가 존재할 때(일정 기간 동안 해당됨) 알림을 받는다는 것을 의미합니다.예를 들어 에지 트리거 시스템에서 데이터를 읽을 수 있을 때 알림을 보내려면 이전에는 데이터를 읽을 수 없었지만 지금은 읽을 수 있을 때만 알림을 받을 수 있습니다.나머지 데이터를 계속 읽을 수 있도록 사용 가능한 데이터 중 일부를 읽는 경우에는 다른 알림이 표시되지 않으며, 사용 가능한 데이터를 모두 읽는 경우에는 데이터를 다시 읽을 수 있게 되었을..

prosource 2023.07.17

Python을 공유 라이브러리에 연결하기 위해 Cython 사용

Python을 공유 라이브러리에 연결하기 위해 Cython 사용 다음에 작성된 타사 라이브러리를 통합하려고 합니다.C나와 함께python응용 프로그램 사용Cython저는 테스트를 위해 파이썬 코드를 모두 작성했습니다.이 설정에 대한 예제를 찾는 데 어려움을 겪고 있습니다. 나는 있습니다pyd/pyx수동으로 만든 파일입니다.제3자가 저에게 다음과 같은 정보를 제공했습니다.header file (*.h)그리고 ashared library (*.so)제가 아는 한, 다른 의존성은 없습니다.다음을 사용하여 설정하는 방법에 대한 예를 제공할 수 있습니까?Cython그리고.disutils? 감사해요.물론이죠! (다음에서, 저는 당신이 이미 어떻게 대처해야 하는지 알고 있다고 가정합니다.cimport그리고 사이의 상..

prosource 2023.07.07

C/C++(GCC/G++)을 사용하는 Linux의 소켓 프로그래밍에서 파일 보내기 및 받기

C/C++(GCC/G++)을 사용하는 Linux의 소켓 프로그래밍에서 파일 보내기 및 받기 리눅스에서 실행되는 클라이언트-서버 아키텍처를 소켓과 파일 송수신이 가능한 C/C++ 언어를 사용하여 구현하고 싶습니다.이 일을 쉽게 할 수 있는 도서관이 있습니까?예를 들어주실 분 있나요?가장 휴대하기 쉬운 솔루션은 파일을 청크로 읽은 다음 소켓에 데이터를 루프 형태로 쓰는 것입니다(이와 마찬가지로 파일을 수신할 때도 마찬가지입니다).버퍼를 해당 버퍼에 할당하고 해당 버퍼에서 소켓으로 할당합니다(사용할 수도 있음).send그리고.recv이는 소켓별 데이터 쓰기 및 읽기 방법입니다.개요는 다음과 같습니다. while (1) { // Read data into buffer. We may not have enough ..

prosource 2023.06.27

_mm_malloc을 사용하는 이유는 무엇입니까?( _aligned_memalign, alligned_alloc 또는 posix_memalign과는 반대)

_mm_malloc을 사용하는 이유는 무엇입니까?( _aligned_memalign, alligned_alloc 또는 posix_memalign과는 반대) 정렬된 메모리 블록을 획득하는 데에는 몇 가지 옵션이 있지만 매우 유사하며 문제는 대부분 어떤 언어 표준과 플랫폼을 대상으로 하는지로 요약됩니다. C11 void * aligned_alloc (size_t alignment, size_t size) POSIX int posix_memalign (void **memptr, size_t alignment, size_t size) 창문들 void * _aligned_malloc(size_t size, size_t alignment); 그리고 물론 손으로 정렬하는 것도 항상 선택할 수 있습니다. Intel은 ..

prosource 2023.06.17

malloc()로 할당한 메모리보다 더 많은 메모리를 사용할 수 있는데, 그 이유는 무엇입니까?

malloc()로 할당한 메모리보다 더 많은 메모리를 사용할 수 있는데, 그 이유는 무엇입니까? char *cp = (char *) malloc(1); strcpy(cp, "123456789"); puts(cp); C"123456789"이며, 는 빈 메모리가 때 gcc 가능한 메모리)로더할 수 을 의미합니다.malloc()? 왜 ㅠㅠㅠㅠmalloc(0)런타임 오류가 발생하지 않습니까? 감사해요.당신은 매우 좋은 질문을 했고 이것이 당신의 운영체제에 대한 욕구를 자극할 것입니다.여러분은 이미 이 코드로 일반적으로 예상하지 못했던 것을 달성했다는 것을 알고 있습니다.따라서 휴대용으로 만들고자 하는 코드에서는 이런 작업을 절대 하지 않을 것입니다. 좀 더 구체적으로 말하면, 이것은 전적으로 운영 체제와 CPU..

prosource 2023.06.17

openmp의 collapse 절 이해

openmp의 collapse 절 이해 저는 collapse 절이 있는 OpenMP 코드를 발견했는데, 이것은 저에게 새로운 것이었습니다.저는 그것이 무엇을 의미하는지 이해하려고 노력하고 있지만, 저는 그것의 의미를 완전히 이해하지 못했다고 생각합니다. 제가 찾은 한 가지 정의는 다음과 같습니다. 접기:중첩된 루프에서 하나의 큰 반복 공간으로 축소하고 일람표 절에 따라 분할할 루프 수를 지정합니다.연관된 모든 루프에서 반복의 순차적 실행은 축소된 반복 공간에서 반복의 순서를 결정합니다. 저는 그것이 무엇을 의미하는지 이해한다고 생각했기 때문에 다음과 같은 간단한 프로그램을 시도했습니다. int i, j; #pragma omp parallel for num_threads(2) private(j) for (..

prosource 2023.06.17
반응형