반응형

c 38

C에서 순환 리스트(ring buffer)를 어떻게 구현합니까?

C에서 순환 리스트(ring buffer)를 어떻게 구현합니까? 가장 오래된 항목이 가득 찼을 때 덮어쓰는 순환 목록을 구현하려면 어떻게 해야 합니까? 약간의 배경을 위해 GWT 내의 순환 리스트를 사용하고 싶기 때문에 서드파티 lib를 사용하는 것은 제가 원하는 것이 아닙니다.C로 표현되는 매우 간단한 구현.원형 버퍼 스타일 FIFO 큐를 구현합니다.대기열 크기, 대기열 데이터 및 대기열에서 추가하거나 제거할 데이터와 함께 전달되는 대기열 인덱스(안으로 또는 밖으로)를 포함하는 구조를 만들어 보다 일반적으로 만들 수 있습니다.그러면 동일한 루틴이 여러 개의 대기열을 처리할 수 있습니다.또한 2의 거듭제곱을 사용하고 코드를 추가로 사용자 지정하면 속도를 높일 수 있지만, 이것은 어떤 크기의 대기열도 허용..

bestsource 2023.11.05

scanf를 사용하여 std:: 문자열로 읽습니다.

scanf를 사용하여 std:: 문자열로 읽습니다. 제목 그대로 스캔프로 C++ 문자열을 읽을 수 있는 방법이 있는지 궁금합니다. 각 문자를 읽고 해당 문자열에 삽입할 수 있다는 것을 알고 있지만 다음과 같은 것을 원합니다. string a; scanf("%SOMETHING", &a); gets()또한 작동하지 않습니다. 미리 감사드립니다!될 수 있습니다. char tmp[101]; scanf("%100s", tmp); string a = tmp; 그 아래에는 어떤 상황도 없습니다.gets()사용됩니다!사용하는 것은 항상 잘못된 것입니다.gets()그리고 C11로부터 제거되고 C++14로부터 제거됩니다. scanf()C++ 클래스를 지원하지 않습니다.그러나 결과를 저장할 수 있습니다.scanf()로std..

bestsource 2023.11.05

소켓 옵션이 리스닝 소켓에서 수락()을 통해 상속됩니까?

