c 56

열거형 내에서 이러한 #정의의 목적은 무엇입니까?

열거형 내에서 이러한 #정의의 목적은 무엇입니까? 리눅스 헤더에서 /usr/include/distent 코드를 찾았습니다.h: enum { DT_UNKNOWN = 0, # define DT_UNKNOWN DT_UNKNOWN DT_FIFO = 1, # define DT_FIFO DT_FIFO DT_CHR = 2, # define DT_CHR DT_CHR DT_DIR = 4, # define DT_DIR DT_DIR DT_BLK = 6, # define DT_BLK DT_BLK DT_REG = 8, # define DT_REG DT_REG DT_LNK = 10, # define DT_LNK DT_LNK DT_SOCK = 12, # define DT_SOCK DT_SOCK DT_WHT = 14 # define..

programing 2023.10.14

C에서 stdout을 덮어쓰는 방법

C에서 stdout을 덮어쓰는 방법 대부분의 최신 셸에서는 위/아래 화살표를 누를 수 있으며, 실행한 이전 명령이 프롬프트에 표시됩니다.제 질문은, 이게 어떻게 작동하는 거죠? 셸이 이미 작성한 내용을 덮어쓰기 위해 stdout을 어떻게든 조작하고 있는 것 같습니다. 우리와 같은 프로그램들도 이것을 한다는 것을 알고 있습니다.그들이 어떻게 하는지 아는 사람?stdout을 조작하는 것이 아니라 단말기에 이미 표시된 문자를 덮어쓰는 것입니다. 시도해 보기: #include #include static char bar[] = "=======================================" "======================================>"; int main() { int i;..

programing 2023.10.14

강한 포인터와 약한 포인터는 무엇입니까?

강한 포인터와 약한 포인터는 무엇입니까? 저는 "강한 포인터"와 "약한 포인터"라는 개념에 혼란스럽습니다.다이앤 핵본 자신은 이렇게 말했습니다. 오브젝트는 강력한 포인터가 있는 동안 주변에 남아 있습니다. 마지막 포인터가 해제되면 소멸됩니다.약한 포인터로 할 수 있는 것은 비교와 강한 포인터로 승격을 시도하는 것뿐입니다. 오브젝트에 다른 강한 포인터가 없으면 후자는 실패합니다. 그것은 나에게 꽤 불분명합니다.가까)와 같습니까? (boost::공유 포인터?그리고 단지 강력한 포인터로 자신을 홍보하려는 시도가 있다면 약한 포인터의 역할은 무엇일까요?약하고 강한 포인터가 필요할 때가 언제일까요? 업데이트: 의 커널 만인 에 sp그리고.wp , . 기본적으로 저는 여기 http://www.androidenea...

programing 2023.10.14

리눅스 커널 버전을 확인할 수 있는 매크로 정의가 있습니까?

리눅스 커널 버전을 확인할 수 있는 매크로 정의가 있습니까? 제가 변수 타입을 적절하게 설정할 수 있도록 리눅스 커널 버전을 알려줄 gcc 매크로가 있는지 궁금합니다.그렇지 않다면 이렇게 하는 매크로를 어떻게 정의해야 합니까?linux/version.h 파일에 다음이라는 매크로가 있습니다.KERNEL_VERSION현재 Linux 헤더 버전과 비교하여 원하는 버전을 확인할 수 있습니다 (LINUX_VERSION_CODE)을 설치.현재 Linux 헤더가 커널 v2.6.16 이전 버전에 대한 것인지 확인하는 예: #include #if LINUX_VERSION_CODE release; 이것은 본질적으로 어떻게./proc/version현재 커널 버전을 가져옵니다. 참고 항목 런타임에 Linux 커널 모듈에서 커..

programing 2023.10.14

부동 소수점의 가변 수를 인쇄

부동 소수점의 가변 수를 인쇄 다음과 같이 종단되지 않은 고정 길이 문자열을 인쇄할 수 있는 흥미로운 형식을 발견했습니다. char newstr[40] = {0}; sprintf(newstr,"%.*s", sizeof(mystr), mystr); 그래서 아마도 printf 명령에 따라 플로트 번호를 인쇄하는 방법이 있을 것 같습니다. "%8.2f" 정수를 가진 소수점의 수를 선택할 수 있는 능력을 갖습니다. 이와 같은 것: sprintf(mystr, "%d %f", numberofdecimals, floatnumbervalue) 사용할 수도 있습니다.".*"부동 소수점의 경우 http://www.cplusplus.com/reference/cstdio/printf/ 도 참조하십시오(refers에서 C++로..

programing 2023.10.09

파라미터로 외부 프로그램을 호출하는 방법은?

파라미터로 외부 프로그램을 호출하는 방법은? 코드 자체 내에서 매개변수가 결정된 내 코드 내 윈도우 프로그램을 호출하고 싶습니다. 외부 기능이나 메서드를 호출하는 것이 아니라 WinXP 환경 내의 실제 .exe 또는 batch/script 파일을 호출하려고 합니다. C 또는 C++가 선호되는 언어이지만 다른 언어(ASM, C#, Python 등)에서 더 쉽게 할 수 있다면 알려주세요.CreateProcess(), System() 등을 호출할 때 파일 이름 및/또는 정규화된 경로에 공백이 있는 경우 파일 이름 문자열(명령 프로그램 파일 이름 포함)을 이중으로 따옴표로 지정해야 합니다. 그렇지 않으면 파일 이름 경로의 일부가 명령 인터프리터에 의해 별도의 인수로 구문 분석됩니다. system("\"d:som..

programing 2023.10.09

난수 생성을 시드하는 데 시간을 사용하는 대안이 있습니까?

난수 생성을 시드하는 데 시간을 사용하는 대안이 있습니까? 여러 개의 코드 인스턴스(2000개 정도의 인스턴스)를 컴퓨팅 클러스터에서 동시에 실행하려고 합니다.작업을 제출하면 클러스터에서 노드가 자주 열리므로 노드당 여러 개의 작업이 수행됩니다.이 값은 타임 시드를 사용하는 랜덤 숫자 생성에서 많은 인스턴스에 대해 동일한 값을 생성하는 것으로 보입니다. 대신 사용할 수 있는 간단한 대안이 있습니까?재현성과 보안은 중요하지 않고, 독특한 씨앗을 빠르게 생성하는 것이 중요합니다.이를 위한 가장 간단한 접근법은 무엇이며, 가능하다면 크로스 플랫폼 접근법이 좋을 것입니다. rdtsc명령어는 상당히 신뢰할 수 있는 (그리고 무작위적인) 씨앗입니다. 에서는를 수 .__rdtsc() GNUC에서는 다음을 통해 액세스..

programing 2023.10.09

Win32 API를 사용하여 USB 드라이브를 안전하게 제거하시겠습니까?

Win32 API를 사용하여 USB 드라이브를 안전하게 제거하시겠습니까? Win32 API를 사용하여 USB 드라이브를 제거하려면 어떻게 해야 합니까?저는 임베디드 시스템에서 많은 일을 하는데, 그 중 하나에서 USB 스틱에 프로그램을 복사하여 대상 하드웨어에 삽입해야 합니다. 저는 주로 콘솔 작업을 하기 때문에 마우스를 사용하고 하루에 작은 작업 표시줄 아이콘을 100번 클릭하는 것을 좋아하지 않습니다. 나는 그것을 내 makefile에 넣을 수 있도록 정확히 하기 위해 작은 프로그램을 작성하고 싶지만, 나는 같은 작업을 하는 API 호출을 찾지 못했습니다. 무슨 생각 있어요?사용할 수 있습니다.CM_Request_Device_Eject()기능은 물론 다른 가능성도 있습니다.다음 프로젝트 및 기사 참조..

programing 2023.10.09

정적 라이브러리에서 __attribute__((구성자))가 작동하지 않는 이유는 무엇입니까?

정적 라이브러리에서 __attribute__((구성자))가 작동하지 않는 이유는 무엇입니까? 다음 예제에서 프로그램은 인쇄해야 합니다."foo called\n": // foo.c #include __attribute__((constructor)) void foo() { printf("foo called\n"); } // main.c int main() { return 0; } 이렇게 프로그램이 컴파일되면 다음과 같이 작동합니다. gcc -o test main.c foo.c 그러나 fo.c가 정적 라이브러리로 컴파일되면 프로그램은 아무것도 인쇄하지 않습니다. gcc -c main.c gcc -c foo.c as rcs foo.a foo.o gcc -o test foo.a main.o 왜 이런 일이 일어날까..

programing 2023.10.04

C의 기본 생성자

C의 기본 생성자 구조로 정의된 C 사용자 유형에 대해 일종의 기본 생성자(예: C++)를 가질 수 있는 방법이 있습니까? 와 같은 : 에)를pthread_mutex시 수 하지만 저는 여러분이 선언문에 어떤 구조의 일부(또는 모든) 필드를 채울 수 있는지 알고 싶었습니다. 를 들면 .pthread_mutex를 들어어,는을 . pthread_mutex_t my_mutex; 와 같은 효과를 가지다 pthread_mutex_t my_mutex = PTHREAD_MUTEX_INITIALIZER; 구조물에 포인터를 가져다 주는 이니셜라이저 함수를 만들 수 있습니다.이것은 일반적인 관례였습니다. 또한 구조물을 생성하고 초기화하는 기능(공장과 같이) - 구조물이 "클라이언트" 코드에서 "초기화되지 않은" 경우는 없습..

programing 2023.10.04