← index
cplusplus11.Examples/UNIX/ipc/mqueue-send.cpp
Source: cplusplus11.Examples/UNIX/ipc/mqueue-send.cpp
/* Adapted from "the Linux Programming Interface"
 Chapter 52
 */
#include<mqueue.h>
#include<iostream>
#include<cstring>

int main(int argc, char **argv) {
  
    if(argc != 3) {
        std::cerr << "Error requires two arguments\n" << argv[0] << "path prority\n";
        exit(EXIT_FAILURE);
    }
    
    int prio = atoi(argv[2]);
    
    mqd_t mqd;
    mqd = mq_open(argv[1], O_CREAT | O_WRONLY);
    if(mqd == (mqd_t) -1) {
        std::cerr << "Error failed to open queue.\n";
        exit(EXIT_FAILURE);
    }
    
    char buffer[1024];
    std::cin >> buffer;
    
    if(mq_send(mqd, buffer, strlen(buffer), prio) == -1) {
        std::cerr << "Error sending message..\n";
    }

    return 0;
}