반응형

C 35

이 트레이스 시스템 호출은 무엇을 의미합니까?

이 트레이스 시스템 호출은 무엇을 의미합니까? 내가 strace를 사용하고 있는 어플리케이션의 성능을 프로파일링해야 합니다.하지만 저는 스트레이스가 내뿜는 다양한 시스템을 어떻게 해석해야 할지 잘 모르겠습니다.그 중 몇 가지 예는 다음과 같습니다. (A) lseek(3, 1600, SEEK_SET) = 1600 (B) write(3, "G_DATA 300 0 "..., 800) = 800 (C) close(3) = 0 (D) mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b600b179000 (E) munmap(0x2b600b179000, 4096) = 0 (F) fstat(3, {st_mode=S_IFREG|0..

programing 2023.11.05

선언하기 전에 구조를 입력합니다.

선언하기 전에 구조를 입력합니다. 저는 초보자가 아닙니다. 저는 다음의 관용구에 매우 익숙합니다. typedef struct Foo_ Foo;// I know typedef struct Foo Foo is fine, I'm just trying to make it clearer struct Foo_ { int value; Foo *link; }; 저는 단지 갑자기 혼란스러움을 느낄 뿐입니다. 왜냐하면 저는 그것이 선언되기 전에 이름(식별자)을 사용하는 것은 허용되지 않는다는 것을 이해하기 때문입니다.하지만 선언문에는typedef struct Foo_ Foo, 식별기Foo_아직 존재하지 않습니다!컴파일러가 왜 이런 일을 허용하는 거지?누가 이것에 대해 좀 설명해 주세요. 이런 종류의 구문에 대한 이유가 무..

programing 2023.11.05

Eclipse에서 Python Extension 디버깅

Eclipse에서 Python Extension 디버깅 윈도우, OSX, 리눅스에서 성공적으로 구축하여 사용한 파이썬 확장 기능이 있습니다.저는 이제 이 파이썬 확장자를 디버그할 수 있어야 합니다.저는 command line에서 gdb를 사용하는 것을 싫어해서 이클립스에서 이것을 꼭 작동시키고 싶습니다. 우선, 저는 최선을 다해 http://www.heikkitoivonen.net/blog/2008/07/21/debugging-python-extension-written-in-c-with-eclipse/, 의 지시를 따랐고 파이썬 소스의 폴더와 파이썬 확장 코드의 폴더를 소스 폴더로 빈 프로젝트에 추가했습니다.리눅스에서 필요한 모든 것의 디버그 빌드를 비교적 쉽게 얻을 수 있기 때문에 우분투에서의 디버그..

programing 2023.10.31

커널은 리눅스에서 실행 가능한 바이너리 파일을 어떻게 얻습니까?

커널은 리눅스에서 실행 가능한 바이너리 파일을 어떻게 얻습니까? 커널은 리눅스에서 실행 가능한 바이너리 파일을 어떻게 얻습니까? 간단한 질문 같지만, 누구든 제가 깊게 파도록 도와줄 수 있나요?파일을 메모리에 로드하는 방법과 실행 코드를 시작하는 방법은 무엇입니까? 누가 나를 도와서 상황을 차근차근 말해줄 수 있습니까?최고의 순간들exec0 Linux 4.0에서 이 모든 것을 알아내는 가장 좋은 방법은 GDB 단계에서 QEMU로 커널을 디버그하는 것입니다. GDB와 QEMU로 리눅스 커널을 디버그하는 방법은 무엇입니까? fs/exec.c시스템 호출을 정의합니다.SYSCALL_DEFINE3(execve 다음으로 간단히 전달do_execve. do_execve 전달 대상do_execveat_common. d..

programing 2023.10.26

C 스트링에서 첫 번째 캐릭터를 제거하는 방법?

C 스트링에서 첫 번째 캐릭터를 제거하는 방법? 누가 저를 도와주실 수 있습니까?첫 번째 캐릭터를 제거해야 합니다.char *주식회사. 예를들면,char * contents가 들어있습니다.'\n'배열의 첫 번째 문자로서 문자.이 문자를 탐지하고 제거해야 합니다. 원래 변수를 "위생"한 후 수정해야 합니다. 암호를 푸는 것을 도와줄 사람?저는 C를 완전히 처음 접했는데 도저히 이해할 수가 없는 것 같습니다.if (contents[0] == '\n') memmove(contents, contents+1, strlen(contents)); 또는 포인터를 수정할 수 있는 경우: if (contents[0] == '\n') contents++; char* contents_chopped = contents + 1;..

programing 2023.10.26

C/C++의 더블을 통해 운반할 때 Float의 보존이 보장됩니까?

C/C++의 더블을 통해 운반할 때 Float의 보존이 보장됩니까? IEEE-754 적합성을 가정할 때, 이중으로 운반할 때 플로트는 반드시 보존되어야 합니까? 즉, 다음과 같은 주장은 항상 충족될 것인가요? int main() { float f = some_random_float(); assert(f == (float)(double)f); } 라고 가정합니다.fNaN 및 인피니티와 같이 IEEE에서 정의한 특수 값을 획득할 수 있습니다. IEEE에 따르면, 이중을 통한 전송 후 정확한 비트 레벨 표현이 보존되지 않는 경우가 있습니까? 코드 조각은 C와 C++에서 모두 유효합니다.IEEE를 가정할 필요도 없습니다.C89는 3.1.2.5에서 다음과 같이 말합니다. 유형의 값 집합float는 유형의 값 집합..

programing 2023.10.26

DDD(Data Display Debugger)의 좋은 유닉스 대안은 무엇입니까?

DDD(Data Display Debugger)의 좋은 유닉스 대안은 무엇입니까? 문 닫았습니다.이 질문은 책, 도구, 소프트웨어 라이브러리 등에 대한 권장 사항을 찾고 있습니다.충족되지 않습니다.스택 오버플로 지침.현재 답변을 받지 않고 있습니다. 책, 도구, 소프트웨어 라이브러리 등에 대한 추천을 구하는 질문은 허용하지 않습니다.질문을 편집하여 사실과 인용으로 답변할 수 있습니다. 3년전에 문을 닫았습니다. 이 질문을 개선합니다. 저는 vim을 이용한 con linux와 ddd를 이용한 debugging을 개발하고 있습니다.하지만 저는 ddd가 이 기계에서 스크롤 성능이 매우 나쁘기 때문에 때때로 사용하기가 매우 답답하다고 생각합니다. 저는 ddd가 gdb 명령 세트에 상당히 가깝게 매핑되는 방식을 ..

programing 2023.10.21

로컬, 전역, 정적, 자동, 레지스터, 외부, 상수 및 휘발성 변수는 어디에 저장됩니까?

로컬, 전역, 정적, 자동, 레지스터, 외부, 상수 및 휘발성 변수는 어디에 저장됩니까? 로컬, 전역, 정적, 자동, 레지스터, 외부, 상수 및 휘발성 변수는 어디에 저장됩니까? 로컬 변수는 자동인지 정적인지에 따라 스택에 저장하거나 데이터 세그먼트에 저장할 수 있습니다.(자동 또는 정적 중 어느 것도 명시적으로 지정되지 않은 경우 자동으로 가정됨) 전역 변수는 (컴파일러가 최적화할 수 없는 한) 데이터 세그먼트에 저장되며, 선언 시점부터 컴파일 단위의 끝까지 가시성을 갖습니다. 정적 변수는 데이터 세그먼트에 저장되며(컴파일러가 최적화할 수 없는 한) 선언 시점부터 엔클로저 스코프의 끝까지 가시성을 갖습니다.정적이 아닌 전역 변수는 다른 컴파일 단위에서도 볼 수 있습니다(외부 참조). auto 변수는 항..

programing 2023.10.21

비트 와이즈 연산으로 인해 예기치 않은 변수 크기가 발생함

비트 와이즈 연산으로 인해 예기치 않은 변수 크기가 발생함 맥락 우리는 PIC 마이크로컨트롤러용 8비트 C 컴파일러를 사용하여 원래 컴파일된 C 코드를 포팅합니다.부호 없는 전역 변수(예: 오류 카운터)가 0으로 롤오버되는 것을 방지하기 위해 사용된 일반적인 관용구는 다음과 같습니다. if(~counter) counter++; 여기서 비트 와이즈 연산자는 모든 비트를 반전시키고 문장은 다음의 경우에만 참입니다.counter최대값보다 작습니다.중요한 것은 이것이 변수 크기에 상관없이 작동한다는 것입니다. 문제 우리는 이제 GCC를 사용하는 32비트 ARM 프로세서를 목표로 하고 있습니다.우리는 동일한 코드가 다른 결과를 낳는다는 것을 알아냈습니다.우리가 알 수 있는 한, 비트 단위의 보조사 연산은 우리가 ..

programing 2023.10.21

이 알고리즘이 선형입니까?

이 알고리즘이 선형입니까? 다음 두 가지 질문에서 영감을 얻었습니다.문자열 조작: "접미사를 가진 문자열의 유사성"을 계산하고, C에서 I/P 크기가 5 이상 증가함에 따라 프로그램 실행이 달라지며, 다음과 같은 알고리즘을 생각해 냈습니다. 질문은. 맞습니까, 아니면 제가 추리를 잘못한 것입니까? 알고리즘의 최악의 경우 복잡성은 무엇입니까? 먼저 약간의 문맥이 있습니다.두 문자열의 유사성을 두 문자열의 가장 긴 공통 접두사 길이로 정의합니다.문자열의 완전 자기 유사성은 모든 접미사와 s의 유사성의 합입니다.예를 들어, 아바캅의 총 자기 유사성은 6 + 0 + 1 + 0 + 2 + 0 = 9이고, 반복되는 자기 유사성의 총 자기 유사성은n는.n*(n+1)/2. 알고리즘에 대한 설명:이 알고리즘은 문자열의 ..

programing 2023.10.16
반응형