Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Napisz dwa programy: pierwszy wyśle kilka komunikatów o losowo wybranym typie (przyjmijmy, że typy komunikatów należą do przedziału[1,5]), a drugi będzie je odbierze w porządku malejącym lub rosnącym,
- ze względu na wartość typu.
- */
- // Program drugi
- #include <stdio.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/ipc.h>
- #include <sys/msg.h>
- #include <time.h>
- #define FTOK_KEY "/tmp"
- #define FTOK_NUMBER 712
- struct msgbuf {
- long mtype;
- int number;
- };
- int main(void)
- {
- key_t key;
- int id;
- if((key = ftok(FTOK_KEY, FTOK_NUMBER)) == -1){
- perror("ftok");
- return EXIT_FAILURE;
- }
- if((id = msgget(key, 0600 | IPC_CREAT)) == -1){
- perror("msgget");
- return EXIT_FAILURE;
- }
- for(int i = 1; i <= 5; i++){
- struct msgbuf buffer;
- if(msgrcv(id, &buffer, sizeof(buffer.number), i, 0) == -1){
- perror("msgrcv");
- return EXIT_FAILURE;
- }
- printf("Komunikat: %d\n", buffer.number);
- }
- if(msgctl(id, IPC_RMID, 0) == -1){
- perror("msgctl");
- return EXIT_FAILURE;
- }
- return EXIT_SUCCESS;
- }
Add Comment
Please, Sign In to add comment