## Tcl8.6.17/Tk8.6.17 Documentation > Tk C API > FreeXId

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

### NAME

Tk_FreeXId — X 源資識別子を再使用可能にする　 make X resource identifier available for reuse

### SYNOPSIS

#include <tk.h>
Tk_FreeXId(display, id)

### 引数 ARGUMENTS

Display *display (入力in)
  idが割当てられた表示器｡ Display for which id was allocated.

XID id (入力in)
  もはや使われない X 源資の識別子(窓､字母､画素地図､遊走子､図面文脈､色地図)｡ Identifier of X resource (window, font, pixmap, cursor, graphics context, or colormap) that is no longer in use.

### 説明 DESCRIPTION

Xlib により供給された原資識別子の為の省略時設定の割当譜は非常に単純化された又､原資識別子の再使用を許容しない｡もし長期間応用譜が原資の識別子空白の末尾に到達すると､それは X 通信規定不都合を発生し崩壊する｡ Tk は省略時設定の識別子割当譜を自身の割当譜に置換える､それは識別子の再使用を許容する｡これが働く為には､解放された原資に就いて割当譜に通告する為に Tk_FreeXId が呼出されなければならない｡何時であれ原資を解放した時に Tk は自動的に Tk_FreeXId を呼ぶので､ Tk_GetFont と Tk_GetGC と Tk_GetPixmap のような手続函数を使う場合に Tk_FreeXId を呼ぶ必要はない｡然しながら､もし Xlib から直接原資を割当てた場合､譬えば XCreatePixmap 呼出しによって､対応する Xlib 解放手続函数､譬えば XFreePixmap を呼んだ時は Tk_FreeXId を呼ぶべきである｡もし Tk_FreeXId を呼出さない場合､原資識別子が失われ､それは､全ての利用できる識別子を失う程､応用譜が充分長く実行された時に問題を惹き起こすかもしれない｡ The default allocator for resource identifiers provided by Xlib is very simple-minded and does not allow resource identifiers to be re-used. If a long-running application reaches the end of the resource id space, it will generate an X protocol error and crash. Tk replaces the default id allocator with its own allocator, which allows identifiers to be reused. In order for this to work, Tk_FreeXId must be called to tell the allocator about resources that have been freed. Tk automatically calls Tk_FreeXId whenever it frees a resource, so if you use procedures like Tk_GetFont, Tk_GetGC, and Tk_GetPixmap then you need not call Tk_FreeXId. However, if you allocate resources directly from Xlib, for example by calling XCreatePixmap, then you should call Tk_FreeXId when you call the corresponding Xlib free procedure, such as XFreePixmap. If you do not call Tk_FreeXId then the resource identifier will be lost, which could cause problems if the application runs long enough to lose all of the available identifiers.

### KEYWORDS

resource identifier
Copyright © 1990 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.