2017-12-07 8 views
-1

msgsnd 함수의 mtext 매개 변수를 통해 변수를 두 개 이상 보내려고합니다. char 배열이어야하지만 모든 변수는 정수형이어야합니다. 고맙습니다! mtext으로msgsnd 함수를 사용하여 여러 변수 보내기

+0

스택 오버플로에 오신 것을 환영합니다! 질문 [편집]하여 [지금까지 가지고있는 코드] (http://whathaveyoutried.com)를 보여주십시오. 문제가있는 코드의 윤곽선 (적어도 선호하는 [mcve])을 포함해야합니다. 그런 다음 특정 문제를 해결할 수 있습니다. 또한 [ask]를 읽어야합니다. –

답변

0

문자의 배열, 그것은 문자 등의 요소가 있어야하지만 그것으로 정수를 저장하려면, 당신은 다음 mtext

또는

로 저장하는 기능 &를 정의 sprintf() 또는 사용자를 사용하여 stringintegers을 변환 할 수 있습니다

일시적 해결책에 대한 요구 사항에 따라 사전 정의 된 구조 (msgbuf)를 수정할 수 있지만 전송 및 수신중인 모든 프로세스에서 동일한 구조를 유지해야하므로 그렇게하지 않는 것이 좋습니다.

  struct msgbuf { 
       long mtype;  /* message type, must be > 0 */ 
       char mtext[1]; /* message data */ 
      }; 

위 구조에 추가 구성원을 추가 할 수 있습니다. 이 구조를 통해서만 정수를 보내는 것이 의무입니까? 하나의 배열에 정수를 저장할 수 있습니다. msgsnd()msgsnd()의 두 번째 인수로 사용하려면 & 배열을 두 번째 인수로 전달할 수 있습니다.

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); 

도움이되기를 바랍니다.