프로그래밍 QnA

mzzzz11의 이미지

C포인터 관련 질문입니다.

소스 :
int zippo[2][2] = {{1,2,},{3,4}};

printf("%p\n", zippo);
printf("%p\n", *zippo);
printf("%d\n", *zippo[0]);

결과 :
0xbfad0100
0xbfad0100
1

가 나옵니다

여기에서 궁금한 점은 zippo와 zippo[0]은 같은 값을 가지게 되는데 * 연산자를 두 변수 앞에 붙여주면
*zippo는 똑같은 주소값 0xbfad0100이 *zippo[0]은 결과값 1이 나옵니다.
제가 아는 * 연산자의 개념과 조금달라서
이렇게 나오는 이유를 알고싶습니다.

declspec의 이미지

TCP 체크섬. 도와주세요 ㅠ.ㅠ

리눅스상에서
패킷변조를 하면서
TCP 체크섬을 재계산 하려고 합니다.

pseudo header 12 바이트를 구성했으면
그것과 TCP헤더 ~ 데이터 마지막까지.
를 하나의 배열로 쭉 이어져 있도록 놓고
일단은 TCP 체크섬부분은 0 으로 채우고.
2바이트씩 잘라서 전부 더한다음에
1바이트가 남는다면 그것도 0 을 패딩넣어서 더해주고.
2바이트 초과하는 부분을 다시 2바이트에 더하고
맨마지막에 전체 비트반전.

이렇게 해서 2바이트를 만들면
그게 체크섬 아닌가요?ㅠㅠ

근데 지금 체크섬 구하는 함수를 만들었는데
이게 맞다가, 틀렸다가, 맞다가, 틀렸다가
계속 막 이러네요 ㅠ.ㅠ
틀려도 아주 미세하게 틀립니다 ㅠㅠ
45FE -> 46FE 이런식으로...

어디가 잘못된건지 한참 헤메고있는데 도와주세요 ㅠ.ㅠ

mzzzz11의 이미지

C언어에서 배열변수에 대한 질문있습니다.

C 언어에서

int array[10];

이렇게 선언을 하게되면 array라는 변수는 &array[0]의 값(즉 첫번째 값의 주소값)을 가지는 걸로 알고있습니다.

여기서 궁금한 점은

int cpy[10]; <- 이렇게 똑같이 선언을 해놓고

cpy = array; 또는
cpy = &array[0];
이렇게 하면 주소값이 대입연산자에 의해 들어간다고 생각을 했었는데
컴퍼일 오류가 나네요 왜그런 건가요?

해결방법은 int *ptr; 이렇게 해서 대입하면 된다는 것은 알고있습니다.

궁금증의 요지는 왜 위 처럼 대입을 하면 오류가 뜨는지 궁금합니다^^

kirina70의 이미지

Makefile 상대경로를 절대경로로 변환하고 있는데요 잘 안되네요...

..\Makefile:101: warning: overriding commands for target `CBcbaVfd.o'
..\Makefile:76: warning: ignoring old commands for target `CBcbaVfd.o'
..\Makefile:114: warning: overriding commands for target `CBcbaOmr.o'
..\Makefile:78: warning: ignoring old commands for target `CBcbaOmr.o'
..\Makefile:130: warning: overriding commands for target `CBcbaPrt.o'
..\Makefile:80: warning: ignoring old commands for target `CBcbaPrt.o'
make: *** No rule to make target `CBcbaVfd.cpp', needed by `CBcbaVfd.o'. Stop.

rewk의 이미지

웹브라우저를이용해서 리눅스 터미널을 이용하는방법이있을까요?

리눅스 고수님들의 많은 답변을 듣고 싶습니다.

윈도우 CMD나 putty라는 원격접속 클라이언트로 텔넷이나 SSH접속을 하지않고

웹브라우저를 이용하여 터미널서비스를 이용할 수 있는 방법이 있을까요??

declspec의 이미지

로우소켓 사용시 소켓바인딩

아래 질문이 좀 이해안되신다하여 다시 올려봅니다;

리눅스에서 로우소켓을 사용하면
IP 헤더랑, TCP/UDP 헤더를 직접 작성 할 수 있잔아요?

mclljr의 이미지

아파치 mod_rewrite 에 대해 자세히 아시는 분 댓글좀......

아파치와 톰캣으로 연동중입니다...>.< 뭐, 로드밸런스도 있구해서요. 얼마나 몰릴지는 모르겠찌만;;
여하튼, 각설하구요.

보통 80 포트로 서비스를 하게 되는데, 이때 아파치가 서블랫처리만 톰캣으루 넘깁니다.
설정이 이렇게 되어있어요.

kleinstein의 이미지

[질문] 어플리케이션이 사용하는 모든(!) dll 리스트 보는법??

일반적으로 process monitor 나 process explorer, 혹은 Dependency Walker 등의 툴로

어플리케이션이 사용하는 dll 들의 리스트를 볼수 있다는건 알고 있습니다만..

제가 가진 문제는..

어플리케이션이 잠깐 불러서 사용하고는 다시 unload 시키는 dll 들까지 전부(!) 깔끔하게(!) 알고 싶다는겁니다.

process explorer 로 dll 보기를 켜서 .exe 하나를 지켜보고 있으면

dll 리스트가 지속적으로 변하는걸 볼수 있는데요.. 이때 한번이라도 load 되었던 dll 들은 전부 리스트에서 다시 사라지지 않게 하고 싶은거죠..

process explorer 가 계속 이 리스트를 update 하기때문에 잠시 load 되었던 dll 들은 금새 리스트에서 사라지기 때문에 전부 알아내기가 쉽지않거든요..

다른 툴이나 어떤 방법이 없을까 싶어서 고수님들이 즐비하신 이곳에 여쭙습니다.

알려주세요~

realstorm103의 이미지

cmake 관련해서 질문드립니다

제가 firebreath를 이용해서 so 파일을 작성하려고 하는데요
현재 해당 프로젝트 안에는 Xlib.h와 giblib.h를 포함시켜 뒀습니다
make를 실행하면

aaa.cpp:(.text+0xa8b): undefined reference to `XOpenDisplay'
aaa.cpp:(.text+0xae6): undefined reference to `XScreenNumberOfScreen'

와 같은 에러가 나네요

그런데 저 유사한 에러가 그냥 cpp 파일만 작성했을 때도 나타났었는데 그때는
g++ test.cpp -l giblib라고 했더니 에러 없이 잘 컴파일이 됐었던 걸로 봐서
제 판단으로는 라이브러리가 포함이 안되 그런 문제가 발생하는 것 같은데요

make 쪽은 아직 시작한지 얼마 안된 제가 손대기에 막연하네요;

혹시 도움 될만한 정보 있으시면 알려주시면 감사하겠습니다

cwchoi00의 이미지

iozone Filesystem Benchmark tool을 이용하여 single-core vs. dual-core 상태에서의 성능 측정 문제

ext4 형식의 mmcblk에 iozone tool을 사용하여
single-core 와 dual-core 상에서의 read/write 속도 측정을 해보았습니다.

그러나 기대와는 다르게 dual-core 상에서의 iozone read/write 속도가
single-core 보다 현저하게 느리게 나왔습니다.

dual-core 일 경우에는 L1/L2 cache 문제인건지? 아니면 다른 문제인지
현재 분석중에 있으나, 기존에 이와 같은 현상에 대해서 아시는 분들께
조언 부탁드립니다.

페이지

프로그래밍 QnA 구독하기