16.05.2015 Views

Working with the Unix OS

Working with the Unix OS

Working with the Unix OS

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Interprocess Communication<br />

#include <br />

main ()<br />

{<br />

int msqid;<br />

msqid = msgget((key_t)10, IPC_CREAT);<br />

printf("Message queue created <strong>with</strong> key %d\n", msqid);<br />

}<br />

$ipcs -q<br />

IPC status from /dev/krnem as of Mon May 3 22:30:31 1993<br />

T ID KEY MODE OWNER GROUP<br />

Message Queues:<br />

q 0 0x0000000a ---------- neville staff<br />

struct ipc_perm {<br />

ushort uid; /* owners user id */<br />

ushort gid; /* owners group id */<br />

ushort cuid; /* creators user id */<br />

ushort cgid; /* creators group id */<br />

ushort mode; /* access modes */<br />

ushort seq; /* slot usage sequence nice number */<br />

key_t key; /* key; */<br />

};<br />

/* -------------------------------------- */<br />

#include <br />

#include <br />

#include <br />

main ( )<br />

{<br />

int msqid;<br />

key_t key = 32769;<br />

msqid = msgget(key, IPC_CREAT | IPC_EXCL);<br />

if (msqid < 0)<br />

perror ("msgget failed");<br />

else<br />

printf ("Message queue created <strong>with</strong> key %d\n", msqid);<br />

}<br />

$ipcrrn -q <br />

QUEUE PERMISSIONS<br />

#include <br />

#include <br />

#include <br />

main()<br />

{<br />

int msqid;<br />

key_t key = 15;<br />

msqid = msgget(key, IPC_CREAT | 0644);<br />

if (msqid < 0)<br />

perror("msgget failed");<br />

else<br />

printf ("Message queue created <strong>with</strong> key %d\n", msqid);<br />

}<br />

$ipcs -q<br />

IPC status from /dev/krnem as of Mon May 3 22:30:31 1993<br />

155

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!