반응형

c 38

"바쁜 기다림"과 "잠"의 절충점은 무엇입니까?

"바쁜 기다림"과 "잠"의 절충점은 무엇입니까? 이것은 내 이전 질문의 확장입니다. 유닉스/리눅스 소켓의 차단 모드는 어떻게 작동합니까? 지금 인터넷에서 수집하는 것, 차단 호출을 호출하는 모든 프로세스는 스케줄러가 차단 해제 이유를 찾을 때까지 절전 모드로 전환됩니다.버퍼 빈 상태에서 버퍼가 꽉 찬 상태, 다른 조건에 이르기까지 원인이 다양할 수 있습니다. 하지만 그렇다면 이것이 실시간 애플리케이션이라고 할 수 있는 효율적인 방법이 될 수 있을까요?차단 해제 조건이 참일 때 프로세스가 차단 해제되지 않으므로 스케줄러가 CPU 슬라이스를 제공하고 차단 해제 조건이 둘 다 참입니다. 마치 응답성이 뛰어난 솔루션을 원하는 것처럼, "회전 잠금"이나 "바쁜 대기"가 올바른 방법이 아니라고 생각합니다. CPU ..

bestsource 2023.09.21

C에서 운영체제가 POSIX인지 확인하려면 어떻게 해야 합니까?

C에서 운영체제가 POSIX인지 확인하려면 어떻게 해야 합니까? 관련질문 C/C++에서 운영 체제를 감지하려면 어떻게 해야 합니까? GCC 또는 ANSIC에서 실행 중인 운영 체제를 어떻게 알 수 있습니까? 포식스에서 작동하는지 알 수 있다면 괜찮을 겁니다 업데이트: 컴파일 타임이든 실행 타임이든 저에게는 아무런 차이가 없습니다.이것을 디버그 루틴에 사용하기 때문에 성능은 그렇게 중요하지 않습니다. 경로 구분자를 찾고 있습니다.윈도우 & 유닉스/리눅스/BSD면 됩니다. 그리고, 길에서 기본 이름을 찾으려고 합니다.저는 몇 가지 해결책을 찾았지만, 해결책에는 제가 원하지 않는 많은 것들이 포함되어 있습니다.저는 이 해결책을 수정할 것입니다. 저는 Mac OS X 10.4.11을 사용하고 있으며, 이 URL..

bestsource 2023.09.21

C를 배우기에 가장 좋은 장소는 어디입니까?

C를 배우기에 가장 좋은 장소는 어디입니까? 현재 상태로는 이 질문은 우리의 Q&A 형식에 맞지 않습니다.사실, 참고 자료 또는 전문 지식에 의해 답변이 뒷받침되기를 기대하지만, 이 질문은 토론, 주장, 여론 조사 또는 토론을 요청할 가능성이 높습니다.만약 이 질문이 개선되고 다시 열릴 수 있다고 생각한다면,안내를 받기 위해 헬프 센터를 방문합니다. 닫힘12년 전에. 저는 파이썬을 들었을 때 다이브 인투 파이썬을 정말 좋아했습니다. 사실 Dive Into Python과 같은 "자습서"는 저에게 정말 잘 들어맞습니다. 간단한 구문 설명과 많은 예를 들어 일을 진행할 수 있습니다. 저는 예문을 통해서 정말 잘 배웁니다. 자바, 스킴, 파이썬, PHP, 자바스크립트 등의 프로그래밍 경험이 있습니다. C 프로그..

bestsource 2023.09.21

C의 함수에서 2D 배열을 반환하는 방법은?

