Sistemas Operacionais

Chamada de Sistema: msgsnd()


SINÓPSE

#include < sys/types.h >
#include < sys/ipc.h >
#include < sys/msg.h >

int msgsnd ( int msqid, struct msgbuf *msgp, int msgsz, int msgflg )

 

DESCRIÇÃO

A chamada de sistemas msgrcv é usada para mandar uma mensagem para uma fila. msgqid é o número ID da fila para onde a mensagem será enviada. msgp é o buffer onde a mensagem está armazenada. msgsz indica o tamanho da mensagem. msgflg é usada para passar flags adicionais para a chamada. Veja também a página do manual do sistema para maiores informações.

Sob circunstâncias normais, o chamador conhece o número ID da fila de mensagens para o qual a mensagem será enviada e também conhece o tipo de mensagem que precisa ser enviada. Uma estrutura do tipo msgbuf é declarada com o seguinte formato

struct msgbuf {
	long mtype;
	char mtext[SIZE];
};

O usuário irá preencher a estrutura do msgbuf e então chamará a função msgsnd. Veja o Experimento #3 para maiores informações.

 

EXEMPLO


#define SIZE 10

struct msgbuf {
	long mtype;
	char mtext[SIZE];
};

...

int msg_id;
struct msgbuf buf;

...

msg_id = 5;
buf.mtype = 10;
buf.mtext = "abcdef";

...

if( msgsnd(msg_id, &buf, SIZE, 0) == -1 )
  {
    perror( "msgsnd" );
  }

 

VEJA TAMBÉM

msgctl, msgrcv, msgget


DISPONÍVEL

AIX, Linux, Lynx, SunOS e Solaris


Para maiores informações sobre este comando, consulte a página do manual de seu sistema operacional (comando man).