반응형

C 135

여러 .so 공유 라이브러리 병합

여러 .so 공유 라이브러리 병합 예를 들어 a.so 및 b.so이 있다고 합시다.c.so을 a와 b가 내보내는 모든 기능을 가진 단일 공유 라이브러리로 만들 수 있습니까?물론 모든 내부 의존성(a.so에서 호출하는 모든 기능 및 그 반대)을 해결할 수 있습니다. 나는 노력했다. gcc - shared - Wl , soname , c.so -o c.so a.so 효과가 없어요. a.o와 b.o를 a.a와 b.a(a.o와 b.o를 수정할 수 없음)에 보관하고, gcc - shared - Wl, soname, c.so -o c.so a.a b.a. 고마워요.여러 공유 라이브러리를 하나로 병합하는 것은 AIX를 제외한 모든 UNIX에서 사실상 불가능합니다. 링커는 .so를 "최종" 제품으로 간주합니다. 그러나..

programing 2022.08.09

변수 유형 선언 방법 Python C style

변수 유형 선언 방법 Python C style 저는 프로그래밍 학생이고 선생님은 프로그래밍 패러다임을 가르치기 위해 C부터 시작하셨어요, 그는 제가 파이썬으로 숙제를 전달해도 괜찮다고 말했습니다(숙제가 더 쉽고 빠릅니다).그리고, 가능한 한 C플레인에서 코드에 가깝게 하고 싶습니다. ★★★★ 의 python과 python 타입을 해야 하나요?ex C 서 、 C 서 、 Python 。 §: int X,Y,Z; 파이썬으로 할 수 있다는 거 알아 x = 0 y = 0 z = 0 그러나 그것은 많은 작업이 필요한 것으로 보이며 Python이 C보다 더 쉽고 더 빠르다는 요점을 놓치고 있다.그렇다면, 이것을 하는 가장 빠른 방법은 무엇일까요? P.S. 대부분의 경우 데이터 유형을 python으로 선언할 필요가 ..

programing 2022.08.08

Linux: 소켓에서 타임아웃이 발생한 읽기 또는 recv가 있습니까?

Linux: 소켓에서 타임아웃이 발생한 읽기 또는 recv가 있습니까? 타임아웃이 있는 소켓에서 데이터를 읽으려면 어떻게 해야 합니까?알고 있습니다. select, pselect, poll에는 타임아웃필드가 있는데, 이 필드를 사용하면 tcp reno 스택의 "tcp fast-path"가 비활성화됩니다. 루프에서 recv(fd, ..., MSG_DONTWAIT)를 사용하는 방법밖에 없습니다.setsockopt 함수를 사용하여 수신 조작의 타임 아웃을 설정할 수 있습니다. 소_RCVTIMEO 입력 기능이 완료될 때까지 대기하는 최대 시간을 지정하는 타임아웃 값을 설정합니다.입력 조작의 완료를 대기하는 시간의 제한을 지정하는 초수 및 마이크로초의 타임밸 구조를 받아들입니다.수신 조작이 추가 데이터를 수신하지..

programing 2022.08.08

비동기 콜용 JNI 인터페이스 포인터(JNIEnv *)를 얻는 방법

비동기 콜용 JNI 인터페이스 포인터(JNIEnv *)를 얻는 방법 JNI 인터페이스 포인터(JNIEnv *)는 현재 스레드에서만 유효하다는 것을 알게 되었습니다.네이티브 메서드 내에서 새 스레드를 시작했다고 가정합니다. 이벤트를 Java 메서드로 비동기적으로 전송할 수 있는 방법은 무엇입니까?이 새 스레드는 (JNIEnv *)의 참조를 가질 수 없습니다.(JNIEnv *)에 대한 글로벌 변수를 저장하는 것이 작동하지 않는 것 같습니다.JVM에 대한 포인터를 얻을 수 있습니다( ).JavaVM*이 포인터는 글로벌 변수로 안전하게 저장할 수 있습니다.나중에 새로운 스레드에서는 새로운 스레드를 C/C++로 작성한 경우 또는 단순히 JNI가 사용자에게 전달하기 때문에 상정하지 않은 Java 코드로 스레드를 작..

programing 2022.08.08

C의 매크로와 기능

C의 매크로와 기능 기능을 사용하는 것보다 매크로를 사용하는 것이 더 좋은 경우를 자주 볼 수 있습니다. 기능에 비해 매크로의 단점을 예를 들어 설명해 주실 수 있습니까?매크로는 텍스트 치환에 의존하며 유형 검사를 수행하지 않기 때문에 오류가 발생하기 쉽습니다.예를 들어 다음과 같은 매크로가 있습니다. #define square(a) a * a 다음 정수와 함께 사용하면 정상적으로 동작합니다. square(5) --> 5 * 5 --> 25 표현과 함께 사용하면 매우 이상한 행동을 합니다. square(1 + 2) --> 1 + 2 * 1 + 2 --> 1 + 2 + 2 --> 5 square(x++) --> x++ * x++ --> increments x twice 논거에 괄호를 두르는 것은 도움이 되..

programing 2022.08.08

