프로그래밍 QnA

xerak의 이미지

wav 파일에서 특정 바이트에 있는 16진수 값을 (리틀엔디안) 읽어와서 정수로 바꾸고 싶습니다.

안녕하세요. 부족한 제 실력때문에 몇일째 고생하고 있습니다. ㅠㅠ

wav파일을 헥사에디터(울트라에디터 사용)를 열어보면 그림과 같습니다.
(첨부한 그림 참고해주세요^^;)

여기서 예를들어서 37바이트 부터 4바이트( 64 61 74 61) 를 읽어서 정수로 변환하고 싶습니다.

fseek으로 포인터를 옮겨서 원하는 부분만 잘라내어서

char *buf; 를 선언하여 buf에다가 넣어두었습니다. (buf에는 data 라는 문자열이 들어가있음).
( buf 안에 들어간 data라는 값이 문자열 인가요? 16진수 인가요? )

제가 질문드리고 싶은 것은

이 data라는 문자가 리틀엔디안이기 때문에 61746164(16진수)를 10진수로 변환하면 1635017060 이 되는데

이 10진수 값을 구하고 싶습니다.

어떻게 구하면 좋을까요? 답변 부탁드립니다. 짧은 조언이라도 부탁드려요.

-윈도우 환경에서 비주얼 스튜디오 2008을 사용하고 있습니다.

dingkyu의 이미지

사설 IP를 가진 일반 컴퓨터와 외부의 공인 IP를 가진 서버와의 UDP 통신상의 고민입니다.

위 그림과 같은 상황이 있습니다.

서버는 UDP통신만 지원하고 하나의 UDP소켓을 열어놓고 입력을 대기 중입니다.
각 노드들은 먼저 서버로 특정 데이터를 전송해서 (노드들은 서버의 주소를 미리 알고 있습니다.)자신의 존재를 서버에게 알립니다. 그 다음 서버는 위 그림에서 어느 한 노드가 데이터를 서버로 전송하면, 서버는 그 데이터를 받아 나머지 노드들에게 전달해야 합니다.

서버는 각 노드들의 IP 주소를 보관하고 있다가 데이터를 보낸 IP를 제외하고 나머지 리스트의 IP 주소들에게 받은 데이터를 다시 전송하도록 하면 되겠다 싶었는데, 제가 공부한 바로는 UDP통신은 상대방의 IP address 밖에 모르는 것으로 알고 있습니다. 즉, 위 상황에서는 제가 알기로는 3개의 노드들이 전부 서버에 접속하게 되면 서버에서는 전부 동일한 IP를 사용하는 노드로 인식할 것이라는 겁니다.

red10won의 이미지

nginx 언제 대세가 될까요?

아직 현시장은 apache인거 같습니다
다들 nginx 좋다 좋다 하지만 왜이렇게 대세가 되지 못할가요?

[드루팔]이나 [카산드라도]도 아직까진 좀 기다려보지 인가요 ㅋ?

http://blog.webfaction.com/a-little-holiday-present

sauron의 이미지

UNIX 계열의 컴파일러에서 정의된 매크로를 알 수 있을까요.

이전에는 UNIX 계열의 컴파일러에서 정의된 매크로는 아래 명령으로 확인할 수 있었읍니다.

$ echo 'main(){printf("hello world\n");}' | gcc -E -v -

Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2
/usr/lib/gcc-lib/i486-box-linux/2.7.2/cpp -lang-c -v -undef
-D__GNUC__=2 -D__GNUC_MINOR__=7 -D__ELF__ -Dunix -Di386 -Dlinux
-D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__i386
-D__linux -Asystem(unix) -Asystem(posix) -Acpu(i386)
-Amachine(i386) -D__i486__ -

avanwz의 이미지

python에서 변수의 최대값은?

요즘 python의 매력에 빠져서 기초지만 처음부터하는 마음으로 공부하고있는 학생입니다.

공부하다가 궁금한것이 C에서는 변수를 선언할때 int나 double이렇게 변수형을 붙이고 선언하는것에 반하여

python은 바로 변수이름과 그 값을 적으면 자동으로 인식해서 선언하는방식이 상당히 독특하고 편하더군요

이렇게 무심코 사용하다 문득든 의문점이 a = 3이렇게 만약 선언하였다고하면 이게 int형으로 들어가는건지, 어떻게 내부적으로

선언이되는지 궁금하더군요.

