프로그래밍 QnA + 설치 및 활용 QnA + 질문

root123abc의 이미지

zombie (좀비) 프로세스 문제

횡설 수설해서 아래 댓글로 질문을 정리하였습니다.

---------------------------------------------
*이건 처음 올린 질문입니다.

안녕하세요? 매번 해당싸이트에서 좋은 정보 얻고 있는 초보 프로그래머 입니다.

리눅스(데비안)에서 프로그래밍 중 좀비프로세스 문제때문에 이렇게 글을 올립니다.

간단한 쉘 프로그램(A)을 하나 만들어서
B 라는 프로세스를 실행시키고 있습니다.
B는 사실상 무한 대기하는 서버 프로그램입니다.

쉘(A)를 이용하여
B가 실행되고 있는지 확인하고 (ps 명령 조합으로 확인)
B가 실행되고 있으면 B를 종료 시키고 (kill -9 프로세스 아이디) 다시 실행
B가 실행되고 있지 않으면 실행시키도록 while로 반복시켜놨습니다.

root123abc의 이미지

zombie (좀비) 프로세스 문제

안녕하세요? 매번 해당싸이트에서 좋은 정보 얻고 있는 초보 프로그래머 입니다.

리눅스(데비안)에서 프로그래밍 중 좀비프로세스 문제때문에 이렇게 글을 올립니다.

간단한 쉘 프로그램(A)을 하나 만들어서
B 라는 프로세스를 실행시키고 있습니다.
B는 사실상 무한 대기하는 서버 프로그램입니다.

쉘(A)를 이용하여
B가 실행되고 있는지 확인하고 (ps 명령 조합으로 확인)
B가 실행되고 있으면 B를 종료 시키고 (kill -9 프로세스 아이디) 다시 실행
B가 실행되고 있지 않으면 실행시키도록 while로 반복시켜놨습니다.

따라서 B 프로그래밍이 뻗어도 자동으로 A가 살리도록 해놨는데..
가끔 B가 알수없이 죽어서 갑자기 종료되고 좀비프로세스(ps로 쳐보면 defuct라고 나오더군요)가 되는 경우가 있습니다.
여기서 B의 부모 아이디(ppid)는 A인 상황입니다.

wkdquddn8824의 이미지

(C 허프만)바이너리 파일 작성 질문이요..

char 배열을 바이너리 파일로 저장하려고 합니다.
문제가 바이너리 파일이 원본 텍스트파일보다 작아야하는데 더 커서 문제입니다.

while(fgets(text,200,f1) != NULL){
------len = strlen(text);
------for(int z = 0; z < len; z++){
------------chk_ht_index = chk_HT(text[z]);
------------if(chk_ht_index != -1){
------------------//fwrite(HT[chk_ht_index].code,sizeof(HT[chk_ht_index].code),1,f2);//이녀석으로 하면 수십배 더 커집니다.
------------------fprintf(f2, "%s", HT[chk_ht_index].code);//이녀석으로 하면 4배정도 더 커집니다.
------------}
------}
------fprintf(f2,"\n");
}

everspin의 이미지

애플리케이션 동적 GDB에 관해서 선배님들 한테 도움을 요청 해봅니다.

애플리케이션을 GDB로 이용해서 분석 중입니다 JNI을 이용한 라이브러리 파일의 심볼을 읽고 싶은데 이게 동적 분석이다 보니 심볼 파일을 클라이언트에서 'file' 명령어를 이용해서 로딩을 해주고 있습니다.

이렇게 클라이언트에서 'file' 명령어로 라이브러리를 로딩하고 디스 어셈블러는 잘보이는데 브레이크 포인트를 걸고 애플리케이션을 실행 시키니 브레이크 포인트가 걸리지 않습니다.

계속해서 어찌 저찌 동적으로 라이브러리 파일 심볼 테이블을 받아왔으나 디스 어셈블러로 확인한 결과 모든 디스어셈블러 명령어가 'movs r0,r0' 으로 되어있어서 계속해서 동적으로 읽어와도 브레이크 포인트는

걸리지 않고 있습니다 선배님들 어떤식으로 또한 어떤 명령어를 이용해야지 동적으로 라이브러리 심볼 테이블과 어셈블과 브레이크 포인트가 걸리는지 궁금합니다 아시는 만큼만 대답 해주시면 감사하겠습니다 ;ㅁ;

------

오늘도 일교차가 커서 날씨가 춥다는데 몸조심 하시고 답변 주시면 정말 감사하게 듣겠습니다 오늘도 좋은 하루 되세요.

twinwings의 이미지

C 구조체 관련한 질문입니다.

typedef struct _Sample
{
    int dummy_data;
    int real_data[CONST_NUMBER];
} Sample;

이렇게 생긴 구조체가 있습니다.

real_data[-1]의 주소 값이 항상 dummy_data의 주소 값과 동일한가요?

즉, 플랫폼에 관계없이 항상 보장하나요? 만약 보장하지 않는다면

__attribute__((packed))

으로 해결할 수 있나요? 이것도 영 찝찝한데...

South128의 이미지

@@

dzd

sincerely0의 이미지

Proc 에서 Parallel Hint 사용시 주석 해제 법이 궁금합니다...

sqlplus에서는

SELECT /*+ parallel(a 4) */ count(*)
FROM 테이블
WHERE 조건

이내용이 잘 되는데

proc 안에 넣을려고 하니 /*+ parallel(a 4) */ 이부분이 주석이 되어 버립니다.

\ 역슬래쉬도 먹지 않고 인터넷에서 찾아본
EXEC SQL SELECT %str(/)%str(*)+ parallel(a 4) %str(*)%str(/)

이내용도 통하지 않더라고요.

어떻게 해야 넣을수 있을까요?

lsc1117의 이미지

c언어 포인터 메모리사이즈에 대한 질문드립니다

아주 초보적인 질문입니다

int *ptr

int형 포인터 변수를 선언하였습니다. sizeof 해보면 4바이트인 것을 알 수 있습니다

ptr = (int *)malloc(sizeof(int));

ptr 포인터변수에 4바이트 만큼의 공간을 할당하였습니다.

============ 그런데 여기서 질문입니다 ===========
제가 이해하기로는 위 작업을로 ptr에 할당된 메모리는 주소공간 4byte + malloc으로 한 데이터공간 4byte 합이 8byte라 생각하였습니다.
제가 생각한 것이 틀린건지
ptr[1] = 3;
ptr[2] = 4;
이런것들이 모두 segmentation fault 없이 잘 동작하던데 그럼 제가 생각한 8byte의 메모리할당이 아닌것인데...

이건 뭐 int ptr[9999999999]와 같은건데...

위에 제가 생각한 것중 어느부분이 틀린것인가요??

페이지

프로그래밍 QnA + 설치 및 활용 QnA + 질문 구독하기