Teste

994 palavras 4 páginas
Página 1 de 5

INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA
Sistemas Operativos ETI - IGE

2º Semestre 2003/2004

Aula 04

Filas de mensagem

1. Criar uma fila de mensagens. Mandar uma mensagem.
Os procedimentos para filas de mensagens são em parte semelhantes aos dos semáforos. Para criar uma fila de mensagens usase a função msgget, como se exemplifica no seguinte programa que também envia uma mensagem para a fila criada. Para enviar uma mensagem usa-se a função msgsnd. O primeiro argumento é, obviamente, o id obtido de msgget. O segundo argumento é a mensagem propriamente dita, o terceiro argumento é o tamanho da mensagem e o último argumento é, normalmente, 0 (mas adiante veremos outras hipóteses). Sobre a mensagem, a regra é que deve existir um campo int (designado de "tipo" da mensagem) antes da mensagem propriamente dita. Dentro desta regra, é o programa que define a estrutura das mensagens. Neste caso foi definida uma estrutura MsgStruct que prevê mensagens contendo, no máximo, 250 caracteres.

#include #include #include typedef struct { int type; char text[250]; } MsgStruct; main() { int msg_id; int status; MsgStruct msg; // ligar à fila de mensagens msg_id = msgget ( 1000, 0600 | IPC_CREAT ); exit_on_error (msg_id, "Criação/Ligação"); // enviar ums mensagem msg.type = 1; strcpy( msg.text, "Uma mensagem qualquer."); status = msgsnd( msg_id, &msg, sizeof(msg.text), 0); exit_on_error (msg_id, "Envio"); printf ("Mensagem enviada!\n"); }

2. Comandos
O comando ipcs -m (ou só ipcs) permite ver as filas de mensagens criadas. Pode também, nessa lista, ver o número de mensagens actualmente em espera na fila.

3. Receber uma mensagem.
O seguinte programa recebe (receber, neste contexto, quer dizer retirar) uma mensagem da fila. A única diferença sensível é que,

file://C:\DOCUME~1\THIAGO~1\CONFIG~1\Temp\VOM29K58.htm

5/9/2005

Página 2 de 5

em vez de msgsnd para mandar uma mensagem, temos a função msgrcv para receber.

Relacionados

  • Teste teste teste teste teste
    297 palavras | 2 páginas
  • Teste teste teste teste
    398 palavras | 2 páginas
  • teste teste teste teste
    1381 palavras | 6 páginas
  • Teste teste teste
    310 palavras | 2 páginas
  • Teste teste teste
    1472 palavras | 6 páginas
  • teste teste
    12398 palavras | 50 páginas
  • teste de teste
    370 palavras | 2 páginas
  • Teste teste
    294 palavras | 2 páginas
  • Teste do teste
    900 palavras | 4 páginas
  • Teste teste
    304 palavras | 2 páginas