프로그래밍 QnA

nekoko의 이미지

완료

야후 smtp 서버때문에 오후부터 지금까지 삽질을 하고 있네요..
이메일 클라이언트에 SSL/TLS 기능을 추가하고 있는데
다 완성된 줄 알고 여기저기 서버를 바꿔가며 테스트를 했더니
야후 smtp 서버에서만 첨부파일과 함께 보낼 때 프로그램이 아예
죽어버리네요..
openssl을 사용했는데
헤더까지 잘 write를 하다가
첨부파일 전송 부분에서, 마지막 부분을 전송할 때
SSL_write()에서 그냥 죽어버립니다.
죽는 부분이 항상 일정한 것 같은데 원인을 못 찾겠습니다.
소켓에 쓰는 부분(SSL_write())만 막아봤는데 안 죽는 걸로 봐서
보낼 때 메모리 쪽엔 문제가 없는 것 같습니다..(또 다른 서버들은 잘 되니까)
왜 첨부파일 뒷부분에서 유독 야후 smtp 서버에서만 죽는 것일까요?
그리고 소켓에 write할 때 에러 메세지 뱉지 않고 그냥 프로그램이 죽는 경우도
있을 수 있나요..? 서버가 종료됐다던지 하면..?

zakorea의 이미지

hsearch 질문 있습니다.

search.h 기본라이브러리에서 지원하는 hsearch 를 사용하는데 있어,

ENTRY item;
ENTRY *result;

해쉬 구조체를 한개만 사용이 가능한가요?

다중으로 사용하려고 하는데, 여러 인스턴스를 생성해서 사용을 못하는 거 같네요.

혹시 아시는 분이 있으시거나, 고민하신분은 조언 좀 해주세요~~^^

[추가 내용]
아래를 사용하는 것 같군요~
int hcreate_r(size_t nel, struct hsearch_data *htab);
int hsearch_r(ENTRY item, ACTION action, ENTRY **retval,struct hsearch_data *htab);
void hdestroy_r(struct hsearch_data *htab);

lmk378의 이미지

[해결]java.exe(java application launcher)가 virtual machine인가요?

갑자기 궁금하여 질문드립니다.
java.exe(java application launcher)가 virtual machine인가요?
java virtual machine이 어떤 프로그램인지 구분이 잘 안갑니다.
바이트코드를 해석해서 보여주기만 하는거라면 java.exe은 jvm과 동일한것 같은데요~

ilianes의 이미지

jvm 질문입니다~ Hadoop관련~

hadoop file system에 파일을 복사 하려고 하니 could only be replicated to 0 nodes, instead of 1 라는 오류가 떠서 이리저리 알아보다가
datanode를 따로 실행 시켜라고 해서 앞의 이것저것 실행시키고 datanode 실행시키려고 하니 jvm에 관한 저런 오류가 뜹니다
java는 제대로 잘 깔려 있는데 jvm은 뭔지 모르겠네요;;

[root@localhost hadoop-0.20.203.0]# bin/hadoop datanode
Unrecognized option: -jvm
Could not create the Java virtual machine.

dcmru의 이미지

[완료]스레드를 사용한 select에서 block 상태 빠져나오는 방법

네트워크 프로그램을 하나 짜고 있는데, 이상한 현상이 발생하여서 문의를 드립니다.

부모 스레드가 port 리슨을 하고 있고, 클라이언트가 연결을 하면,

스레드를 띄워 클라이언트로 부터 주기적으로 패킷을 받습니다.

클라이언트를 처리하는 스레드는 select를 사용한 블럭킹 모드입니다.

연결을 오래 유지하는 프로그램이라 패킷을 많이 발생시키지 않도록 하기위해

select 대기 시간을 십 몇 분정도로 해서 테스트하고 있는데,

스레드를 사용한 select 대기 상태에서 클라이언트로 부터 네트워크 단절이 되는 상태로 되었을 때

스레드의 select가 timeout이 설정되었음에도 블락을 빠져나오지 않는 현상이 나타납니다.

이 블락 상태를 빠져나오도록 하기위해 다른 스레드에서 해당 스레드의 select에 패킷을 날려 read 이벤트가 발생하도록 해보았는데,

빠져나오는 경우도 있지만 아닌 경우도 있습니다.

liliyse의 이미지

