2 .\" The Regents of the University of California. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\" must display the following acknowledgement:
14 .\" This product includes software developed by the University of
15 .\" California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\" may be used to endorse or promote products derived from this software
18 .\" without specific prior written permission.
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 .\" @(#)queue.3 8.2 (Berkeley) 1/24/94
35 .\" 2007-12-08, mtk, Converted from mdoc to man macros
37 .\" Japanese Version Copyright (c) 2004 Yuichi SATO
38 .\" all rights reserved.
39 .\" Translated Thu Sep 2 04:41:11 JST 2004
40 .\" by Yuichi SATO <ysato444@yahoo.co.jp>
42 .\"WORD: circular queue ½Û´Ä¥¥å¡¼
44 .TH QUEUE 3 2007-12-28 "Linux" "Linux Programmer's Manual"
46 LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, \
47 LIST_INSERT_HEAD, LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, \
48 TAILQ_INIT, TAILQ_INSERT_AFTER, TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, \
49 TAILQ_REMOVE, CIRCLEQ_ENTRY, CIRCLEQ_HEAD, CIRCLEQ_INIT, \
50 CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, \
51 CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, \
52 CIRCLEQ_REMOVE \- ¥ê¥¹¥È¡¦¥Æ¡¼¥ë (tail) ¥¥å¡¼¡¦½Û´Ä¥¥å¡¼¤Î¼ÂÁõ
55 .B #include <sys/queue.h>
57 .BI "LIST_ENTRY(" TYPE );
58 .BI "LIST_HEAD(" HEADNAME ", " TYPE );
59 .BI "LIST_INIT(LIST_HEAD *" head );
60 .BI "LIST_INSERT_AFTER(LIST_ENTRY *" listelm ", "
61 .BI " TYPE *" elm ", LIST_ENTRY " NAME );
62 .BI "LIST_INSERT_HEAD(LIST_HEAD *" head ", "
63 .BI " TYPE *" elm ", LIST_ENTRY " NAME );
64 .BI "LIST_REMOVE(TYPE *" elm ", LIST_ENTRY " NAME );
66 .BI "TAILQ_ENTRY(" TYPE );
67 .BI "TAILQ_HEAD("HEADNAME ", " TYPE );
68 .BI "TAILQ_INIT(TAILQ_HEAD *" head );
69 .BI "TAILQ_INSERT_AFTER(TAILQ_HEAD *" head ", TYPE *" listelm ", "
70 .BI " TYPE *" elm ", TAILQ_ENTRY " NAME );
71 .BI "TAILQ_INSERT_HEAD(TAILQ_HEAD *" head ", "
72 .BI " TYPE *" elm ", TAILQ_ENTRY " NAME );
73 .BI "TAILQ_INSERT_TAIL(TAILQ_HEAD *" head ", "
74 .BI " TYPE *" elm ", TAILQ_ENTRY " NAME );
75 .BI "TAILQ_REMOVE(TAILQ_HEAD *" head ", TYPE *" elm ", TAILQ_ENTRY " NAME );
77 .BI CIRCLEQ_ENTRY( TYPE );
78 .BI "CIRCLEQ_HEAD(" HEADNAME ", " TYPE );
79 .BI "CIRCLEQ_INIT(CIRCLEQ_HEAD *" head );
80 .BI "CIRCLEQ_INSERT_AFTER(CIRCLEQ_HEAD *" head ", TYPE *" listelm ", "
81 .BI " TYPE *" elm ", CIRCLEQ_ENTRY " NAME );
82 .BI "CIRCLEQ_INSERT_BEFORE(CIRCLEQ_HEAD *" head ", TYPE *" listelm ", "
83 .BI " TYPE *" elm ", CIRCLEQ_ENTRY " NAME );
84 .BI "CIRCLEQ_INSERT_HEAD(CIRCLEQ_HEAD *" head ", "
85 .BI " TYPE *" elm ", CIRCLEQ_ENTRY " NAME );
86 .BI "CIRCLEQ_INSERT_TAIL(CIRCLEQ_HEAD *" head ", "
87 .BI " TYPE *" elm ", CIRCLEQ_ENTRY " NAME );
88 .BI "CIRCLEQ_REMOVE(CIRCLEQ_HEAD *" head ", "
89 .BI " TYPE *" elm ", CIRCLEQ_ENTRY " NAME );
92 ¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤òÄêµÁ¤·¤ÆÁàºî¤¹¤ë:
93 ¥ê¥¹¥È¡¦¥Æ¡¼¥ë¥¥å¡¼¡¦½Û´Ä¥¥å¡¼¡£
94 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤¹¤Ù¤Æ¤Ë¤ª¤¤¤Æ°Ê²¼¤Îµ¡Ç½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë:
99 ¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£
101 ¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤Î¤É¤ÎÍ×ÁǤè¤ê¤â¸å¤ËÁÞÆþ¤¹¤ë¡£
103 ¥ê¥¹¥È¤ÎǤ°Õ¤Î¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë¡£
105 ¥ê¥¹¥È¤ò½çÊý¸þ¤Ëé¤ë¡£
109 ¥ê¥¹¥È¤Ï 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤ÇºÇ¤âñ½ã¤Ç¤¢¤ê¡¢
110 ¾åµ¤Îµ¡Ç½¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£
112 ¥Æ¡¼¥ë¥¥å¡¼¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲ乤ë:
115 ¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲäǤ¤ë¡£
123 Á´¤Æ¤Î¥ê¥¹¥ÈÁÞÆþ¤Èºï½ü¤Ë¤ª¤¤¤Æ¡¢¥ê¥¹¥È¤ÎÀèƬ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
125 ³ÆÀèƬ¥¨¥ó¥È¥ê¤Ï 1 ¤Ä¤Ç¤Ï¤Ê¤¯ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤òɬÍפȤ¹¤ë¡£
127 ¥ê¥¹¥È¤ÈÈæ¤Ù¤Æ¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï 15% Â礤¯¤Ê¤ê¡¢Áàºî¤Ï 20% ÃÙ¤¯¤Ê¤ë¡£
131 ½Û´Ä¥¥å¡¼¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲ乤ë:
136 ¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲäǤ¤ë¡£
138 ¥¨¥ó¥È¥ê¤ò¾¤Î¥¨¥ó¥È¥ê¤ÎÁ°¤ËÄɲäǤ¤ë¡£
140 µÕÊý¸þ¤ËËöÈø¤«¤éÀèƬ¤Øé¤ë¤³¤È¤¬¤Ç¤¤ë¡£
149 Á´¤Æ¤Î¥ê¥¹¥ÈÁÞÆþ¤Èºï½ü¤Ë¤ª¤¤¤Æ¡¢¥ê¥¹¥È¤ÎÀèƬ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
151 ³ÆÀèƬ¥¨¥ó¥È¥ê¤Ï 1 ¤Ä¤Ç¤Ï¤Ê¤¯ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤òɬÍפȤ¹¤ë¡£
153 é¤ëºÝ¤Î½ªÎ»¾ò·ï¤¬¤è¤êÊ£»¨¤Ç¤¢¤ë¡£
155 ¥ê¥¹¥È¤ÈÈæ¤Ù¤Æ¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï 40% Â礤¯¤Ê¤ê¡¢Áàºî¤Ï 45% ÃÙ¤¯¤Ê¤ë¡£
161 ¤Ï¥æ¡¼¥¶ÄêµÁ¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢
165 ¤Î²¿¤ì¤«·¿¤Î¥Õ¥£¡¼¥ë¥É¤È
168 ¤ò´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
171 ¤Ï¥æ¡¼¥¶ÄêµÁ¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢
176 ¤òÍѤ¤¤ÆÀë¸À¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
177 ¤³¤ì¤é¤Î¥Þ¥¯¥í¤¬¤É¤Î¤è¤¦¤Ë»È¤ï¤ì¤ë¤«¤Ë¤Ä¤¤¤Æ¤Î¹¹¤Ê¤ëÀâÌÀ¤Ï¡¢
178 °Ê²¼¤ÎÎã¤ò»²¾È¤¹¤ë¤³¤È¡£
182 ¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£
183 ¤³¤Î¹½Â¤ÂΤϥꥹ¥È¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤ò 1 ¤Ä´Þ¤à¡£
184 Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢
185 Ǥ°Õ¤ÎÍ×ÁǤϥꥹ¥È¤òé¤é¤º¤Ëºï½ü¤Ç¤¤ë¡£
186 ¿·¤·¤¤Í×ÁǤϴû¸¤ÎÍ×ÁǤθå¤Þ¤¿¤Ï¥ê¥¹¥È¤ÎÀèƬ¤ËÄɲäǤ¤ë¡£
188 ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë:
192 LIST_HEAD(HEADNAME, TYPE) head;
198 ¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢
200 ¤Ï¥ê¥ó¥¯Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£
201 ¥ê¥¹¥È¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë:
205 struct HEADNAME *headp;
213 ¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤¤ë¡£)
217 ¤Ï¥ê¥¹¥È¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£
223 ¤Ç»²¾È¤µ¤ì¤ë¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£
229 ¤ò¥ê¥¹¥È¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£
243 ¤ò¥ê¥¹¥È¤«¤éºï½ü¤¹¤ë¡£
247 LIST_HEAD(listhead, entry) head;
248 struct listhead *headp; /* ¥ê¥¹¥È¤ÎÀèƬ¡£*/
251 LIST_ENTRY(entry) entries; /* ¥ê¥¹¥È¡£ */
255 LIST_INIT(&head); /* ¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£*/
257 n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/
258 LIST_INSERT_HEAD(&head, n1, entries);
260 n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/
261 LIST_INSERT_AFTER(n1, n2, entries);
263 for (np = head.lh_first; np != NULL; np = np\->entries.le_next)
266 while (head.lh_first != NULL) /* ºï½ü¤¹¤ë¡£*/
267 LIST_REMOVE(head.lh_first, entries);
270 ¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¤Ë¤Ï
272 ¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£
273 ¤³¤Î¹½Â¤ÂÎ¤Ï 1 ÁȤΥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¡£
274 1 ¤Ä¤Ï¥Æ¡¼¥ë¥¥å¡¼¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ê¡¢
275 ¤â¤¦ 1 ¤Ä¤Ï¥Æ¡¼¥ë¥¥å¡¼¤ÎºÇ¸å¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
276 Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢
277 Ǥ°Õ¤ÎÍ×ÁǤϥơ¼¥ë¥¥å¡¼¤òé¤é¤º¤Ëºï½ü¤Ç¤¤ë¡£
278 ¿·¤·¤¤Í×ÁǤϴû¸¤ÎÍ×ÁǤθå¤Þ¤¿¤Ï¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤ËÄɲäǤ¤ë¡£
280 ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
284 TAILQ_HEAD(HEADNAME, TYPE) head;
290 ¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢
292 ¤Ï¥Æ¡¼¥ë¥¥å¡¼Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£
293 ¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë:
297 struct HEADNAME *headp;
305 ¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤¤ë¡£)
309 ¤Ï¥Æ¡¼¥ë¥¥å¡¼¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£
315 ¤Ç»²¾È¤µ¤ì¤ë¥Æ¡¼¥ë¥¥å¡¼¤ò½é´ü²½¤¹¤ë¡£
321 ¤ò¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£
327 ¤ò¥Æ¡¼¥ë¥¥å¡¼¤ÎËöÈø¤ËÁÞÆþ¤¹¤ë¡£
330 .B TAILQ_INSERT_AFTER
341 ¤ò¥Æ¡¼¥ë¥¥å¡¼¤«¤éºï½ü¤¹¤ë¡£
345 TAILQ_HEAD(tailhead, entry) head;
346 struct tailhead *headp; /* ¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¡£*/
349 TAILQ_ENTRY(entry) entries; /* ¥Æ¡¼¥ë¥¥å¡¼¡£*/
353 TAILQ_INIT(&head); /* ¥¥å¡¼¤ò½é´ü²½¤¹¤ë¡£*/
355 n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/
356 TAILQ_INSERT_HEAD(&head, n1, entries);
358 n1 = malloc(sizeof(struct entry)); /* ËöÈø¤ËÁÞÆþ¤¹¤ë¡£*/
359 TAILQ_INSERT_TAIL(&head, n1, entries);
361 n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/
362 TAILQ_INSERT_AFTER(&head, n1, n2, entries);
364 for (np = head.tqh_first; np != NULL; np = np\->entries.tqe_next)
367 while (head.tqh_first != NULL)
368 TAILQ_REMOVE(&head, head.tqh_first, entries);
373 ¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£
374 ¤³¤Î¹½Â¤ÂÎ¤Ï 1 ÁȤΥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¡£
375 1 ¤Ä¤Ï½Û´Ä¥¥å¡¼¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ê¡¢
376 ¤â¤¦ 1 ¤Ä¤Ï½Û´Ä¥¥å¡¼¤ÎºÇ¸å¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£
377 Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢
378 Ǥ°Õ¤ÎÍ×ÁǤϥ¥å¡¼¤òé¤é¤º¤Ëºï½ü¤Ç¤¤ë¡£
379 ¿·¤·¤¤Í×ÁǤϡ¢´û¸¤ÎÍ×ÁǤθå¤Þ¤¿¤ÏÁ°¡¢¤Þ¤¿¤Ï¥¥å¡¼¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤ËÄɲäǤ¤ë¡£
382 ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
386 CIRCLEQ_HEAD(HEADNAME, TYPE) head;
392 ¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢
394 ¤Ï½Û´Ä¥¥å¡¼Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£
395 ½Û´Ä¥¥å¡¼¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë:
399 struct HEADNAME *headp;
407 ¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤¤ë¡£)
411 ¤Ï½Û´Ä¥¥å¡¼¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£
417 ¤Ç»²¾È¤µ¤ì¤ë½Û´Ä¥¥å¡¼¤ò½é´ü²½¤¹¤ë¡£
420 .B CIRCLEQ_INSERT_HEAD
423 ¤ò½Û´Ä¥¥å¡¼¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£
426 .B CIRCLEQ_INSERT_TAIL
429 ¤ò½Û´Ä¥¥å¡¼¤ÎËöÈø¤ËÁÞÆþ¤¹¤ë¡£
432 .B CIRCLEQ_INSERT_AFTER
440 .B CIRCLEQ_INSERT_AFTER
451 ¤ò½Û´Ä¥¥å¡¼¤«¤éºï½ü¤¹¤ë¡£
455 CIRCLEQ_HEAD(circleq, entry) head;
456 struct circleq *headp; /* ½Û´Ä¥¥å¡¼¤ÎÀèƬ¡£*/
459 CIRCLEQ_ENTRY(entry) entries; /* ½Û´Ä¥¥å¡¼¡£*/
463 CIRCLEQ_INIT(&head); /* ½Û´Ä¥¥å¡¼¤ò½é´ü²½¤¹¤ë¡£*/
465 n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/
466 CIRCLEQ_INSERT_HEAD(&head, n1, entries);
468 n1 = malloc(sizeof(struct entry)); /* ËöÈø¤ËÁÞÆþ¤¹¤ë¡£*/
469 CIRCLEQ_INSERT_TAIL(&head, n1, entries);
471 n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/
472 CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);
474 n2 = malloc(sizeof(struct entry)); /* Á°¤ËÁÞÆþ¤¹¤ë¡£*/
475 CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);
477 for (np = head.cqh_first; np != (void *)&head; np = np\->entries.cqe_next)
480 for (np = head.cqh_last; np != (void *)&head; np = np\->entries.cqe_prev)
483 while (head.cqh_first != (void *)&head)
484 CIRCLEQ_REMOVE(&head, head.cqh_first, entries);
487 POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£
489 queue ´Ø¿ô¤Ï 4.4BSD ¤Ç½é¤á¤ÆÅо줷¤¿¡£