#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).