#include < sys/types.h > #include < sys/ipc.h > #include < sys/msg.h > int msgsnd ( int msqid, struct msgbuf *msgp, int msgsz, int msgflg )
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.
#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" );
}
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).