소켓 옵션이 리스닝 소켓에서 수락()을 통해 상속됩니까? 청취 소켓이 다음과 같이 전달되었다고 가정합니다.accept기본값이 아닌 옵션이 설정되어 있습니다.setsockopt. 이러한 옵션(일부 또는 전부)이 승인된 연결에 대해 결과 파일 설명자에 의해 상속됩니까?몇 가지 소켓 옵션은 시스템의 하위 레벨에서 처리됩니다.대부분의 소켓 옵션은 setsockopt를 사용하여 설정할 수 있습니다.참조:man setsockopt그리고 당신은 어떤 Linux 상에서도 POSIX만을 언급하고 있기 때문에, 일반적으로 당신의 범위로.accept()(참조:man accept)은 어떤 소켓 옵션을 이어받아야 하는지, 리스닝 fd로부터 어떤 옵션을 거부해야 하는지에 대해 어느 정도의 재량을 가지고 있습니다. accept (..

bestsource 2023.11.05

argv 포인터를 글로벌하게 사용해도 안전합니까?

argv 포인터를 글로벌하게 사용해도 안전합니까? 사용해도 안전한가요?argv전세계 포인터?아니면 무효가 될 수 있는 사정이 있습니까? 즉, 이 코드는 안전합니까? char **largs; void function_1() { printf("Argument 1: %s\r\n",largs[1]); } int main(int argc,char **argv) { largs = argv; function_1(); return 1; } 네, 안전하게 사용할 수 있습니다.argv전세계적으로; 당신은 당신이 사용하는 것처럼 그것을 사용할 수 있습니다.char**당신의 프로그램에서.C99 표준은 다음과 같이 규정하고 있습니다. 매개변수들은argc그리고.argv그리고 그들이 가리키는 끈들은argv배열은 프로그램에 의해 수..

bestsource 2023.11.05

그래픽 드라이버 "헬로 월드" 예시?

그래픽 드라이버 "헬로 월드" 예시? 문 닫았습니다.이 질문은 더 많아야 합니다.집중력이 있는현재 답변을 받지 않고 있습니다. 이 질문을 개선하고 싶으십니까?이 게시물을 편집하여 한 가지 문제에만 초점을 맞추도록 질문을 업데이트합니다. 8년 전에 문을 닫았습니다. 이 질문을 개선합니다. 디스플레이에서 픽셀을 렌더링하는 GPU 드라이버를 만드는 데 필요한 단계는 무엇입니까?기본적으로 화면을 빨간색으로 만들거나 픽셀 하나만 보여주는 것과 같은 GPU 드라이버를 만드는 가장 간단한 "헬로 월드" 예입니다.어디서부터 시작합니까? 저는 C나 OpenGL 추상화나 그 어떤 것도 하지 않고 직접 GPU를 직접 해킹하고 싶습니다.Mac OSX를 사용하고 있는데 Intel HD i7 그래픽 카드가 있는 것 같아서 이 문..

bestsource 2023.10.31

비트 필드에 열거형을 사용해도 안전합니까?

비트 필드에 열거형을 사용해도 안전합니까? 저는 다음과 같은 구조를 가지고 있습니다. typedef struct my_struct{ unsigned long a; unsigned long b; char* c; unsigned int d1 :1; unsigned int d2 :4; unsigned int d3 :4; unsigned int d4 :23; } my_type, *p_type; 필드d3현재 에 의해 정의됩니다.#defines 로부터 뻗는0x00까지0x0D. 정말로.d3는 열거입니다.그래서 교체하고 싶은 유혹이 있습니다. unsigned int d3 :4; 타고 my_enum d3 :4; 이것은 안전한가요? 코드는 다양한 코드로 컴파일해야 합니다. 컴파일러 (GCC, Visual Studio, 내..

bestsource 2023.10.21

C의 stdio에서 int를 받으려면 어떻게 해야 합니까?

C의 stdio에서 int를 받으려면 어떻게 해야 합니까? 나는 이 일에 상당한 곤란을 겪고 있습니다. printf("> "); int x = getchar(); printf("got the number: %d", scanf("%d", &x)); 산출량 > 1234 got the number: 1 이것이 당신이 찾고 있는 것인지 완전히 확신할 수는 없지만, 만약 당신의 질문이 다음을 사용하여 정수를 읽는 방법이라면., 그럼 적절한 구문은 int myInt; scanf("%d", &myInt); 물론 이것이 올바르게 작동하는지 확인하기 위해 많은 오류 처리를 해야 하지만, 이것은 좋은 시작이 될 것입니다.특히, 당신은 그 사건들을 처리할 필요가 있을 것입니다. 그stdin파일이 닫히거나 깨져서 아무것도 얻..

bestsource 2023.10.21

Linux 운영 체제 클래스용 컨텐츠

Linux 운영 체제 클래스용 컨텐츠 저는 이번 학기에 운영체제 수업을 위해 TA를 할 예정입니다.실험실에서는 리눅스 커널을 특별히 다룰 것입니다. 수업에서 리눅스 커널의 어떤 개념/구성요소를 다루는데 가장 중요하다고 생각하십니까? 당신의 공부에서 빠진 것이 무엇이었길 바라나요? 리눅스 커널이나 전반적인 운영체제 설계에 관한 어떤 제안이라도 해주시면 감사하겠습니다.내 목록: 운영 체제의 관심사는 물리적 시스템 및 리소스 관리의 추상화 및 확장입니다. 빌드 프로세스의 작동 방식, 즉 아키텍처별/기계 코드 관련 내용이 주입되는 방식 시스템 호출의 작동 방식 및 모듈 연결 방법 메모리 관리 / 가상 메모리 / 페이징 및 기타 모든 기능 POSIX 및 기타 시스템에서 프로세스가 생성되고, 생성되고, 소멸되는 방..

bestsource 2023.10.16
반응형