그리고 max값을 찾아보려 a를 선언하고 그 값을 계속 증가시켜나가면 정말 한도끝도없이 증가합니다. 원래 32bit에서는 21억쯤이 int형

최대값으로 알고있는데 이건 자리수가 1000자리를 넘어가는군요. (값을 계속 증가시킬 수 있었지만 그냥거기서 멈췄어요)

어떻게 이런것이 가능할까요?

shint의 이미지

암호 인증방식을 생각해보았습니다.

//
익명 사용자 인증방식이... 정말 1+1이 되었네요 ;;;;;;
제안했던 사람으로써... 많이 부끄럽습니다.;;;;

//
암호를 비교하는 인증방식을 생각해보았는데요.

1. 서버에서 A~Z 와 0~9까지를 랜덤하게 생성한 데이터를 클라이언트로 전송합니다.
-- 랜덤한 값에는 유저의 암호가 랜덤한 순서로 입력됩니다.
-- 물론. 모든 알파벳이 포함되므로 재전송된 암호를 비교하더라도 암호를 알수는 없습니다.
-- 암호가 DAY80 일경우 전송되는 데이터 예. BACDEF2GYH4I86J0K~~~~ [자릿수.는 0부터 시작]

2. 클라이언트는 서버로부터 전송받은 랜덤한 값의 자리를 하나씩 선택해서 서버로 전송합니다.
-- BACDEF2GYH4I86J0K~~~~
-- D A Y 8 0
-- 3/ 1/ 8/ 12/ 15
-- 실제로 전송할때는 3/ 1/ 8/ 12/ 15 이 값을 전송하게 됩니다.

Pelain의 이미지

Linux 에서 iw reg set 명령이 전혀 먹히지 않는 상태(iw list에 disable된 것을 풀려고 합니다)

>> 우선 질문을 먼저 남기겠습니다
1. iw reg set 명령으로 원하는 대로 전혀 변경이 되지 않는다.

이 문제를 해결하려고 하는데요.. 현재 환경과 관련 정보에 대해 아래에 나열했습니다. 이래저래 다 해봐도 당최 해결이 안되어서요.. 아시는 분 좀 가르침을 ㅠ_ㅠ.

- 현재 버전
Linux version 2.6.28.2-chapelhill0 (root@KoersGT) (gcc version 4.3.4 (Gentoo 4.3.4 p1.2, pie-10.1.5) ) #2 Thu Feb 10
22:09:26 KST 2011

kws4679의 이미지

C++ 로 커널을 만들때...

안녕하세요 객체지향 OS 에 도전해보려고 현재

C++을 구동하기위한 사전작업을 하고 있습니다 기본적인 부트로더랑

일반 C 커널 까지는 불러오는데 C++ 관련 여러가지... 요소?(연산자 new 라던가 delete 라던가 등등)

을 링크하려면 표준 c++ 라이브러리를 링크해야되고 또 링크하는 과정에서 이상한게

덧붙여서 (특히 메인 함수 이전에 붙는 atexit 나 crtstartup등...) 때문에 제대로 커널을 구동하기

힘들어집니다

그렇다고 수동으로? 컴파일하고 링크하기 위해

g++ -c 옵션으로 오브젝트 파일을 만들고 ld 파일들 -lstdc++ 로 c++ 아카이브 라이브러리를 링크시켜도

에러가 나는데 에러 메시지를 보니 libstdc++ 만 필요한것이 아니라 여러가지 라이브러리들이 필요하더군요

일일이 다 지정해주기도 뭣해서 이번에는 그냥 g++ 로 cpp 파일들을 컴파일하였더니 위에서 언급했던대로

ulyss의 이미지

[완료] 실제로 파일에 내용을 쓰지 않고도 인접한 디스크 공간을 할당 받는 방법 있나요?

안녕하세요.

파일 I/O쪽을 최적화하려는데
적당한 방법을 찾지 못해서 질문드립니다.

어떤 상황이냐면,
시스템에서 계속 데이터가 생산되고, 생산된 데이터는 일정한 크기의 파일에 순차적으로 쓰여집니다.
파일이 꽉 차면 새로운 파일을 만들어서 쓰구요.
그런데 이 새 파일을 만드는 작업에 시간이 오래 걸려서 성능을 깎아먹습니다.
(사정상 파일을 미리 만들거나 백그라운드로 만들 수가 없는 상황입니다)
지금까지 어떻게 했냐면, 파일을 만든 후 크기만큼 0을 write해서 만들었거든요.

페이지

프로그래밍 QnA 구독하기