반응형

C 31

C 프로젝트 기본 디렉토리 레이아웃이 있습니까?

C 프로젝트 기본 디렉토리 레이아웃이 있습니까? C 프로젝트의 기본 디렉토리 레이아웃이 있는지 항상 알고 싶었습니다.어떤 폴더에 어떤 파일 등을 넣어야 하는지 알고 있습니다. 그래서 SourceForge에서 프로젝트의 소스코드를 많이 다운받았는데 모두가 서로 달랐습니다.일반적으로 다음과 같은 구조를 발견했습니다. /project (root project folder, has project name) | |____/bin (the final executable file) | | |____/doc (project documentation) | | | |____/html (documentation on html) | | | |____/latex (documentation on latex) | | |____/s..

programing 2023.11.06

constint main = 195는 작동 프로그램을 생성하지만 constint가 없으면 segmentation fault로 끝나는 이유는 무엇입니까?

constint main = 195는 작동 프로그램을 생성하지만 constint가 없으면 segmentation fault로 끝나는 이유는 무엇입니까? C 프로그램을 따르는 것을 고려합니다(여기 라이브 데모 참조). const int main = 195; 현실 세계에서 이런 코드를 쓰는 프로그래머는 없다는 것을 알고 있습니다. 유용한 목적도 없고 말도 안 되기 때문입니다.하지만 내가 제거할 때는const프로그램 위에서 키워드를 입력하면 바로 세그멘테이션 오류가 발생합니다. 왜죠?나는 이것의 배후에 있는 이유를 알고 싶습니다. GCC 4.8.2는 이를 컴파일할 때 다음과 같은 경고를 제공합니다. 경고: 'main'은 일반적으로 [-Wmain] 함수입니다. const int main = 195; ^ 존재와 ..

programing 2023.11.01

libfoo.so .1과 같은 라이브러리 이름이 지정된 전체 파일 경로는 어떻게 찾을 수 있습니까?

libfoo.so .1과 같은 라이브러리 이름이 지정된 전체 파일 경로는 어떻게 찾을 수 있습니까? 링커를 구현하지 않거나 사용하지 않음ldd, 도서관으로 가는 모든 길을 어떻게 찾을 수 있습니까?리눅스에서 사용할 수 있는 표준 라이브러리가 있습니까? (POSIX 가능성이 있습니까?) 사용.ldd그리고.grep사용 중인 파일에libGL.so.1, 다음과 같습니다. $ ldd /usr/bin/glxinfo | grep libGL libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f34ff796000) 예를 들어, 도서관 이름을 지정하면 어떻게 전체 경로를 찾을 수 있습니까?32비트 및 64비트 라이브러리 찾기 옵션을 수락하는 것이 좋습니다.만약 어떤 도서관도 그렇게 하지 않는다면,..

programing 2023.11.01

-static-libgcc -static-libstdc++를 사용하여 컴파일해도 여전히 libc.so 에 대한 동적 종속성이 발생합니다.

-static-libgcc -static-libstdc++를 사용하여 컴파일해도 여전히 libc.so 에 대한 동적 종속성이 발생합니다. 가능한 한 휴대가 가능한 실행 파일을 만들려고 합니다.몇 가지 종속성을 제거한 후, 다른 시스템에서 바이너리를 실행할 때 다음을 보게 되었습니다. /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.15' not found (required by foob) /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found (required by foob) /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required..

programing 2023.11.01

평원 C에서 UTF-8을 탐지하는 방법은?

평원 C에서 UTF-8을 탐지하는 방법은? 나는 주어진 문자열이 UTF-8 인코딩임을 감지하는 평이한 오래된 C에서 코드 스니펫을 찾고 있습니다.regex로 해결하는 방법은 알고 있지만, 여러 가지 이유로 이 경우에는 일반적인 C 이외의 것은 사용하지 않는 것이 좋을 것 같습니다. regex를 사용하는 솔루션은 다음과 같습니다(경고: 다양한 검사 생략). #define UTF8_DETECT_REGEXP "^([\x09\x0A\x0D\x20-\x7E]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\x..

programing 2023.10.27

플록 (): 레이스 조건 없이 잠긴 파일 제거?