부모프로세스는 하나이고 자식프로세스 생성 문제에 관해서 말인데요.

부모 프로세스는 그냥 그 프로그램 자체 하나이고
자식프로세스만 계속 생성하고 싶은데 어떻게 해야하나요?
fork를 써서
다시 또 돌리면 그 자식프로세스의 자식이 되는거 같아서요...

또 각각이 어떻게 되는지 궁금한데..
1. 프로세스 실행후에 바로 다음 프로세스를 실행하려면 어떻게 써야하나요?
wait나 sleep은 필요하지 않은건가요?

2. 프로세스 실행 종료까지 대기한 다음에 다음 프로세스 실행하는것과
3. 프로세스 종료시 자동 재실행, 프로세스 실행후 바로 다음 프로세스 실행..

이렇게 세가지를 어떻게 구분지어서 어떤 함수를 이용해서 써야할까요?ㅠㅠ
초보라서 아직 구분이 안가네요...

jazzsir의 이미지

시간 단축 위한 C 프로그래밍 (설계 방법)

환경은 임베디드 리눅스에 sqlite로 D/B를 만들어서 사용하고 있고
현재 D/B 엑세스하는 부분의 API를 설계중입니다.

근데, D/B를 엑세스 하는 부분에 시간을 꽤 잡아 먹더군요.
(반면에 읽기,쓰기,D/B닫기 부분은 별로 걸리지 않습니다.)
문제는 기존의 Application(수정불가)에서 하나의 테이블에 순차적으로 쿼리를 할때도
한번 할때마다 D/B를 엑세스 한다는 것입니다.
즉, 테이블 리스트에 500개 있으면 500번의 D/B 엑세스 하는것이죠.

이놈 수정해야 하는데 어떻게 해야 할까요...
아래 소스를 예를 들어

smstigma의 이미지

for문에서 iterator 삭제시 동작

안녕하세요

c++에서 map을 사용하고 있는데요.

for(iter = map.being(); iter != map.end(); iter++)
{
    map.erase(key);
}

대략 이런 식으로 map에서 list를 삭제하도록 코드를 작성했는데요.
map에서 list를 삭제하고 나서 system에서 cpu load만 잡아 먹고, 프로그램은 멍때리고 있는 현상이 있더라고요.

for문에서 뺑뺑이(?) 돌고 있는건가 해서 print를 앞뒤로 마구잡이로 찍어봤는데,
erase 성공한 다음에 for문 끝에 있는 print를 찍고 for문을 빠져나가지도 않고,
for문 맨 앞에 있는 print를 찍지도 않고요.

eventia의 이미지

perl 정규표현식 질문 - 특정형식을 제외한 나머지 삭제

도움을 요청합니다.

첫번째 질문 :

이런 문제입니다.

라인안에 8GG 같은 형식으로 데이타가 들어있습니다.

불필요한 데이타를 없애려고 합니다.

데이타 형식은

[숫자1-2자리] , [.없거나 혹은 한개 또는 두개] , [영어a-g r A-Z 한개 혹은 여러개] , [- 또는 # 없거나 한개]

이런 식입니다. 즉

8AA , 16a , 4r , 4..r , 16aaa- , 8.AA#

이런 식의 데이타들입니다.

각 데이타는 스페이스나 탭, \n 개행문자로 분리되어 있습니다.

$line =~ s/([^(([\d])+[\.]*(([a-g r A-G])+)[#-]*)])//eg;

위의 라인은 제가 억지로 만들어본 것인데 역시 제대로 작동하지 않습니다. ^ 를 잘못 사용한 것 같고, 이런 식으로 써도 되는지도 모르겠습니다.

cratle의 이미지

[완료]쉘 스크립트로 터미널에서 root 로그인이 되나요?

우분투 10.04를 사용 중에 있습니다.

우분투 시작 시에, 자동로그인이 되도록 하였고,
시작 응용 프로그램에 gnome-terminal을 등록하였습니다.

터미널이 화면에 표시되는데, 유저계정입니다. (당연히...)

root로 로그인 해서 실행을 해야하는데,
쉘 스크립트로 root 계정으로 로그인 할 수 있는 방법을 알려주시면 감사하겠습니다.

expect 같은 걸 사용해서... 구글링 해서 몇번 해봤는데, 잘 안되더군요....

페이지

프로그래밍 QnA 구독하기