c11에서의 멀티스레딩 지원

c11에서의 멀티스레딩 지원 새로운 C11 규격은 멀티스레딩을 지원합니다. 나의 질문은 조금 다양하지만 확실히 대답할 수 있다. C11 n1570 초안을 보았습니다. 다음과 같이 되어 있습니다. 향상된 메모리 시퀀싱 모델, 원자 객체 및 스레드 로컬 스토리지를 포함한 여러 스레드 실행 지원(그리고.) 향상된 메모리 시퀀스 모델은 무엇입니까?c99 Standard와 달라진 점 표준에서 인용하는 것만으로 끝나는 것이 아니라, 그 의미를 깊이 파고들어 설명해 주셨으면 합니다. C11은 다음을 지원합니다. 스레드 작성 및 관리 뮤텍스 조건부 변수 스레드 고유의 스토리지 및 원자 객체 내가 놓친 게 없었으면 좋겠는데? 스탠다드 라이브러리 자체가 멀티스레딩에 필요한 모든 기능을 제공하고 있기 때문에 앞으로는 POS..

programing 2022.08.08

매트릭스의 인덱스를 1차원 배열(C++)에 매핑하려면 어떻게 해야 합니까?

매트릭스의 인덱스를 1차원 배열(C++)에 매핑하려면 어떻게 해야 합니까? 8x8 매트릭스가 있는데, 다음과 같습니다. char matrix[8][8]; 또, 다음과 같은 64개의 요소가 배열되어 있습니다. char array[64]; 그리고 매트릭스를 표로 그리고 셀을 숫자로 채웁니다. 각 숫자는 왼쪽에서 오른쪽으로, 위에서 아래로 증가합니다. 예를 들어 인덱스 3(컬럼)과 4(행)를 매트릭스에 포함시키면 내가 그린 표에서 볼 수 있듯이 어레이의 위치 35에 있는 요소에 해당한다는 것을 알 수 있습니다.매트릭스의 2개의 인덱스를 배열의 단일 인덱스로 변환하는 공식이 있다고 생각합니다만, 그것이 무엇인지 알 수 없습니다. 좋은 생각 있어요?대부분의 언어가 다차원 배열을 저장하는 방법은 다음과 같습니다. ..

programing 2022.08.07

정수 나눗셈의 동작은 무엇입니까?

정수 나눗셈의 동작은 무엇입니까? 예를들면, int result; result = 125/100; 또는 result = 43/100; 결과는 항상 사업부의 바닥이 될 것인가?정의된 동작은 무엇입니까? 결과는 항상 사업부의 바닥이 될 것인가?정의된 동작은 무엇입니까? 별로 그렇지 않아요.바닥이 아니라 0을 향해 반올림합니다. 6.5.5 곱셈 연산자 6 정수가 나누어져 있을 때 / 연산자의 결과는 분수 부분이 88)폐기된 대수적 상수가 된다.계수 a/b가 표현 가능한 경우, (a/b)*b + a%b는 a와 같아야 한다. 및 해당 각주: 이것은 종종 "0으로 향하는 분할"이라고 불립니다. 물론 주의할 점은 두 가지입니다. 3 일반적인 산술 변환은 피연산자에 대해 수행됩니다. 또, 다음과 같이 합니다. 5 / ..

programing 2022.08.07

C 메모리 관리

C 메모리 관리 C에서는 기억력을 어떻게 관리하는지 잘 살펴야 한다고 항상 들었어요.그리고 아직 C를 배우기 시작했지만, 지금까지 메모리 관리 관련 활동을 전혀 할 필요가 없었습니다.저는 항상 변수를 풀고 온갖 추한 일들을 해야 한다고 상상했어요.하지만 이것은 사실이 아닌 것 같다. "메모리 관리"를 수행해야 하는 경우의 예를 코드 예시와 함께 보여 주실 수 있습니까?변수를 메모리에 저장할 수 있는 두 곳이 있습니다.다음과 같은 변수를 만드는 경우: int a; char c; char d[16]; 변수는 "스택"에 생성됩니다.스택 변수는 범위를 벗어나면(즉, 코드가 더 이상 스택 변수에 도달할 수 없는 경우) 자동으로 해제됩니다.'자동' 변수라고 할 수도 있지만, 이제는 유행이 지났다. 많은 초보자 예에..

programing 2022.08.07

std::labs()의 용도는 무엇입니까?

std::labs()의 용도는 무엇입니까? 에 대해 읽었습니다.std::abs()cpp reference를 참조할 때 기능합니다. 그 페이지에서 나는 또한 본 적이 있다std::labs()기능.그 시제품은 그 시제품 중 하나와 같죠.std::abs()과부하long). long abs( long n ); long labs( long n ); 그리고. long long abs( long long n ); long long llabs( long long n ); 그렇게, 정확히 뭐?std::labs()그렇습니까? 언제 어디에 사용합니까?std::labs()? 와의 차이는 무엇입니까?std::abs()그리고.std::labs()? C++11은,std::labs그리고.std::llabs가 추가되었습니다.이것은 C..

programing 2022.08.03
반응형