<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <!--Converted with LaTeX2HTML 96.1-c (Feb 29, 1996) by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds --> <HTML> <HEAD> <TITLE>6.4 System V IPC</TITLE> <META NAME="description" CONTENT="6.4 System V IPC"> <META NAME="keywords" CONTENT="lpg"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <LINK REL=STYLESHEET HREF="lpg.css"> </HEAD> <BODY LANG="EN"> <A NAME="tex2html577" HREF="node22.html"><IMG WIDTH=37 HEIGHT=24 ALIGN=BOTTOM ALT="next" SRC="/icons//next_motif.gif"></A> <A NAME="tex2html575" HREF="node7.html"><IMG WIDTH=26 HEIGHT=24 ALIGN=BOTTOM ALT="up" SRC="/icons//up_motif.gif"></A> <A NAME="tex2html571" HREF="node20.html"><IMG WIDTH=63 HEIGHT=24 ALIGN=BOTTOM ALT="previous" SRC="/icons//previous_motif.gif"></A> <A NAME="tex2html579" HREF="node1.html"><IMG WIDTH=65 HEIGHT=24 ALIGN=BOTTOM ALT="contents" SRC="/icons//contents_motif.gif"></A> <BR> <B> Next:</B> <A NAME="tex2html578" HREF="node22.html">6.4.1 Fundamental Concepts</A> <B>Up:</B> <A NAME="tex2html576" HREF="node7.html">6 Linux Interprocess Communications</A> <B> Previous:</B> <A NAME="tex2html572" HREF="node20.html">6.3.5 The Infamous SIGPIPE </A> <BR> <P> <H1><A NAME="SECTION00740000000000000000">6.4 System V IPC</A></H1> <P> <BR> <HR> <UL> <LI> <A NAME="tex2html580" HREF="node22.html#SECTION00741000000000000000">6.4.1 Fundamental Concepts</A> <UL> <LI> <A NAME="tex2html581" HREF="node23.html#SECTION00741100000000000000">IPC Identifiers</A> <LI> <A NAME="tex2html582" HREF="node24.html#SECTION00741200000000000000">IPC Keys</A> <LI> <A NAME="tex2html583" HREF="node25.html#SECTION00741300000000000000">The <TT>ipcs</TT> Command</A> <LI> <A NAME="tex2html584" HREF="node26.html#SECTION00741400000000000000">The <TT>ipcrm</TT> Command</A> </UL> <LI> <A NAME="tex2html585" HREF="node27.html#SECTION00742000000000000000">6.4.2 Message Queues</A> <UL> <LI> <A NAME="tex2html586" HREF="node28.html#SECTION00742100000000000000">Basic Concepts</A> <LI> <A NAME="tex2html587" HREF="node29.html#SECTION00742200000000000000">Internal and User Data Structures</A> <UL> <LI> <A NAME="tex2html588" HREF="node30.html#SECTION00742210000000000000">Message buffer</A> <LI> <A NAME="tex2html589" HREF="node31.html#SECTION00742220000000000000">Kernel <TT>msg</TT> structure</A> <LI> <A NAME="tex2html590" HREF="node32.html#SECTION00742230000000000000">Kernel <TT>msqid_ds</TT> structure</A> <LI> <A NAME="tex2html591" HREF="node33.html#SECTION00742240000000000000">Kernel <TT>ipc_perm</TT> structure</A> </UL> <LI> <A NAME="tex2html592" HREF="node34.html#SECTION00742300000000000000">SYSTEM CALL: msgget()</A> <LI> <A NAME="tex2html593" HREF="node35.html#SECTION00742400000000000000">SYSTEM CALL: msgsnd()</A> <LI> <A NAME="tex2html594" HREF="node36.html#SECTION00742500000000000000">SYSTEM CALL: msgctl()</A> <LI> <A NAME="tex2html595" HREF="node37.html#SECTION00742600000000000000">msgtool: An interactive message queue manipulator</A> <UL> <LI> <A NAME="tex2html596" HREF="node38.html#SECTION00742610000000000000">Background</A> <LI> <A NAME="tex2html597" HREF="node39.html#SECTION00742620000000000000">Command Line Syntax</A> <UL> <LI> <A NAME="tex2html598" HREF="node40.html#SECTION00742621000000000000">Sending Messages </A> <LI> <A NAME="tex2html599" HREF="node41.html#SECTION00742622000000000000">Retrieving Messages</A> <LI> <A NAME="tex2html600" HREF="node42.html#SECTION00742623000000000000">Changing the Permissions (mode)</A> <LI> <A NAME="tex2html601" HREF="node43.html#SECTION00742624000000000000">Deleting a Queue</A> </UL> <LI> <A NAME="tex2html602" HREF="node44.html#SECTION00742630000000000000">Examples</A> <LI> <A NAME="tex2html603" HREF="node45.html#SECTION00742640000000000000">The Source</A> </UL> </UL> <LI> <A NAME="tex2html604" HREF="node46.html#SECTION00743000000000000000">6.4.3 Semaphores</A> <UL> <LI> <A NAME="tex2html605" HREF="node47.html#SECTION00743100000000000000">Basic Concepts</A> <LI> <A NAME="tex2html606" HREF="node48.html#SECTION00743200000000000000">Internal Data Structures</A> <UL> <LI> <A NAME="tex2html607" HREF="node49.html#SECTION00743210000000000000">Kernel <TT>semid_ds</TT> structure</A> <LI> <A NAME="tex2html608" HREF="node50.html#SECTION00743220000000000000">Kernel <TT>sem</TT> structure</A> </UL> <LI> <A NAME="tex2html609" HREF="node51.html#SECTION00743300000000000000">SYSTEM CALL: semget()</A> <LI> <A NAME="tex2html610" HREF="node52.html#SECTION00743400000000000000">SYSTEM CALL: semop()</A> <LI> <A NAME="tex2html611" HREF="node53.html#SECTION00743500000000000000">SYSTEM CALL: semctl()</A> <LI> <A NAME="tex2html612" HREF="node54.html#SECTION00743600000000000000">semtool: An interactive semaphore manipulator</A> <UL> <LI> <A NAME="tex2html613" HREF="node55.html#SECTION00743610000000000000">Background</A> <LI> <A NAME="tex2html614" HREF="node56.html#SECTION00743620000000000000">Command Line Syntax</A> <UL> <LI> <A NAME="tex2html615" HREF="node57.html#SECTION00743621000000000000">Creating a Semaphore Set</A> <LI> <A NAME="tex2html616" HREF="node58.html#SECTION00743622000000000000">Locking a Semaphore</A> <LI> <A NAME="tex2html617" HREF="node59.html#SECTION00743623000000000000">Unlocking a Semaphore</A> <LI> <A NAME="tex2html618" HREF="node60.html#SECTION00743624000000000000">Changing the Permissions (mode)</A> <LI> <A NAME="tex2html619" HREF="node61.html#SECTION00743625000000000000">Deleting a Semaphore Set</A> </UL> <LI> <A NAME="tex2html620" HREF="node62.html#SECTION00743630000000000000">Examples</A> <LI> <A NAME="tex2html621" HREF="node63.html#SECTION00743640000000000000">The Source</A> </UL> <LI> <A NAME="tex2html622" HREF="node64.html#SECTION00743700000000000000">semstat: A semtool companion program</A> </UL> <LI> <A NAME="tex2html623" HREF="node65.html#SECTION00744000000000000000">6.4.4 Shared Memory</A> <UL> <LI> <A NAME="tex2html624" HREF="node66.html#SECTION00744100000000000000">Basic Concepts</A> <LI> <A NAME="tex2html625" HREF="node67.html#SECTION00744200000000000000">Internal and User Data Structures</A> <UL> <LI> <A NAME="tex2html626" HREF="node68.html#SECTION00744210000000000000">Kernel <TT>shmid_ds</TT> structure</A> </UL> <LI> <A NAME="tex2html627" HREF="node69.html#SECTION00744300000000000000">SYSTEM CALL: shmget()</A> <LI> <A NAME="tex2html628" HREF="node70.html#SECTION00744400000000000000">SYSTEM CALL: shmat()</A> <LI> <A NAME="tex2html629" HREF="node71.html#SECTION00744500000000000000">SYSTEM CALL: shmctl()</A> <LI> <A NAME="tex2html630" HREF="node72.html#SECTION00744600000000000000">SYSTEM CALL: shmdt()</A> <LI> <A NAME="tex2html631" HREF="node73.html#SECTION00744700000000000000">shmtool: An interactive shared memory manipulator</A> <UL> <LI> <A NAME="tex2html632" HREF="node74.html#SECTION00744710000000000000">Background</A> <LI> <A NAME="tex2html633" HREF="node75.html#SECTION00744720000000000000">Command Line Syntax</A> <UL> <LI> <A NAME="tex2html634" HREF="node76.html#SECTION00744721000000000000">Writing strings to the segment</A> <LI> <A NAME="tex2html635" HREF="node77.html#SECTION00744722000000000000">Retrieving strings from the segment</A> <LI> <A NAME="tex2html636" HREF="node78.html#SECTION00744723000000000000">Changing the Permissions (mode)</A> <LI> <A NAME="tex2html637" HREF="node79.html#SECTION00744724000000000000">Deleting the segment</A> </UL> <LI> <A NAME="tex2html638" HREF="node80.html#SECTION00744730000000000000">Examples</A> <LI> <A NAME="tex2html639" HREF="node81.html#SECTION00744740000000000000">The Source</A> </UL> </UL> </UL> <BR> <HR> <P><ADDRESS> <I>Converted on: <BR> Fri Mar 29 14:43:04 EST 1996</I> </ADDRESS> </BODY> </HTML>