Scroll to navigation

INSQUE(3) Linux Programmer's Manual INSQUE(3)

名前

insque, remque - キューにアイテムを挿入/削除する

書式

#include <search.h>

void insque(void *elem, void *prev);
void remque(void *elem);


glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

insque(), remque(): _SVID_SOURCE || _XOPEN_SOURCE >= 500

説明

insque() と remque() は双方向連結リスト (doubly-linked list) を操作する関数である。 リスト中のそれぞれの要素は、最初の二つの構造体要素が 次と前へのポインタであるような構造体である。

insque() は elem で示される要素を prev で示される 要素の直後に挿入する。 prev は NULL であってはならない。

remque() は elem で示される要素を双方向連結リストから取り除く。

準拠

POSIX.1-2001.

注意

伝統的に (SunOS, Linux libc 4,5 では) これらの関数の引数は struct qelem *型であり、これは以下のように定義されている。


struct qelem {

struct qelem *q_forw;
struct qelem *q_back;
char q_data[1]; };

この定義は <search.h> をインクルードする前に _GNU_SOURCE を定義することで得られる。

これらの関数のプロトタイプの置かれる場所は、Unix の種類により異なる。 上記は POSIX 版である。 <string.h> にあるシステムもある。 Linux libc4 と libc5 は <stdlib.h> にプロトタイプを置いている。

2008-07-11