반응형

C 33

IPv4 클라이언트/서버 앱에서 IPv6 지원 추가 - sin6_flowinfo 및 sin6_scope_id 필드?

IPv4 클라이언트/서버 앱에서 IPv6 지원 추가 - sin6_flowinfo 및 sin6_scope_id 필드? 저는 여러 애플리케이션에 대해 IPv6 지원을 구현하는 작업을 하고 있습니다만, 이 두 분야는 무엇을 위한 분야인지 궁금했습니다.여기에 대한 질문이 너무 적어서 제가 제대로 이해했는지 잘 모르겠습니다. 스코프 ID ( )에 대해서 - 음, Q1, Q2, Q3, Q4에 대해서 스코프 ID에 대한 아이디어를 줬는데 이해가 되는 것 같습니다.그래서 scope-id를 구성할 수 있도록 구성 매개 변수를 하나 더 추가해야 합니다. (누군가 관심이 있을 경우를 대비하여 여기에 추가하기로 결정했습니다.짧은 범위 ID는 트래픽을 처리해야 하는 장치를 고유하게 결정하기 위해 필요합니다. 동일한 IP를 가진..

programing 2023.10.09

C에서 구조물의 정적 배열 초기화

C에서 구조물의 정적 배열 초기화 저는 C에서 카드 게임을 구현하고 있습니다.카드에는 여러 가지 유형이 있으며 각 카드에는 개별적으로 관련된 스크립트를 작성해야 하는 몇 가지 작업을 포함한 여러 가지 정보가 있습니다. 이와 같은 구조가 주어졌을 때 (그리고 함수 포인터에 대한 구문 권한을 가지고 있는지 잘 모르겠습니다) struct CARD { int value; int cost; // This is a pointer to a function that carries out actions unique // to this card int (*do_actions) (struct GAME_STATE *state, int choice1, int choice2); }; 이것들의 정적 배열을 카드마다 하나씩 초기화하..

programing 2023.10.04

C(UB를 호출하지 않음)에서 두 개체가 겹치는지 확인할 수 있습니까?

C(UB를 호출하지 않음)에서 두 개체가 겹치는지 확인할 수 있습니까? 두 포인터를 비교할 때, 그 결과는 가리키는 객체의 주소 공간에서의 상대적인 위치에 따라 달라집니다.개체 또는 불완전한 유형에 대한 두 포인터가 둘 다 동일한 개체를 가리키거나 둘 다 동일한 배열 개체의 마지막 요소를 지나 하나를 가리키면 동일한 개체를 비교합니다.가리키는 개체가 동일한 집계 개체의 멤버인 경우 나중에 선언된 구조 구성원에 대한 포인터는 구조의 이전에 선언된 구성원에 대한 포인터보다 크고, 첨자 값이 더 큰 배열 요소에 대한 포인터는 더 낮은 동일한 배열의 요소에 대한 포인터보다 큽니다.동일한 연합 개체의 구성원에 대한 모든 포인터가 동일하게 비교됩니다.식 P가 배열 개체의 요소를 가리키고 식 Q가 동일한 배열 개체의..

programing 2023.10.04

C에서 파일의 전체 내용을 지우려면 어떻게 해야 합니까?

C에서 파일의 전체 내용을 지우려면 어떻게 해야 합니까? user1의 데이터 일부가 포함된 파일이 있습니다.파일 내용을 지워서 user2에 동일한 파일을 사용하고 싶습니다. 제 생각은 새로운 사용자가 왔을 때 이전 사용자의 데이터가 명확해야 하고 새로운 사용자를 위해 같은 파일이 준비되어야 한다는 것입니다.@stefan이 말했듯이fopen()w 모드를 사용하면 작업을 수행할 수 있습니다.w 플래그가 있는 파일을 열면 쓰기 위한 빈 파일이 생성됩니다.같은 이름의 파일이 이미 존재하는 경우 내용이 지워지고 파일은 빈 새 파일로 처리됩니다. 파일이 이미 열려 있으면 사용할 수 있습니다.freopen()stdio에서 기능합니다.h는 "w" 모드로 파일을 먼저 닫고 파일에 있던 것을 삭제하기 위해 다시 엽니다.와..

programing 2023.10.04

정렬된 메모리를 얻을 수 있는 최고의 크로스 플랫폼 방법

정렬된 메모리를 얻을 수 있는 최고의 크로스 플랫폼 방법 여기 내가 Visual Studio와 GCC와 메모리를 정렬할 때 사용하는 코드가 있습니다. inline void* aligned_malloc(size_t size, size_t align) { void *result; #ifdef _MSC_VER result = _aligned_malloc(size, align); #else if(posix_memalign(&result, align, size)) result = 0; #endif return result; } inline void aligned_free(void *ptr) { #ifdef _MSC_VER _aligned_free(ptr); #else free(ptr); #endif } 이 코드는..

programing 2023.10.04

하루 중에 얻는 시간과 동등한 속도로 더 빠른 속도

하루 중에 얻는 시간과 동등한 속도로 더 빠른 속도 각 메시지에 시간 필드가 있는 초당 100개의 메시지를 전송해야 하는 매우 지연 시간에 민감한 애플리케이션을 구축하기 위해 우리는 하루 중 수신 시간을 최적화하는 것을 고려하고 싶었습니다.은 였습니다.rdtsc기반 최적화 있어요?무슨 생각 있어요?다른 포인터가 있습니까? 반환되는 시간 값의 필요한 정확도는 밀리초 단위이지만, 값이 수신기와 1-2밀리초 동안 동기화되지 않는 경우가 있다면 큰 문제가 되지 않습니다.보다 더 62가 걸립니다.포식스 시계 POSIX 클럭 소스에 대한 벤치마크를 작성했습니다. 시간(s) => 3주기 ftime(ms) => 54주기 get time of day (us) => 42 cycle clock_gettime(ns) => 9..

programing 2023.09.24

char* 배열의 C 크기

char* 배열의 C 크기 저는.char*배열: char *tbl[] = { "1", "2", "3" }; 어떻게 사용합니까?sizeof연산자가 배열의 요소 수를 구하는데, 여기 3? 아래는 효과가 있었지만, 맞습니까? int n = sizeof(tbl) / sizeof(tbl[0]) 네. size_t n = sizeof(tbl) / sizeof(tbl[0]) 가장 전형적인 방법입니다 를 사용하는 것에 유의하시기 바랍니다.int배열 크기에 대해서는 최적의 아이디어가 아닙니다.더 짧고 깨끗한 버전은 다음과 같습니다. sizeof tbl / sizeof *tbl :)네, 배열 tb1의 원소 개수를 알려줄 것입니다. int n = sizeof(tbl) / sizeof(tbl[0]) 해석: (tb1)의 크기는 ..

programing 2023.09.24

gcc는 리눅스 ELF에 어떤 기능을 추가합니까?

gcc는 리눅스 ELF에 어떤 기능을 추가합니까? c(또는 asm)에서 hello-world와 같은 프로그램을 링크할 때gcc결과 실행 가능한 객체 파일에 몇 가지를 추가할 것입니다.저는 런타임 다이나믹 링커에 대해서만 알고 있습니다._start진입점인데 이 추가된 기능의 종류는 무엇입니까? 00000000004003f0 t deregister_tm_clones 0000000000400430 t register_tm_clones 0000000000400470 t __do_global_dtors_aux 0000000000400490 t frame_dummy 00000000004004e0 T __libc_csu_init 0000000000400550 T __libc_csu_fini 00000000004005..

programing 2023.09.24

C 및 C++ 포인터 표기에서 별을 넣을 위치

C 및 C++ 포인터 표기에서 별을 넣을 위치 이 질문에는 이미 다음과 같은 답변이 있습니다. 닫힘10년 전에. 중복 가능: C/C++에서 포인터 변수를 선언하는 올바른 방법 한동안 다음이 짜증이 났었는데, 제 포인터 표기법에 별을 어디에 넣어야 할까요? int *var; // 1 그리고. int* var; // 2 분명히 같은 일을 하고, 두 표기법 모두 정확하지만, 제가 보는 대부분의 문헌과 코드는 첫 번째 표기법을 사용합니다. 타입과 변수 토큰을 혼용하는 것보다 타입과 변수명을 공백으로 구분하여 2번째 표기법을 사용하는 것이 '올바른' 것이 아닐까요?아니요. 절대로. 그러나 다음을 고려합니다. int* var1, var2; 여기, 그 위치는*오해의 소지가 있습니다. 왜냐하면 그것은 적용되지 않기 때..

programing 2023.09.24

프리드가 EOF에 일찍 도달하는 이유는 무엇입니까?

프리드가 EOF에 일찍 도달하는 이유는 무엇입니까? 파일을 메모리에 읽어주는 C 라이브러리를 쓰고 있습니다.파일의 처음 54바이트(헤더)를 건너뛰고 나머지를 데이터로 읽습니다.fseek을 사용하여 파일의 길이를 결정한 다음 fread를 사용하여 파일을 읽습니다. EOF에 도달했기 때문에 루프가 한 번 실행된 다음 종료됩니다(오류 없음).마지막에 바이트Read = 10624, ftell(stream) = 28726이며 버퍼는 28726 값을 포함합니다.EOF에 도달하면 fread는 30,000바이트를 읽고 파일 위치는 30054가 될 것으로 예상합니다. C는 제 모국어가 아니라서 어딘가 바보 같은 초보자 실수가 있는 것 같습니다. 코드는 다음과 같습니다. const size_t headerLen = 54;..

programing 2023.09.19
반응형