msgsnd 에라... 어떻게 해야되나요?
글쓴이: pogs / 작성시간: 월, 2003/06/23 - 1:49오후
unix에서 메시지큐에 데이타를 보내려 합니다.
근데 아래와 같이 코딩한 다음 결과를 보는데
msgsnd call 만 나타납니다.
msgsnd err 혹은 msgsnd ok 나타나야 되는데 나타나지 않는군요...
질문 : msgsnd 부분에서 결과(0 혹은 -1)를 받지 못하는 경우는 어떤 경우가 있을까요?
소스 :
printf("msgsnd call \n");
if (msgsnd(id, (char *)&mesg, IN_Q_SIZE, 0) != 0) {
printf("msgsnd err\n);
return ERR;
}
printf("msgsnd ok\n");
Forums:
msgsnd 가 성공하려면 큐에 데이타를 전송할수 있어야 하는데 현재
msgsnd 가 성공하려면 큐에 데이타를 전송할수 있어야 하는데
현재 메모리가 부족해서 대기 상태인듯 하네요.
블락상태로 계속 대기중입니다.
msgsnd(,,, MSG_NOWAIT )
이러면 msgsnd() 못해서 대기하지 않고 즉각 되돌아옵니다.
errno 에 뭐라고 설정되겠지요. (E_AGAIN 이었던가 ??)
MSG_NOWAIT 맞나? man 찾아보세.
내 자식들도 나처럼 !!
error 가 나오는데 어떤에러인지... 어떻게 알 수 있나요?
msgsnd err 가 나오는데요..
어떤 에러인지 알고 싶은데... 어떻게 알 수 있을까요?
초보라서 .. 쩜 가르쳐주세요..
-----------------------
printf("msgsnd call \n");
if (msgsnd(id, (char *)&mesg, IN_Q_SIZE, 0) != 0) {
printf("msgsnd err\n);
return ERR;
}
[code:1]printf("msgsnd err\n
printf("msgsnd err\n);
fprintf() 함수로 대체하세요. prrintf()함수는 호출과 동시에 flush되지 않기 때문에 화면에 메세지가 바로 출력되지 않을 수 있습니다.
msgsnd()함수에서 왜 에러가 발생했는지 알고 싶으시면 errno를 참조하시면 됩니다.
s(˘∼˘*)z,·´″"`°³о$ √(´∀`√)... (˘ヘ˘ㆀ)a
msgsnd전에 뭐 안하셨어요? 그거 딸랑? 뭔가 부족한감이 있는데...
msgsnd전에 뭐 안하셨어요? 그거 딸랑? 뭔가 부족한감이 있는데...
좀더 보여줘봐요. 꼭꼭숨기지 마시고. 앞에 뭔가 msg를 사용하기위해서
그 무언가가 없는듯.
에러의 내용이 알고 싶으시면printf("msgsnd err\n)
에러의 내용이 알고 싶으시면
printf("msgsnd err\n);
를
perror("msgsnd err");
로 하면 화면에 에러내용이 출력됩니다.
light my fire
댓글 달기