플록 (): 레이스 조건 없이 잠긴 파일 제거? flock()을 사용하여 mutexes라는 이름의 프로세스 간에 잠금을 설정합니다(즉, 일부 프로세스는 some_name이라는 이름의 파일을 임시 디렉토리에 잠그는 방식으로 구현됩니다). lockfile = "/tmp/some_name.lock"; fd = open(lockfile, O_CREAT); flock(fd, LOCK_EX); do_something(); unlink(lockfile); flock(fd, LOCK_UN); 임시 디렉터리가 수백 개의 파일로 채워지지 않도록 잠금 파일은 어느 시점에서 제거해야 합니다. 그러나 이 코드에는 분명한 레이스 조건이 있습니다. 프로세스 A, B 및 C의 경우: A opens file A locks file B..

programing 2023.10.27

editline/history.h 및 editline/readline.h를 찾을 수 없음/이미 설치된 개발자 도구로 컴파일하려고 할 때 macOS에서 작동함

editline/history.h 및 editline/readline.h를 찾을 수 없음/이미 설치된 개발자 도구로 컴파일하려고 할 때 macOS에서 작동함 저는 독자적인 LISP(http://www.buildyourownlisp.com/chapter4_interactive_prompt) 를 구축하기 위한 이 자습서를 작성하고 있는데, 어떤 이유에서인지 컴파일을 시도하면 다음과 같은 내용이 나옵니다. REPL.c:4:10: fatal error: 'editline/readline.h' file not found #include ^ 1 error generated. macOS 개발자 도구를 설치했는데, brew는 readline이 설치되어 있고 brew install editline을 시도하면 어떻게 해야..

programing 2023.10.27

더 작은 배당과 더 큰 분배의 모듈러스는 어떻게 작동합니까?

더 작은 배당과 더 큰 분배의 모듈러스는 어떻게 작동합니까? 7 % 3 = 1 (remainder 1) 어쩌죠? 3 % 7(remainder?) 일?나머지 3/7은 3..나머지 3개로 0번을 했기 때문에 3%7 = 37은 3에 들어가는 거야? 0번이고 3번 남았어요. 몫은 0입니다.나머지(modulus)는 3입니다.개념적으로 저는 이렇게 생각합니다.정의에 따라 배당금은 다음과 같아야 합니다.(quotient * divisor) + modulus 또는 모듈러스에 대한 풀이:modulus = dividend - (quotient * divisor) 배당금이 분배수보다 적을 때마다, 몫은 항상 0이고, 모듈러스는 단순히 배당금과 같아집니다. OP 값으로 설명하기 modulus of 3 and 7 = 3 - (..

programing 2023.10.27

컴파일 시 스택 사용량 확인

컴파일 시 스택 사용량 확인 C에서 컴파일 시간에 함수가 필요로 하는 스택 크기를 알고 출력할 수 있는 방법이 있습니까? 여기 제가 알고 싶은 것은 다음과 같습니다. 몇 가지 기능을 사용해 보겠습니다. void foo(int a) { char c[5]; char * s; //do something return; } 이 함수를 컴파일할 때 호출할 때 스택 공간을 얼마나 소모하는지 알고 싶습니다.이것은 큰 버퍼를 숨기는 구조의 온스택 선언을 탐지하는 데 유용할 수 있습니다. 다음과 같은 것을 인쇄할 수 있는 것을 찾고 있습니다. : 은 file fo.c : function fo stack n바이트들 생성된 어셈블리를 보지 않고 그것을 알 수 있는 방법이 있습니까? 또는 컴파일러에 대해 설정할 수 있는 제한이..

programing 2023.10.27

C의 매크로 범위?

C의 매크로 범위? 이러한 매크로는 어떻게 평가됩니까? # define i 20 void fun(); int main(){ printf("%d",i); fun(); printf("%d",i); return 0; } void fun(){ #undef i #define i 30 } 생산량은 2020년과 같으나 반면, # define i 20 void fun(){ #undef i #define i 30 } int main(){ printf("%d",i); fun(); printf("%d",i); return 0; } 출력은 3030입니다.설명해주세요.감사해요.C Preprocessor는 함수 호출에 관계없이 위에서 아래로 작동합니다.매크로가 정의된 파일의 해당 지점(행)부터 해당될 때까지 유효합니다.undef..

programing 2023.10.22
반응형