프로그래밍 QnA

ssobranss의 이미지

file-mapped memory에서 stl 컨테이너 같은 것들을 동작하게 할 수 있을까요?

1년전쯤에 생각해보다가 관뒀는데 다시 필요하게 됐네요.

구체적으로 무슨 뜻이냐하면

windows를 기준으로

프로그램간 메모리 공유를 할때 file-mapped memory를 쓰곤하잖아요.

MapViewOfFile 함수를 통해 메모리의 포인터를 구하는데 문제는 이 포인터가

함수를 호출할때마다 달라집니다. 그리고 서로 다른 프로그램에서 같은 객체를 대상으로 MapViewOfFile을 호출해도 서로 다른 포인터가 반환됩니다.

그래서 file-mapped memory내에 해당 메모리의 어떤 지점을 나타내는 포인터를 기억해놓고 사용하는건 안되죠.

대신 오프셋을 사용해서 액세스해야합니다.

문제는 이렇게 오프셋을 사용하면 file-mapped memory에 stl 컨테이너 같은 것들을 할당할 수 없습니다.

얘를들어 vector만 하더라도 메모리의 시작 포인터를 기억해놓고 그걸 바탕으로 iterator도 리턴하고 v[0],v[1] 이런 것들의 포인터도 계산하죠.

hwanikani의 이미지

[완료] C에서 struct definition에 관한 질문입니다.

제가 알기로는 같은 이름의 definition은 무조건 한개만 존재할수 있다고 들었습니다 (같은 scope일때).

예를들어 a.c와 b.c파일이 있다고 볼때

a.c에 int a = 1;
b.c에 int a = 2; 라고 중복되면 에러가 뜨죠 (fatal error LNK1169: one or more multiply defined symbols found).

근데 신기하게 struct definition은 중복에러가 뜨질 않더라구요.
물론 한 파일 내에서 같은 tag로 구조체 선언을 두번 하면 에러가 뜹니다 (error C2011: 'test' : 'struct' type redefinition)

근데
a.c에 struct test { int a; };
b.c에 struct test { int b; int c;};같이

같은 tag로 여러 파일에 구조체 정의를 해도 전혀 에러가 안뜨더라구요 - _-;;;
그 결과 여러 파일에서 같은 구조체 tag가 전혀 다른 definition으로 해석될수 있는 상황이...

rosicky의 이미지

이클립스 워크벤치 브랜딩 (커스터마이징) 과 관련해서 궁금한 점이 있습니다.

안녕하세요~

최근 이클립스를 기반으로 한 제품을 작성해보고자 책을 봐가면서 열심히 공부중입니다.

이클립스를 실행시키면, 최초 실행되는 개발용 워크벤치 (호스트 워크벤치) 의 타이틀 바를

수정하고자,

plugin 디렉토리의 org.eclipse.platform_xxx(버전) 에 있는 plugin.xml 을 수정해보았는데요,

이렇게 바꿨더니..

호스트 워크벤치에서는 수정된 내용이 반영되지 않고, 런타임 워크벤치를 띄우면 그때야 반영이 되더라구요.

org.eclipse.platform_xxx(버전) 디렉토리에 있는 splash.bmp 는 바꾸자마자 바로 효력이 발생하던데..

구글링을 해봐도 호스트 워크벤치의 타이틀 바 이름을 바꾸는 방법은 나와있지 않던데,

제가 뭔가 착각하고 있는 부분이 있다면 도움 주시면 감사하겠습니다 :)

revoman의 이미지

DDNS 서버 구축 관련 질문..

안녕하세요.

DDNS 서버 구축과 관련된 질문올립니다.

먼저 유동IP를 사용하는 여러개의 장치들이 있고, 이 장치들은 WAN에 직접 연결되어 있을 수도 있고, 스위치를 통해 사설망을 가질 수도 잇습니다.
(회사 업무라서 구체적으로 밝힐 수 없는 점 양해부탁드립니다...^^)

이들 장치에서 DDNS서버로 TCP 연결이 들어왔을때 accept()를 호출하면서 sockaddr 구조체를 통해, peer 장치의 IP 정보를 가져옵니다.
client_sock = accept(pDdns->m_DdnsAcptSock, (struct sockaddr*)&addr, &length)) <= 0 )

호스트명정보는 메시지로 받고, IP 정보와 HOST정보를 DNS에 등록하게 됩니다.

대부분의 경우, 정상적으로 Public IP가 등록됩니다만 간혹 Private IP로(172.XX.XX.XX) 등록되는 경우가 있습니다.

munhoney의 이미지

메모리에서 프로그램 실행 할 수 있을까요

혹시 간단한 프로그램을 메모리에 올려놓고 (마치 쉘코드처럼) 그것을 실행할 수 있을까요

