Hi. The function msgget from sys/msg.h is not being recognized by Netbeans 7.2.1. Have I missed anything?
OS: OpenSUSE 12.2 "Mantis"

#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>

extern void exit();
extern void perror();

int main(void) {

    key_t key;
    int msgflg, msqid;
    fprintf(stdout, "All numeric input is expected to follow C conventions:\n");
    fprintf(stdout, "\t0... is interpreted as hexadecimal,\n");
    fprintf(stdout, "\totherwise, decimal.\n");
    fprintf(stdout, "IPC_PRIVATE == %#x\n", IPC_PRIVATE);

    fprintf(stdout, "Enter key: ");
    scanf("%d", &key);

    fprintf(stdout, "\nExpected flags for msgflg argument are:\n");
    (void) fprintf(stdout, "\tIPC_EXCL =\t%#8.8o\n", IPC_EXCL);
    (void) fprintf(stdout, "\tIPC_CREAT =\t%#8.8o\n", IPC_CREAT);
    (void) fprintf(stdout, "\towner read =\t%#8.8o\n", 0400);
    (void) fprintf(stdout, "\towner write =\t%#8.8o\n", 0200);
    (void) fprintf(stdout, "\tgroup read =\t%#8.8o\n", 040);
    (void) fprintf(stdout, "\tgroup write =\t%#8.8o\n", 020);
    (void) fprintf(stdout, "\tother read =\t%#8.8o\n", 04);
    (void) fprintf(stdout, "\tother write =\t%#8.8o\n", 02);

    (void) fprintf(stdout, "Enter msgflg value: ");
    scanf("%d", &msgflg);

    fprintf(stdout, "\nmsgget: Calling msgget(%#x, %#o)\n", key, msgflg);

    if((msqid = msgget(key, msgflg)) == -1)
    else {
      fprintf(stdout, "Msgget succeeded. msqid = %d\n", msqid);   
This article has been dead for over six months. Start a new discussion instead.