Rechercher une page de manuel
queue
Langue: ja
Version: 54751 (openSuse - 09/10/07)
Section: 3 (Bibliothèques de fonctions)
BSD mandoc
4BSD
̾Á°
LIST_ENTRY LIST_HEAD LIST_INIT LIST_INSERT_AFTER LIST_INSERT_HEAD LIST_REMOVE TAILQ_ENTRY TAILQ_HEAD TAILQ_INIT TAILQ_INSERT_AFTER TAILQ_INSERT_HEAD TAILQ_INSERT_TAIL TAILQ_REMOVE CIRCLEQ_ENTRY CIRCLEQ_HEAD CIRCLEQ_INIT CIRCLEQ_INSERT_AFTER CIRCLEQ_INSERT_BEFORE CIRCLEQ_INSERT_HEAD CIRCLEQ_INSERT_TAIL CIRCLEQ_REMOVE - ¥ê¥¹¥È¡¦¥Æ¡¼¥ë (tail) ¥¥å¡¼¡¦½Û´Ä¥¥å¡¼¤Î¼ÂÁõ½ñ¼°
Fd #include <sys/queue.h> Fn LIST_ENTRY TYPE Fn LIST_HEAD HEADNAME TYPE Fn LIST_INIT LIST_HEAD *head Fn LIST_INSERT_AFTER LIST_ENTRY *listelm TYPE *elm LIST_ENTRY NAME Fn LIST_INSERT_HEAD LIST_HEAD *head TYPE *elm LIST_ENTRY NAME Fn LIST_REMOVE TYPE *elm LIST_ENTRY NAME Fn TAILQ_ENTRY TYPE Fn TAILQ_HEAD HEADNAME TYPE Fn TAILQ_INIT TAILQ_HEAD *head Fn TAILQ_INSERT_AFTER TAILQ_HEAD *head TYPE *listelm TYPE *elm TAILQ_ENTRY NAME Fn TAILQ_INSERT_HEAD TAILQ_HEAD *head TYPE *elm TAILQ_ENTRY NAME Fn TAILQ_INSERT_TAIL TAILQ_HEAD *head TYPE *elm TAILQ_ENTRY NAME Fn TAILQ_REMOVE TAILQ_HEAD *head TYPE *elm TAILQ_ENTRY NAME Fn CIRCLEQ_ENTRY TYPE Fn CIRCLEQ_HEAD HEADNAME TYPE Fn CIRCLEQ_INIT CIRCLEQ_HEAD *head Fn CIRCLEQ_INSERT_AFTER CIRCLEQ_HEAD *head TYPE *listelm TYPE *elm CIRCLEQ_ENTRY NAME Fn CIRCLEQ_INSERT_BEFORE CIRCLEQ_HEAD *head TYPE *listelm TYPE *elm CIRCLEQ_ENTRY NAME Fn CIRCLEQ_INSERT_HEAD CIRCLEQ_HEAD *head TYPE *elm CIRCLEQ_ENTRY NAME Fn CIRCLEQ_INSERT_TAIL CIRCLEQ_HEAD *head TYPE *elm CIRCLEQ_ENTRY NAME Fn CIRCLEQ_REMOVE CIRCLEQ_HEAD *head TYPE *elm CIRCLEQ_ENTRY NAMEÀâÌÀ
¤³¤ì¤é¤Î¥Þ¥¯¥í¤Ï¡¢¼¡¤Î 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤òÄêµÁ¤·¤ÆÁàºî¤¹¤ë: ¥ê¥¹¥È¡¦¥Æ¡¼¥ë¥¥å¡¼¡¦½Û´Ä¥¥å¡¼¡£ 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤¹¤Ù¤Æ¤Ë¤ª¤¤¤Æ°Ê²¼¤Îµ¡Ç½¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë:- ¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£
- ¿·¤¿¤Ê¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤Î¤É¤ÎÍ×ÁǤè¤ê¤â¸å¤ËÁÞÆþ¤¹¤ë¡£
- ¥ê¥¹¥È¤ÎǤ°Õ¤Î¥¨¥ó¥È¥ê¤òºï½ü¤¹¤ë¡£
- ¥ê¥¹¥È¤ò½çÊý¸þ¤Ëé¤ë¡£
¥ê¥¹¥È¤Ï 3 ¤Ä¤Î¥Ç¡¼¥¿¹½Â¤¤ÎÃæ¤ÇºÇ¤âñ½ã¤Ç¤¢¤ê¡¢ ¾åµ¤Îµ¡Ç½¤Î¤ß¤ò¥µ¥Ý¡¼¥È¤¹¤ë¡£
¥Æ¡¼¥ë¥¥å¡¼¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲ乤ë:
- ¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲäǤ¤ë¡£
¤¿¤À¤·:
- Á´¤Æ¤Î¥ê¥¹¥ÈÁÞÆþ¤Èºï½ü¤Ë¤ª¤¤¤Æ¡¢¥ê¥¹¥È¤ÎÀèƬ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
- ³ÆÀèƬ¥¨¥ó¥È¥ê¤Ï 1 ¤Ä¤Ç¤Ï¤Ê¤¯ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤òɬÍפȤ¹¤ë¡£
- ¥ê¥¹¥È¤ÈÈæ¤Ù¤Æ¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï 15% Â礤¯¤Ê¤ê¡¢Áàºî¤Ï 20% ÃÙ¤¯¤Ê¤ë¡£
½Û´Ä¥¥å¡¼¤Ï°Ê²¼¤Îµ¡Ç½¤òÄɲ乤ë:
- ¥¨¥ó¥È¥ê¤ò¥ê¥¹¥È¤ÎºÇ¸å¤ËÄɲäǤ¤ë¡£
- ¥¨¥ó¥È¥ê¤ò¾¤Î¥¨¥ó¥È¥ê¤ÎÁ°¤ËÄɲäǤ¤ë¡£
- µÕÊý¸þ¤ËËöÈø¤«¤éÀèƬ¤Øé¤ë¤³¤È¤¬¤Ç¤¤ë¡£
¤¿¤À¤·:
- Á´¤Æ¤Î¥ê¥¹¥ÈÁÞÆþ¤Èºï½ü¤Ë¤ª¤¤¤Æ¡¢¥ê¥¹¥È¤ÎÀèƬ¤ò»ØÄꤷ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
- ³ÆÀèƬ¥¨¥ó¥È¥ê¤Ï 1 ¤Ä¤Ç¤Ï¤Ê¤¯ 2 ¤Ä¤Î¥Ý¥¤¥ó¥¿¤òɬÍפȤ¹¤ë¡£
- é¤ëºÝ¤Î½ªÎ»¾ò·ï¤¬¤è¤êÊ£»¨¤Ç¤¢¤ë¡£
- ¥ê¥¹¥È¤ÈÈæ¤Ù¤Æ¡¢¥³¡¼¥É¥µ¥¤¥º¤Ï 40% Â礤¯¤Ê¤ê¡¢Áàºî¤Ï 45% ÃÙ¤¯¤Ê¤ë¡£
¥Þ¥¯¥íÄêµÁ¤Ë¤ª¤¤¤Æ Fa TYPE ¤Ï¥æ¡¼¥¶ÄêµÁ¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ LIST_ENTRY TAILQ_ENTRY CIRCLEQ_ENTRY ¤Î²¿¤ì¤«·¿¤Î¥Õ¥£¡¼¥ë¥É¤È »ØÄꤵ¤ì¤¿ Fa NAME ¤ò´Þ¤Þ¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ °ú¤¿ô Fa HEADNAME ¤Ï¥æ¡¼¥¶ÄêµÁ¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ ¥Þ¥¯¥í LIST_HEAD TAILQ_HEAD CIRCLEQ_HEAD ¤òÍѤ¤¤ÆÀë¸À¤µ¤ì¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ ¤³¤ì¤é¤Î¥Þ¥¯¥í¤¬¤É¤Î¤è¤¦¤Ë»È¤ï¤ì¤ë¤«¤Ë¤Ä¤¤¤Æ¤Î¹¹¤Ê¤ëÀâÌÀ¤Ï¡¢ °Ê²¼¤ÎÎã¤ò»²¾È¤¹¤ë¤³¤È¡£
¥ê¥¹¥È
¥ê¥¹¥È¤ÎÀèƬ¤Ë¤Ï¡¢ LIST_HEAD ¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ ¤³¤Î¹½Â¤ÂΤϥꥹ¥È¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤ò 1 ¤Ä´Þ¤à¡£ Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ Ǥ°Õ¤ÎÍ×ÁǤϥꥹ¥È¤òé¤é¤º¤Ëºï½ü¤Ç¤¤ë¡£ ¿·¤·¤¤Í×ÁǤϴû¸¤ÎÍ×ÁǤθå¤Þ¤¿¤Ï¥ê¥¹¥È¤ÎÀèƬ¤ËÄɲäǤ¤ë¡£ Fa LIST_HEAD ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤Æ¤¤¤ë:LIST_HEAD(HEADNAME, TYPE) head;
¤³¤³¤Ç Fa HEADNAME ¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ Fa TYPE ¤Ï¥ê¥ó¥¯Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ ¥ê¥¹¥È¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë:
struct HEADNAME *headp;
(̾Á° head ¤È headp ¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤¤ë¡£)
¥Þ¥¯¥í LIST_ENTRY ¤Ï¥ê¥¹¥È¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£
¥Þ¥¯¥í LIST_INIT ¤Ï Fa head ¤Ç»²¾È¤µ¤ì¤ë¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£
¥Þ¥¯¥í LIST_INSERT_HEAD ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤ò¥ê¥¹¥È¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í LIST_INSERT_AFTER ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤òÍ×ÁÇ Fa listelm ¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í LIST_REMOVE ¤ÏÍ×ÁÇ Fa elm ¤ò¥ê¥¹¥È¤«¤éºï½ü¤¹¤ë¡£
¥ê¥¹¥È¤ÎÎã
LIST_HEAD(listhead, entry) head; struct listhead *headp; /* ¥ê¥¹¥È¤ÎÀèƬ¡£*/ struct entry { ... LIST_ENTRY(entry) entries; /* ¥ê¥¹¥È¡£*/ ... } *n1, *n2, *np; LIST_INIT(&head); /* ¥ê¥¹¥È¤ò½é´ü²½¤¹¤ë¡£*/ n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ LIST_INSERT_HEAD(&head, n1, entries); n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ LIST_INSERT_AFTER(n1, n2, entries); /* ½çÊý¸þ¤Ëé¤ë¡£*/ for (np = head.lh_first; np != NULL; np = np->entries.le_next) np-> ... while (head.lh_first != NULL) /* ºï½ü¤¹¤ë¡£*/ LIST_REMOVE(head.lh_first, entries);
¥Æ¡¼¥ë¥¥å¡¼
¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¤Ë¤Ï TAILQ_HEAD ¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ ¤³¤Î¹½Â¤ÂÎ¤Ï 1 ÁȤΥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¡£ 1 ¤Ä¤Ï¥Æ¡¼¥ë¥¥å¡¼¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ê¡¢ ¤â¤¦ 1 ¤Ä¤Ï¥Æ¡¼¥ë¥¥å¡¼¤ÎºÇ¸å¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ Ǥ°Õ¤ÎÍ×ÁǤϥơ¼¥ë¥¥å¡¼¤òé¤é¤º¤Ëºï½ü¤Ç¤¤ë¡£ ¿·¤·¤¤Í×ÁǤϴû¸¤ÎÍ×ÁǤθå¤Þ¤¿¤Ï¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤ËÄɲäǤ¤ë¡£ Fa TAILQ_HEAD ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:TAILQ_HEAD(HEADNAME, TYPE) head;
¤³¤³¤Ç HEADNAME ¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ TYPE ¤Ï¥Æ¡¼¥ë¥¥å¡¼Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ ¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë:
struct HEADNAME *headp;
(̾Á° head ¤È headp ¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤¤ë¡£)
¥Þ¥¯¥í TAILQ_ENTRY ¤Ï¥Æ¡¼¥ë¥¥å¡¼¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£
¥Þ¥¯¥í TAILQ_INIT ¤Ï Fa head ¤Ç»²¾È¤µ¤ì¤ë¥Æ¡¼¥ë¥¥å¡¼¤ò½é´ü²½¤¹¤ë¡£
¥Þ¥¯¥í TAILQ_INSERT_HEAD ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤ò¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í TAILQ_INSERT_TAIL ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤ò¥Æ¡¼¥ë¥¥å¡¼¤ÎËöÈø¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í TAILQ_INSERT_AFTER ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤òÍ×ÁÇ Fa listelm ¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í TAILQ_REMOVE ¤ÏÍ×ÁÇ Fa elm ¤ò¥Æ¡¼¥ë¥¥å¡¼¤«¤éºï½ü¤¹¤ë¡£
¥Æ¡¼¥ë¥¥å¡¼¤ÎÎã
TAILQ_HEAD(tailhead, entry) head; struct tailhead *headp; /* ¥Æ¡¼¥ë¥¥å¡¼¤ÎÀèƬ¡£*/ struct entry { ... TAILQ_ENTRY(entry) entries; /* ¥Æ¡¼¥ë¥¥å¡¼¡£*/ ... } *n1, *n2, *np; TAILQ_INIT(&head); /* ¥¥å¡¼¤ò½é´ü²½¤¹¤ë¡£*/ n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ TAILQ_INSERT_HEAD(&head, n1, entries); n1 = malloc(sizeof(struct entry)); /* ËöÈø¤ËÁÞÆþ¤¹¤ë¡£*/ TAILQ_INSERT_TAIL(&head, n1, entries); n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ TAILQ_INSERT_AFTER(&head, n1, n2, entries); /* ½çÊý¸þ¤Ëé¤ë¡£*/ for (np = head.tqh_first; np != NULL; np = np->entries.tqe_next) np-> ... /* ºï½ü¤¹¤ë¡£*/ while (head.tqh_first != NULL) TAILQ_REMOVE(&head, head.tqh_first, entries);
½Û´Ä¥¥å¡¼
½Û´Ä¥¥å¡¼¤ÎÀèƬ¤Ë¤Ï CIRCLEQ_HEAD ¥Þ¥¯¥í¤ÇÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤ¬ÃÖ¤«¤ì¤ë¡£ ¤³¤Î¹½Â¤ÂÎ¤Ï 1 ÁȤΥݥ¤¥ó¥¿¤ò´Þ¤ó¤Ç¤¤¤ë¡£ 1 ¤Ä¤Ï½Û´Ä¥¥å¡¼¤ÎºÇ½é¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ê¡¢ ¤â¤¦ 1 ¤Ä¤Ï½Û´Ä¥¥å¡¼¤ÎºÇ¸å¤ÎÍ×ÁǤؤΥݥ¤¥ó¥¿¤Ç¤¢¤ë¡£ Í×ÁÇ¤Ï 2 ½Å¤Ë¥ê¥ó¥¯¤µ¤ì¤Æ¤ª¤ê¡¢ Ǥ°Õ¤ÎÍ×ÁǤϥ¥å¡¼¤òé¤é¤º¤Ëºï½ü¤Ç¤¤ë¡£ ¿·¤·¤¤Í×ÁǤϡ¢´û¸¤ÎÍ×ÁǤθå¤Þ¤¿¤ÏÁ°¡¢¤Þ¤¿¤Ï¥¥å¡¼¤ÎÀèƬ¤Þ¤¿¤ÏËöÈø¤ËÄɲäǤ¤ë¡£ A Fa CIRCLEQ_HEAD ¹½Â¤ÂΤϰʲ¼¤Î¤è¤¦¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:CIRCLEQ_HEAD(HEADNAME, TYPE) head;
¤³¤³¤Ç HEADNAME ¤ÏÄêµÁ¤µ¤ì¤ë¹½Â¤ÂΤÎ̾Á°¤Ç¤¢¤ê¡¢ TYPE ¤Ï½Û´Ä¥¥å¡¼Æâ¤Ç¥ê¥ó¥¯¤µ¤ì¤ëÍ×ÁǤη¿¤Ç¤¢¤ë¡£ ½Û´Ä¥¥å¡¼¤ÎÀèƬ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ï¡¢¤½¤Î¸å¤Ç¼¡¤Î¤è¤¦¤ËÀë¸À¤µ¤ì¤ë:
struct HEADNAME *headp;
(̾Á° head ¤È headp ¤Ï¥æ¡¼¥¶¤¬ÁªÂò¤Ç¤¤ë¡£)
¥Þ¥¯¥í CIRCLEQ_ENTRY ¤Ï½Û´Ä¥¥å¡¼¤ÎÍ×ÁǤòÀܳ¤¹¤ë¹½Â¤ÂΤòÀë¸À¤¹¤ë¡£
¥Þ¥¯¥í CIRCLEQ_INIT ¤Ï Fa head ¤Ç»²¾È¤µ¤ì¤ë½Û´Ä¥¥å¡¼¤ò½é´ü²½¤¹¤ë¡£
¥Þ¥¯¥í CIRCLEQ_INSERT_HEAD ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤ò½Û´Ä¥¥å¡¼¤ÎÀèƬ¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í CIRCLEQ_INSERT_TAIL ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤ò½Û´Ä¥¥å¡¼¤ÎËöÈø¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í CIRCLEQ_INSERT_AFTER ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤òÍ×ÁÇ Fa listelm ¤Î¸å¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í CIRCLEQ_INSERT_AFTER ¤Ï¿·¤¿¤ÊÍ×ÁÇ Fa elm ¤òÍ×ÁÇ Fa listelm ¤ÎÁ°¤ËÁÞÆþ¤¹¤ë¡£
¥Þ¥¯¥í CIRCLEQ_REMOVE ¤ÏÍ×ÁÇ Fa elm ¤ò½Û´Ä¥¥å¡¼¤«¤éºï½ü¤¹¤ë¡£
½Û´Ä¥¥å¡¼¤ÎÎã
CIRCLEQ_HEAD(circleq, entry) head; struct circleq *headp; /* ½Û´Ä¥¥å¡¼¤ÎÀèƬ¡£*/ struct entry { ... CIRCLEQ_ENTRY(entry) entries; /* ½Û´Ä¥¥å¡¼¡£*/ ... } *n1, *n2, *np; CIRCLEQ_INIT(&head); /* ½Û´Ä¥¥å¡¼¤ò½é´ü²½¤¹¤ë¡£*/ n1 = malloc(sizeof(struct entry)); /* ÀèƬ¤ËÁÞÆþ¤¹¤ë¡£*/ CIRCLEQ_INSERT_HEAD(&head, n1, entries); n1 = malloc(sizeof(struct entry)); /* ËöÈø¤ËÁÞÆþ¤¹¤ë¡£*/ CIRCLEQ_INSERT_TAIL(&head, n1, entries); n2 = malloc(sizeof(struct entry)); /* ¸å¤í¤ËÁÞÆþ¤¹¤ë¡£*/ CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries); n2 = malloc(sizeof(struct entry)); /* Á°¤ËÁÞÆþ¤¹¤ë¡£*/ CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries); /* ½çÊý¸þ¤Ëé¤ë¡£*/ for (np = head.cqh_first; np != (void *)&head; np = np->entries.cqe_next) np-> ... /* µÕÊý¸þ¤Ëé¤ë¡£*/ for (np = head.cqh_last; np != (void *)&head; np = np->entries.cqe_prev) np-> ... /* ºï½ü¤¹¤ë¡£*/ while (head.cqh_first != (void *)&head) CIRCLEQ_REMOVE(&head, head.cqh_first, entries);
½àµò
POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£ BSD ·Ï¤Ë¸ºß¤¹¤ë¡£ queue ´Ø¿ô¤Ï BSD 4.4 ¤Ç½é¤á¤ÆÅо줷¤¿¡£Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre