반응형

c 78

Linux의 기본 GUI API란?

Linux의 기본 GUI API란? 윈도(Win32 API)와 OS X(Cocoa)는 모두 창, 이벤트, 기타 OS 사물을 처리할 수 있는 자체 API를 가지고 있다.리눅스의 등가물이 무엇인지에 대한 명확한 답을 들은 적이 없다. 몇몇 사람들은 GTK+라고 하지만 GTK+는 크로스 플랫폼이라고 말한다.어떻게 토착이 될 수 있을까?Linux에서 그래픽 사용자 인터페이스는 운영 체제의 일부가 아니다.대부분의 Linux 데스크톱에서 찾을 수 있는 그래픽 사용자 인터페이스는 X Window 시스템이라고 불리는 소프트웨어에 의해 제공되며, 이 소프트웨어는 화면, 키보드 및 포인터 장치를 처리하는 장치 독립적 방법을 정의한다. X Window는 통신을 위한 네트워크 프로토콜과 이 프로토콜이 그것을 사용할 수 있는 ..

Programing 2022.05.25

Java에서 c 함수 호출

Java에서 c 함수 호출 자바에서 c 함수를 호출하는 방법.c는 컴파일러 기반인 것 같아 자바에서 윈도 C기능을 호출하고, 자바에서도 GCC기능을 호출하고 싶다. 참고할 만한 게 있나?Java 기본 인터페이스를 살펴보십시오. 시작하기. 2.1 개요 [...] C 함수를 호출하여 "Hello World!"를 인쇄하는 간단한 Java 애플리케이션을 작성한다.프로세스는 다음 단계로 구성된다. 네이티브 메서드를 선언하는 클래스(HelloWorld.java)를 만드십시오.javaclu.docling helloWorld 소layling helloWorld.classmissi를 한다.Javac 컴파일러는 JDK 또는 Java 2 SDK 릴리즈와 함께 제공된다.사용하다javah -jniC 헤더 파일을 생성하려면(He..

Programing 2022.05.24

포인터 유효성 테스트(C/C++)

포인터 유효성 테스트(C/C++) 주어진 포인터가 "유효한"지 (물론 프로그램적으로) 판단할 수 있는 방법이 있는가?NULL 확인은 쉽지만 0x00001234 같은 것은?이러한 종류의 포인터를 무시하려고 할 때 예외/충돌이 발생한다. 크로스 플랫폼 방식이 선호되지만 플랫폼별(윈도우즈·리눅스용)도 괜찮다. 자세한 내용을 보려면 업데이트:문제는 케케묵은/자유로운/비정규화된 포인터가 아니라, 발신자로부터 포인터를 가져가는 API를 구현하고 있다(예: 문자열의 포인터, 파일 핸들 등).발신자는 (목적 또는 실수로) 잘못된 값을 포인터로 보낼 수 있다.충돌을 방지하려면 어떻게 해야 하는가?리눅스 산하 C 프로그램이 실행되고 있는 메모리의 상태와 질문이 왜 어떤 맥락에서 적절한 정교한 해답을 가지고 있는지에 대해 ..

Programing 2022.05.24

C 및 C++에서 f()와 f(void)의 차이를 한 번, 그리고 전체적으로 이해

C 및 C++에서 f()와 f(void)의 차이를 한 번, 그리고 전체적으로 이해 좋아, 그래서 나는 이 주제에 대해 다른 의견을 들어봤고 내가 정확히 이해했는지 확인하고 싶어. C++의 경우 선언void f();그리고void f(void);정확히 같은 것을 의미하는데,f매개 변수를 사용하지 마십시오.정의를 위한 디토. C의 경우 언void f(void);라는 뜻이다.f매개 변수를 사용하지 마십시오. 언void f();그 함수를 의미한다.f매개변수가 있을 수도 있고 없을 수도 있으며, 매개변수가 있을 경우 매개변수의 종류 또는 개수를 알 수 없다.줄임표와 같지 않으므로 사용할 수 없음va_list. 이제 이곳이 흥미로운 곳이다. 사례 1 선언: void f(); 정의: void f(int a, int b..

Programing 2022.05.24

링크된 목록에 노드를 추가할 때 이중 포인터를 사용하는 이유는?

링크된 목록에 노드를 추가할 때 이중 포인터를 사용하는 이유는? 아래의 두 코드 예는 모두 링크된 목록의 맨 위에 노드를 추가한다.그러나 첫 번째 코드 예는 이중 포인터를 사용하는 반면 두 번째 코드 예는 단일 포인터를 사용한다. 코드 예제 1: struct node* push(struct node **head, int data) { struct node* newnode = malloc(sizeof(struct node)); newnode->data = data; newnode->next = *head; return newnode; } push(&head,1); 코드 예제 2: struct node* push(struct node *head, int data) { struct node* newnode =..

Programing 2022.05.23

C 컴파일러가 정렬 패딩을 제거하기 위해 구조 부재를 재배열할 수 없는 이유는?

C 컴파일러가 정렬 패딩을 제거하기 위해 구조 부재를 재배열할 수 없는 이유는? 이 질문에는 이미 다음과 같은 해답이 있다. 닫힌10년 전. 중복 가능: GCC가 구조를 최적화하지 않는 이유는? C++가 구조를 더 촘촘하게 만들지 않는 이유는? 32비트 x86 기계에서 다음 예를 들어 보십시오. 선형 제약으로 인해 다음 구조 struct s1 { char a; int b; char c; char d; char e; } 멤버가 다음과 같이 재주문된 경우 더 많은 메모리가 저장됨(12바이트 대 8바이트)을 나타낼 수 있다. struct s2 { int b; char a; char c; char d; char e; } 나는 C/C++ 컴파일러가 이것을 할 수 없다는 것을 알고 있다.내 질문은 왜 그 언어가 이..

Programing 2022.05.23

공통 데이터 구조를 가진 오픈 소스 C 라이브러리가 있는가?

공통 데이터 구조를 가진 오픈 소스 C 라이브러리가 있는가? 현재 상태로는 이 질문은 우리의 Q&A 형식에 적합하지 않다.우리는 답변이 사실, 참고자료 또는 전문지식으로 뒷받침되기를 기대하지만, 이 질문은 토론, 논쟁, 투표, 또는 연장된 토론을 요구할 것이다.만약 이 질문이 개선되고 다시 열릴 수 있다고 느낀다면안내를 받으러 안내소를 방문하다 닫힌9년 전. 링크된 목록, 해시 테이블 등 공통의 재사용 가능한 데이터 구조를 가진 C 라이브러리를 찾고 있다.카일 라우든이 C(Paperback)를 사용한 마스터링 알고리즘으로 배포한 소스 같은 것.BSD 대기열.h h has: SLIST = 단독 링크된 목록 LIST = 이중으로 연결된 목록 SUPLEQ = 단독 연결된 대기열 TAILQ = 이중으로 연결된 ..

Programing 2022.05.22

우리 리눅스 앱에서 libc(glibc)의 역할은?

우리 리눅스 앱에서 libc(glibc)의 역할은? 다음을 사용하여 프로그램을 디버그할 때gdb, 우리는 보통 이상한 이름을 가진 기능들을 본다.libc(glibc?). 나의 질문은 다음과 같다. 이다libc/glibc다음과 같은 일부 표준 C/C++ 기능의 표준 구현strcpy,strlen,malloc? 아니면, 위에서 설명한 최초의 용법뿐만 아니라 다음과 같은 Unix/Linux 시스템 호출의 래퍼에 해당하는가?open,close,fctl?그렇다면 왜 syscall을 직접 발행할 수 없는가?libc? 한다libc하나의 lib로만 구성된다(.a또는.so) 파일 또는 많은 lib 파일(이 경우,libc이 libs의 총칭은 libs)인가?lib 파일이 있는 위치 와의 차이점은 무엇인가?libc그리고glib..

Programing 2022.05.22

C 및 C++ 프로젝트에 포함/디렉토리를 만드는 이유는?

C 및 C++ 프로젝트에 포함/디렉토리를 만드는 이유는? 내가 개인 C와 C++ 프로젝트를 할 때 나는 보통 넣는다.file.h그리고file.cpp 은색에.file.cpp참조할 수 있다file.hA과 함께#include "file.h"지시의 그러나, 모든 것이 있는 도서관이나 다른 종류의 프로젝트들 (Linux 커널이나 freeRTOS와 같은)을 찾는 것이 일반적이다..h파일이 안에 배치됨include/).cpp파일은 다른 디렉토리에 남아있다.그 프로젝트들에서는.h에 되어 있다.#include "file.h"대신에#include "include/file.h"내가 바라던 대로 이 모든 것에 대해 몇 가지 궁금한 점이 있다. 이 파일 구조 조직의 장점은 무엇인가? 왜 그럴까?.h안에 있는 파일include/..

Programing 2022.05.21

"memcpy"로 2D 어레이를 복사하는 것이 기술적으로 정의되지 않은 동작인가?

"memcpy"로 2D 어레이를 복사하는 것이 기술적으로 정의되지 않은 동작인가? 이 최근 질문에 대한 논평에서 흥미로운 토론이 벌어졌다.지금은 그곳의 언어가 C이지만, 다음과 같은 함수를 이용하여 다차원 배열의 요소에 접근할 때 정의되지 않은 행동을 구성하는 것이 무엇인지를 놓고 C++ 표준이 지정하는 것으로 논의가 표류해 왔다.std::memcpy. 하여 C++로 있다const가능한 경우: #include #include void print(const int arr[][3], int n) { for (int r = 0; r < 3; ++r) { for (int c = 0; c < n; ++c) { std::cout

Programing 2022.05.20
반응형