프로그래밍 QnA

koreavisual의 이미지

top정보 중에서 SIZE와 RES 차이점

제가 Tru64에서 프로그램을 돌리는데요
RES는 130M정도 돼는데 SIZE는 2000M정도 됩니다.
왜 이렇게 차이가 크게 나는지 알수가 없네요

Struct size는 400입니다.
Stuct를 new로 할당하여 12561번 합니다.

이럴경우 virtual Memory(swap)이 2GB 를 넘어서
Unable to obtain requested swap space
메세지가 나타납니다.

아시는 분은 좋은 답변 부탁드립니다.

sore의 이미지

한컴 리눅스, memory leak 체크....에 대해..

갑작스레 리눅스 환경에서 프로그래밍을 하려니 힘드네요. ㅠ.ㅠ

1. 현재 한컴리눅스를 쓰고 있습니다.
그런데, 컴파일을 3.0에서 하면 실행파일 용량이 2M정도가 나오는데 3.1 에서 컴파일을 하면 3M가 넘어갑니다.
Xlib 를 사용했습니다.
소스는 건드린 곳 없이 그냥 컴파일을 했었는데.. 그럴 수도 있습니까?
어떤 이유라도...

2. 메모리 누수가 생기는지를 알고싶은데..
VC++에서는 실행이 끝나면 output 창에 메모리 릭이 나는지 안나는지 나타나고, 바운드 체커같은 프로그램으로 어디서 메모리 누수가 생기는지를 알 수 있는데..

koonpal의 이미지

메모리 있는 파일을 없애는 방법 좀...

파일을 읽으면 메모리에 남아 있잖아요...

그 메모리에 있는 파일을 없앨려고 하거든요...

변경된것은 아니고요...

fflush 함수 같은 경우느 dirty 한 블록만 flush 시키는 걸로 알고 있거든요...

메모리에 있는 건 dirty 한 것은 없고요...

그냥 디스크에 다시 안 쓰고 메모리에서 없앨려고 하는데 어떻게 해야 되죠...

sync 도 dirty 한 것만 flush하는 거 같아서요..

유저 레벨이든 커널 레벨이든 상관이 없거든요...

부탁을 드립니다...

iamsjkim의 이미지

TCP/IP 에서의 패킷 재전송 원리에 관해 질문드립니다.

TCP/IP의 경우 소켓함수를 쓰면 TCP 레벨에서 알아서 ack를 날려주는것은 알겠는데 이 ack를 송신단에서 수신하지 못할경우 내부적으로 어떤 루틴이 실행되는지 알고 싶습니다.

일단 질문의 요지를 정리해보면, send(), recv()함수에 관여하는 것은
송신단 응용프로그램, 송신단 운영체제, 수신단 운영체제, 수신단 응용프로그램, 이 네가지이고
송신단에서 send()를 수행하여 수신단 운영체제까지 전달이 되면 수신단 응용프로그램에서 recv()를 수행했던 안했던 일단 송신단 send()는 성공한것으로 본다..는 것을 검색해서 읽었습니다.

alsgo123의 이미지

gcc,nm,ld 의 옵션중에..

컴파일시에 (cross-compile) -lpam 에서 에러가 발생합니다.
( cross-compile 로 해당 libpam 도 설치한상태)

arm-linux-gcc 인데요, gcc 에 -l 옵션을 주면 해당 라이버러리를 같이 링크하는걸로 알고있습니다. -l 옵션을 주면 *.a 나 *.so 파일을 찾는 경로를 알고싶습니다.

gcc -? 어떤 옵션을 주면 gcc 가 라이버러리를 찾는 경로를 출력할수 있죠?

ld 의 경우도 어디서 library 를 찾는지 알수 있는 옵션이 있나요?

kimdy123의 이미지

CC[c++ Forte + QT] debug using ddd..

.
.
.
EndSourceTarget( tmp_nhbuf->net,onenetrout);
all_rc.erase( all_rc.begin(), all_rc.end() );
Perception( 0, tmp_nhbuf->net, onenetrout, subckt->place.matrix);
.
.
.
void Route::EndSourceTarget(string& net,OneNetRout& onenetrout){
int r=0,c=0; multiset<RC,gt>::iterator tmp_rc;
tmp_rc=all_rc.begin();
r=(*tmp_rc).row;
c=(*tmp_rc).col;
tmp_rc=all_rc.end();
tmp_rc--;
onenetrout.allpin=all_rc;
}
위의 간단한 예제에서 EndSourceTarget에서 next를 하면 그 밑의 int r=0..[void Route::EndSourceTarget] 라인에 디버깅 포인트가 와야지 되는데 stl[forte]로 디버깅 포인트가 넘어가 버림니다. 어떻게 해야 될까요? 알려주심 감사..

indizarm의 이미지

호출된 함수에서의 free(), malloc()에 의한 효과

char* str;
int str_size;

func(str, &str_size);
②
...

func(char* str, int* str_size)
{
    int str_size2;

    free(str);
    str = (char*)malloc(str_size2);
①
    *str_size = str_size2;
}

이렇게 되어있을 경우에 func()호출이 효과를 보려면
func(char** str,...) 이렇게 해서 포인터의 주소값을
넘겨야 합니까? (이중 포인터가 별로 보기가 않좋아서...)

①의 위치와 ②의 위치에서 str의 값이 다르군요.
①에서는 원하는 값이 들어있는데 ②에서는 보이지 않는

운형의 이미지

쉘 스크립트와 C의 성능...에 관해

베쉬 쉘로 되있는 부분을 C로 다시 작성을 해야해서 이렇게 질문을 올립니다.

같은 플로우를 갖는 상태로 C로 다시 작성했을 경우 성능 향상이 얼마나 될지 궁금합니다.

쉘에서 하는 일이 조건에 따라 A, 혹은 B를 실행 시키는 정도의 간단한 프로그램입니다(사실 이거보단 조금 복잡하지만...)

결과 적으로 C에서도 system()을 사용하거나 fork()exec해야 하는데 단순히 system()을 사용하면 쉘이 인터프리트 되는 시간을 약간 절약할 수 있다는 느낌은 오는데,

skymagic01의 이미지

서버프로그램을 짜는데 스레드때문에..

지금 서버를 짜고있는데요
어느 특정한시간에 함수를 호출할려고 하거든요
어떻게 처리해야 하는지 궁금하네요
세마포어 로 해서 하고있는데 이걸루 하는것이 맞는지 궁금하네요;;

indizarm의 이미지

malloc()으로 할당 받은 메모리의 크기를 아는 방법

동적으로 할당 받은 메모리의 크기를 아는 방법이나
함수 같은 것이 없을까요?

char* str;
int str_size = 30;

str = (char*)malloc(str_size);

이렇게 했을 때, str이 가리키는 메모리 블럭의 크기를
알 수 있는 방법이 궁금합니다.

free(str); 이렇게 했을 경우에 str가 가지고 있는 값은 NULL로 set되는 것이 아니었습니까? 그러면 어떻게 메모리가 반환되었는지 판단을 하죠?

단순히 메모리가 반환되었다고 '가정' 해

페이지

프로그래밍 QnA 구독하기