프로그래밍 QnA

하하의 이미지

socket close 관련 질문.

혹시 close(sockfd)를 할때

쓰레드가 블럭 되는 현상을 경험 하신 분 계신가요?

strerror(errno)를 해보면 아래와 같은 에러 메세지가 떨어집니다.

Invalid or incomplete multibyte or wide character

위 경우는 모바일 서버를 개발하면서 처음 접해 본것이구요...

close를 했을 경우 수초(5~6) 동안 close를 호출한 쓰레드가 블럭됩니다.

불행히도 close를 호출하는 쓰레드는 모든 데이터를 읽는 쓰레드라서 해당

소켓이 닫힐 때 까지 불통입니다.....

크.. 조언 부탁

peccavi의 이미지

스레드와 시그널의 관계

안녕하세요..

A, B 두 개의 스레드가 있습니다.

A가 먼저 시작됩니다. A 에서 SIGSEGV 시그널을 등록했습니다.

B 스레드를 시작시켰습니다.

지금 두 스레드가 돌고 있습니다.

여기서 질문!

B 스레드에서 segment fault가 났습니다.

A 스레드에서 등록한 시그널 핸들러가 작동하나요?

(해보면 될것 아니냐...)

해보고 오겠습니다..

그동안.. 짧은 답변이라도 부탁드리겠습니다.

비가 또오네요.. 오늘도 집에 가긴 틀렸습니다..

khk의 이미지

함수 포인터 관련 질문...

typedef void (* abc) (void *d, char *e);
void (* abc) (void *d, char *e);

위 두 문장의 차이점이 뭔가요?
함수 포인터 헤깔리네요...

초코리의 이미지

[질문] 소켓 프로그래밍시 특정 DNS에 쿼리 하게 하려면 어떻게

리눅스에서 네트워크 소켓프로그래밍을 하고 있습니다.

gethostbyname()등의 API를 사용하면

resolv.conf 같은 곳에 등록된

DNS를 가지고 쿼리를 하는데요

프로그래밍시 특정 DNS에 쿼리를 하고 싶으면 어떻게 해야할까요??

jucys의 이미지

C에서 사용할만한 hash table

안녕하세요.

C에서 사용할만한 hash lookup table 찾고 있습니다.

enter, lookup, delete 등의 오퍼레이션이 가능해야되는데,

아쉽게도 hsearch 함수는 delete을 지원하지 않네요.

gperf라는 것도 찾아봤는데, 얼핏 보니 keywords 파일을 입력으로 넣어 만든는것으로 보이는데, 저희가 사용하는 key가 32비트라 2^32개의 스트링을 미리 만들어야되는것처럼 보이는데 적당하지 않아보입니다.

C에서 사용할만한 hash table 코드를 아시는 분은 알려주시면 고맙겠습니다.

moonzoo의 이미지

doxygen

여기 게시판에서 가끔 doxygen에 대해서

좋다는 얘기를 들어서 window 용으로

doxygen을 받아서 깔았는데

doxygen wizard라는 넘이 있더라구요..

근데 제공된 documentation만으로는 영어가 짧아서 그런지--;

애로사항이 꽃 피었습니다.

만약 프로젝트 A의 구조가 다음과 같은 경우에(간단히.)

A폴더 - inc폴더 => *.h 파일들..
- src폴더 => *.c 파일들..

doxygen wizard을 이용해서 위의 프로젝트 A에 대해서

어떻게 작업을 해줘야 하는지 궁금합니다.

jamongx의 이미지

VxWorks system이 뭔가요?

이너넷 찾아봐도 이런 글만 있네요
어디 좀더 Cool~ 한 자료 없을까요?

Tornado라는 개발툴로 윈도우에서 자신이 필요한 컴포넌트를 구성한다음에 
VxWorks보드에 있는 롬에 굽게 됩니다. 
일명 임베디드 OS 
그러면 언제난 껐다켜도 기본적이 OS를 가진 장비를 돌릴수 있습니다. 

Windows는 필요없는 잡다한 기능들이 있을수있지만 
VxWorks OS는 최적화된 OS로 장비를 돌리는 것입니다. 
대부분 통신장비 등등.. 
amicus의 이미지

AgentDirector

AgentDirector Proccess에 대해서 알고 싶습니다.

제가 운영하고 있는 웹서버가 자주 다운됩니다.
웹서버2 + 디비서버1개 ( 리눅스7.1 + 아파치 1.3 + 톰캣 3.1 + mysql)

웹서버가 다운되었을 때, 해당 서버의 자바프로세스가 풀로 찹니다.

그런데 더 이상한 것은 리눅스 명령어에서 top을 실행했을 때, AgentDirector 프로세스가 CPU의 용량을 99% 차지하는 경우가 있고, time 400여시간으로 나옵니다.

이프로세스가 머하는 것인지 알고 싶습니다.

sr97의 이미지

system call, /proc, ioctl 이 세가지 중 어떤 방법이 가장 빠른

user level의 application program과 kernel module을 같이 제작했습니다.
이제 kernel module에서 application program으로 정보를 제공해야 합니다.
정보의 제공은 application program의 요청에 따라 kernel module이 제공하는 방식입니다.

kernel module과 application program이 통신하는 방법은 제가 알기로
system call interface와 /proc file system, ioctl등의 방법이 있는데
이 세가지중 어떤 방식이 가장 빠른지 궁금합니다.

물론 각 방식은 나름대로의 용도가 존재한 다는 것은 알고 있지만

leonhan의 이미지

커널 device driver에서 usr app의 쓰레드로 시그널보다 좋은 방

usr app 은 다음과 같습니다. a와 b는 스레드로 따로 돌고 있습니다.
func a ()
{
while(1)
{
printf (a\n);
wait signal(sigusr1);
printf (b\n);
wait signal(sigusr2);
}
}

func b()
{
printf(c\n);
wait signal(sigusr2);
}

즉 sigusr2가 왔을때 printf a와 c 가 동시에 수행되어야 합니다.

이러한 시그널은 커널 device driver에서 인트럽트가 2개가 호출되면

intfunc1
{
signal (sigusr1);
}
intfunc2
{
signal (sigusr2);
}
이렇습니다.
그런데 sigusr2를 보내도 usr app의 두 함수가 동시에 받질 못합니다.

페이지

프로그래밍 QnA 구독하기