C의 함수에서 2D 배열을 반환하는 방법은? 저는 C를 위한 코드 생성기를 개발하게 된 루비 프로그래머입니다.리모에게 1960년대 트럭을 견인해 달라고 하는 것과 같습니다.어쨌든. 여기에 제가 생각했던 일이 있습니다. float[][] pixels() { float x[][]= { {1,1},{2,2} }; return x } void drawLine(float x[][2]) { //drawing the line } //inside main drawLine(pixels()); 이 일을 해결하려고 책상에 머리를 부딪쳤어요.제발 도와주세요.C에서 포인터와 배열은 밀접한 관련이 있습니다.또한 일반적으로 배열 크기를 별도의 변수로 전달해야 합니다.먼저 다음과 같이 시작합니다. #include float** cr..

bestsource 2023.09.21

잘못된 메모리를 가리킬 때의 (*ptr) 동작의 크기가 정의되지 않습니까?

잘못된 메모리를 가리킬 때의 (*ptr) 동작의 크기가 정의되지 않습니까? null 포인터 또는 할당되지 않은 메모리에 대한 포인터를 다시 참조하면 정의되지 않은 동작이 발생한다는 것을 우리 모두는 알고 있습니다. 하지만 전달된 표현 안에서 사용될 때의 규칙은 무엇입니까?sizeof? 예를 들어, int *ptr = 0; int size = sizeof(*ptr); 이것도 정의가 안 된 건가요?대부분의 경우, 당신은 그것을 발견할 것입니다.sizeof(*x)실제로 평가하지 않습니다.*x조금도.그리고, 정의되지 않은 동작을 호출하는 것은 포인터의 평가(비참조)이기 때문에 대부분 괜찮다는 것을 알게 될 것입니다.C11 표준은 다음과 같이 말합니다.6.5.3.4. The sizeof operator /2(이 ..

bestsource 2023.09.16

가깝고 멀고 거대한 포인터는 무엇입니까?

가깝고 멀고 거대한 포인터는 무엇입니까? 누가 이 포인터들을 적절한 예를 들어 설명해 줄 수 있습니까? 그리고 이 포인터들이 언제 사용되는지요?인텔 X86 아키텍처가 대표적인 예입니다. 인텔 8086은 내부적으로 16비트 프로세서였습니다. 모든 레지스터의 너비는 16비트였습니다.그러나 주소 버스의 폭은 20비트(1 MiB)였습니다.이것은 당신이 처음 64 kiB로 제한하면서, 전체 주소를 레지스터에 담을 수 없다는 것을 의미했습니다. 인텔의 해결책은 16비트의 "세그먼트 레지스터"를 만드는 것이었습니다. 16비트의 "세그먼트 레지스터"는 내용이 4비트로 변경되어 주소에 추가됩니다.예를 들어, DS ("Data Segment") register: 1234 h DX ("D eXtended") register..

bestsource 2023.09.16

xlib의 XNextEvent 차단을 중지하는 방법

xlib의 XNextEvent 차단을 중지하는 방법 창 아래에서 GUI 스레드는 일반적으로 GetMessage를 호출하여 메시지를 기다리고, PoseMessage를 사용하는 다른 스레드가 메시지를 큐에 넣으면 GUI 스레드가 GetMessage를 반환합니다(차단 중지). XWindows에서 XNextEvent를 사용하여 이벤트를 기다릴 때 다른 스레드에서 GUI 스레드를 "웨이크업"하려면 어떻게 해야 하는지 알려줄 수 있는 사람이 있습니까?PoseMessage와 같은 API를 사용할 수 있습니까?아니요. 이것이 대부분의 UI 프레임워크(Gtk, KDE 등)가 더 많은 이벤트 소스를 듣기 위해 사용자 지정 메인 루프를 사용하는 이유입니다. 내부적으로 XNextEvent는 소켓을 사용하기 때문에select(..

bestsource 2023.09.11

memcpy 0바이트를 상수 변수로 - 정의되지 않은 동작?

memcpy 0바이트를 상수 변수로 - 정의되지 않은 동작? C 및 C++에서 다음과 같이 정의되지 않은 동작이 있습니까?memcpy로const복사할 바이트 수가 0일 때 변수? int x = 0; const int foo = 0; memcpy( (void *)&foo, &x, 0 ); 이 질문은 순수하게 이론적인 것은 아닙니다.제가 시나리오를 가지고 있는데요.memcpy를 호출하고 대상 포인터가 다음을 가리킬 경우constmemory, size 인수는 0으로 보장됩니다.그래서 특별한 경우로 처리해야 하는지 궁금합니다.c c17 이전 질문인 Memcpy(0,0,0)를 수행하는 것이 안전한지는 7.1.4p1을 지적합니다. 다음의 각 문은 다음의 상세한 설명에 달리 명시적으로 언급되지 않는 한 적용됩니다.함..

bestsource 2023.09.11

C/C++에서 %(모듈러스)를 사용할 수 있는 대안이 있습니까?

C/C++에서 %(모듈러스)를 사용할 수 있는 대안이 있습니까? 저는 모듈러스 연산자가 정수 분할 명령이 없는 8비트 마이크로 컨트롤러와 같은 작은 임베디드 장치에서는 비효율적이라는 것을 어디선가 읽은 적이 있습니다.아마 누군가가 확인할 수 있겠지만 정수 분할 작업보다 5-10배 정도 느린 것 같습니다. 카운터 변수를 유지하고 모드 포인트에서 수동으로 0으로 오버플로하는 것 외에 다른 방법이 있습니까? const int FIZZ = 6; for(int x = 0; x < MAXCOUNT; x++) { if(!(x % FIZZ)) print("Fizz\n"); // slow on some systems } vs: 제가 현재 하고 있는 방식: const int FIZZ = 6; int fizzcount = ..

bestsource 2023.09.11

함수의 정의에 함수 프로토타입 형태의 def를 사용할 수 있습니까?

함수의 정의에 함수 프로토타입 형태의 def를 사용할 수 있습니까? 프로토타입이 동일한 일련의 기능이 있습니다. int func1(int a, int b) { // ... } int func2(int a, int b) { // ... } // ... 이제, 저는 그들의 정의와 선언을 간단히 하려고 합니다.물론 저는 그런 매크로를 사용할 수 있습니다. #define SP_FUNC(name) int name(int a, int b) 하지만 저는 C에 보관하고 싶어서 스토리지 지정서를 사용하려고 했습니다.typedef다음의 경우: typedef int SpFunc(int a, int b); 이는 선언에 적합한 것으로 보입니다. SpFunc func1; // compiles 정의를 위한 것은 아닙니다. SpFu..

bestsource 2023.09.06
반응형