대부분은 파일을 만들어놓고 실행하는데, 메모리에 있는 프로그램을 실행시킬려고 하는데 가능할까요?

wmjj의 이미지

[완료] MFC / API 바탕화면 휴지통을 프로그램으로 열려면 어떻게 해야 하나요?

바탕화면에서 휴지통 클릭해서 휴지통을 여는 작업을

프로그램으로 할려면 어떻게 해야 하나요?

윈도우 탐색기 주소창에 '휴지통' 입력하면 바로 이동이 되길래

ShellExecuteEx 함수를 사용해 봤는데 오류가 납니다.

hyde1004의 이미지

DBus 실행 시에 Autolaunch error: X11 initialization failed. 가 나타납니다.

안녕하세요.

어제부터 dbus를 공부하고 있습니다.
제가 별도의 ubuntu서버를 두고, ssh로 연결하여 접속을 하는데요.
그런데 아주 간단한 예제를 실행하면 다음 에러가 나옵니다.

hyde1004@Pleiades:~/Programming$ ./dbus-test
Error connecting to the daemon bus : //bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
hyde1004@Pleiades:~/Programming$

GUI 관련 사항인 것 같아서, 서버의 GUI 환경 터미널에서 실행하면 정상 동작합니다.
코드 자체는 graphic 요소는 없는데요. 다만 glib-1-dev 패키지를 설치하긴 했습니다만.
외부 터미널에서 접속하는 것이라 권한 문제인것 같기도 하구요.
어떻하면, 텍스트 터미널에서도 실행할수 있을까요?

fivestar의 이미지

[처리완료] EPOLL 구조에서 대량소켓 처리시 send 함수 후 죽는 현상

안녕하세요

다중화 소켓 처리를 하기 위해서

EPOLL 구조로 변경을 한후 테스트 중인데

소켓 CONNECTION 하는 프로그램을 대량 쓰레드로 생성하여

연결을 맺게 하면 SEND 처리 하는 부분에서 죽더라구요. 이는 당연히 클라측에서 받는 처리를 해놓지 않아

죽는구나 싶어서.. signal(SIGPIPE, SIG_IGN); 처리를 하였습니다.

그런데도 여전히 대량으로 쏘게되면 죽더라구요 .. 그런데 대량으로 쏠때만 죽고 시간을 조금 크게 주어서 소켓을 쏘게되면

죽는현상이 발생하지 않더라구요

참고로 send 함수의 마지막 플래그에는 아무런 옵션을 주지 않았습니다. MSG_NOSIGNAL 을 주어도 동일증상이구요

1. 시그날 처리를 하였는데도 send 후 프로세서가 죽는 원인이 무엇일까요?

2. send 후에 if(errno = EWOULDBLOCK)를 해서 검출되는지 printout 을 해보았는데 아무것도 안찍히더라구요..
그렇다면 send후에 죽는다는 소리가 아닌가요..??

queza의 이미지

자바 기반 프로젝트에서 결제 모듈 구성 인증서 구현


안녕하세요. 항상 가입도 안하고 눈팅만하다 처음 이렇게 써보게 되네요.

이번에 프로젝트에서 서비스 이용시 전자 화폐를 이용한 거래를 구현하려고 하는데요.
여기서 사용되는 인증서나 보안에 필요한 작업들을 좀 공부해야할 것 같은데,
이게 막상하려니 이쪽 내용을 아무것도 모르고 있어서, 관련된 서적이나 방식에 관해 좀 조언을 구하고 싶습니다.

하다 못해 단순히 인증서를 하나 만든다고 치면 머부터 시작해야하는지 궁금합니다.
인증서를 제작하고 머클(Merkle) 트리를 이용하여 화폐를 관리하는 방향으로 갈것 같은데,

막상 구현하기 위한 구성을 해보려니 무엇부터 할지 몰라 계속 자료를 찾아보고 있습니다.ㅜ
조언 좀 부탁드겠습니다.

resonancme의 이미지

[QT/Embedded] QtWebKit을 사용하여 키보드를 웹뷰에 올리려 합니다.

QtWebKit을 이용하여 인터넷 창을 만들었습니다.

QWebView가 메인 윈도우 위에 있고 툴바도 만들고.. 지금까진 잘됐으나

제가 만든 키보드를 올려야 하는데 어떻게 해야 할지 모르겠습니다.

인터넷 주소창은 QLineEdit로 되어있고 나머진 QWebView로 되어있는데 문제는

이 WebView의 입력이 가능한 곳으로 포커스가 가면 제가 만든 키보드가 show()되고 아니면

hide()가 되게 동작하고 싶은데 어찌해야할지 모르겠습니다.

제 생각엔 아무래도 Webview를 상속받아 커스터마이징 해야할듯한데 도와주세요.

페이지

프로그래밍 QnA 구독하기