virkeyname-osx

title: virkeyname-osx(7)

summary: Key name values for osx

text:
# virkeyname-osx(7)

## Name
virkeyname-osx - Key name values for osx

## DESCRIPTION
List of osx key code names, with corresponding key code values

- None Key value 0 (0x0)

- Escape Key value 1 (0x1)

- ANSI_1 Key value 2 (0x2)

- ANSI_2 Key value 3 (0x3)

- ANSI_3 Key value 4 (0x4)

- ANSI_4 Key value 5 (0x5)

- ANSI_5 Key value 6 (0x6)

- ANSI_6 Key value 7 (0x7)

- ANSI_7 Key value 8 (0x8)

- ANSI_8 Key value 9 (0x9)

- ANSI_9 Key value 10 (0xa)

- ANSI_0 Key value 11 (0xb)

- ANSI_Minus Key value 12 (0xc)

- ANSI_Equal Key value 13 (0xd)

- Delete Key value 14 (0xe)

- Tab Key value 15 (0xf)

- ANSI_Q Key value 16 (0x10)

- ANSI_W Key value 17 (0x11)

- ANSI_E Key value 18 (0x12)

- ANSI_R Key value 19 (0x13)

- ANSI_T Key value 20 (0x14)

- ANSI_Y Key value 21 (0x15)

- ANSI_U Key value 22 (0x16)

- ANSI_I Key value 23 (0x17)

- ANSI_O Key value 24 (0x18)

- ANSI_P Key value 25 (0x19)

- ANSI_LeftBracket Key value 26 (0x1a)

- ANSI_RightBracket Key value 27 (0x1b)

- Return Key value 28 (0x1c)

- Control Key value 29 (0x1d)

- ANSI_A Key value 30 (0x1e)

- ANSI_S Key value 31 (0x1f)

- ANSI_D Key value 32 (0x20)

- ANSI_F Key value 33 (0x21)

- ANSI_G Key value 34 (0x22)

- ANSI_H Key value 35 (0x23)

- ANSI_J Key value 36 (0x24)

- ANSI_K Key value 37 (0x25)

- ANSI_L Key value 38 (0x26)

- ANSI_Semicolon Key value 39 (0x27)

- ANSI_Quote Key value 40 (0x28)

- ANSI_Grave Key value 41 (0x29)

- Shift Key value 42 (0x2a)

- ANSI_Backslash Key value 43 (0x2b)

- ANSI_Z Key value 44 (0x2c)

- ANSI_X Key value 45 (0x2d)

- ANSI_C Key value 46 (0x2e)

- ANSI_V Key value 47 (0x2f)

- ANSI_B Key value 48 (0x30)

- ANSI_N Key value 49 (0x31)

- ANSI_M Key value 50 (0x32)

- ANSI_Comma Key value 51 (0x33)

- ANSI_Period Key value 52 (0x34)

- ANSI_Slash Key value 53 (0x35)

- RightShift Key value 54 (0x36)

- ANSI_KeypadMultiply Key value 55 (0x37)

- Option Key value 56 (0x38)

- Space Key value 57 (0x39)

- CapsLock Key value 58 (0x3a)

- F1 Key value 59 (0x3b)

- F2 Key value 60 (0x3c)

- F3 Key value 61 (0x3d)

- F4 Key value 62 (0x3e)

- F5 Key value 63 (0x3f)

- F6 Key value 64 (0x40)

- F7 Key value 65 (0x41)

- F8 Key value 66 (0x42)

- F9 Key value 67 (0x43)

- F10 Key value 68 (0x44)

- ANSI_KeypadClear Key value 69 (0x45)

- None Key value 70 (0x46)

- ANSI_Keypad7 Key value 71 (0x47)

- ANSI_Keypad8 Key value 72 (0x48)

- ANSI_Keypad9 Key value 73 (0x49)

- ANSI_KeypadMinus Key value 74 (0x4a)

- ANSI_Keypad4 Key value 75 (0x4b)

- ANSI_Keypad5 Key value 76 (0x4c)

- ANSI_Keypad6 Key value 77 (0x4d)

- ANSI_KeypadPlus Key value 78 (0x4e)

- ANSI_Keypad1 Key value 79 (0x4f)

- ANSI_Keypad2 Key value 80 (0x50)

- ANSI_Keypad3 Key value 81 (0x51)

- ANSI_Keypad0 Key value 82 (0x52)

- ANSI_KeypadDecimal Key value 83 (0x53)

- None Key value 84 (0x54)

- None Key value 85 (0x55)

- ISO_Section Key value 86 (0x56)

- F11 Key value 87 (0x57)

- F12 Key value 88 (0x58)

- JIS_Underscore Key value 89 (0x59)

- None Key value 90 (0x5a)

- None Key value 91 (0x5b)

- None Key value 92 (0x5c)

- None Key value 93 (0x5d)

- None Key value 94 (0x5e)

- JIS_KeypadComma Key value 95 (0x5f)

- ANSI_KeypadEnter Key value 96 (0x60)

- RightControl Key value 97 (0x61)

- ANSI_KeypadDivide Key value 98 (0x62)

- None Key value 99 (0x63)

- RightOption Key value 100 (0x64)

- None Key value 101 (0x65)

- Home Key value 102 (0x66)

- UpArrow Key value 103 (0x67)

- PageUp Key value 104 (0x68)

- LeftArrow Key value 105 (0x69)

- RightArrow Key value 106 (0x6a)

- End Key value 107 (0x6b)

- DownArrow Key value 108 (0x6c)

- PageDown Key value 109 (0x6d)

- None Key value 110 (0x6e)

- ForwardDelete Key value 111 (0x6f)

- None Key value 112 (0x70)

- Mute Key value 113 (0x71)

- VolumeDown Key value 114 (0x72)

- VolumeUp Key value 115 (0x73)

- None Key value 116 (0x74)

- ANSI_KeypadEquals Key value 117 (0x75)

- None Key value 118 (0x76)

- None Key value 119 (0x77)

- None Key value 120 (0x78)

- None Key value 121 (0x79)

- JIS_Kana Key value 122 (0x7a)

- JIS_Eisu Key value 123 (0x7b)

- JIS_Yen Key value 124 (0x7c)

- Command Key value 125 (0x7d)

- RightCommand Key value 126 (0x7e)

- None Key value 127 (0x7f)

- None Key value 128 (0x80)

- None Key value 129 (0x81)

- None Key value 130 (0x82)

- None Key value 131 (0x83)

- None Key value 132 (0x84)

- None Key value 133 (0x85)

- None Key value 134 (0x86)

- None Key value 135 (0x87)

- None Key value 136 (0x88)

- None Key value 137 (0x89)

- Help Key value 138 (0x8a)

- None Key value 139 (0x8b)

- None Key value 140 (0x8c)

- None Key value 141 (0x8d)

- None Key value 142 (0x8e)

- None Key value 143 (0x8f)

- None Key value 144 (0x90)

- None Key value 145 (0x91)

- None Key value 146 (0x92)

- None Key value 147 (0x93)

- None Key value 148 (0x94)

- None Key value 149 (0x95)

- None Key value 150 (0x96)

- None Key value 151 (0x97)

- None Key value 152 (0x98)

- None Key value 153 (0x99)

- None Key value 154 (0x9a)

- None Key value 155 (0x9b)

- None Key value 156 (0x9c)

- None Key value 157 (0x9d)

- None Key value 158 (0x9e)

- None Key value 159 (0x9f)

- None Key value 160 (0xa0)

- None Key value 161 (0xa1)

- None Key value 162 (0xa2)

- None Key value 163 (0xa3)

- None Key value 164 (0xa4)

- None Key value 165 (0xa5)

- None Key value 166 (0xa6)

- None Key value 167 (0xa7)

- None Key value 168 (0xa8)

- None Key value 169 (0xa9)

- None Key value 170 (0xaa)

- None Key value 171 (0xab)

- None Key value 172 (0xac)

- None Key value 173 (0xad)

- None Key value 174 (0xae)

- None Key value 175 (0xaf)

- None Key value 176 (0xb0)

- None Key value 177 (0xb1)

- None Key value 178 (0xb2)

- None Key value 179 (0xb3)

- None Key value 180 (0xb4)

- None Key value 181 (0xb5)

- None Key value 182 (0xb6)

- F13 Key value 183 (0xb7)

- F14 Key value 184 (0xb8)

- F15 Key value 185 (0xb9)

- F16 Key value 186 (0xba)

- F17 Key value 187 (0xbb)

- F18 Key value 188 (0xbc)

- F19 Key value 189 (0xbd)

- F20 Key value 190 (0xbe)

- None Key value 191 (0xbf)

- None Key value 192 (0xc0)

- None Key value 193 (0xc1)

- None Key value 194 (0xc2)

- None Key value 195 (0xc3)

- None Key value 196 (0xc4)

- None Key value 197 (0xc5)

- None Key value 198 (0xc6)

- None Key value 199 (0xc7)

- None Key value 200 (0xc8)

- None Key value 201 (0xc9)

- None Key value 202 (0xca)

- None Key value 203 (0xcb)

- None Key value 204 (0xcc)

- None Key value 205 (0xcd)

- None Key value 206 (0xce)

- None Key value 207 (0xcf)

- None Key value 208 (0xd0)

- None Key value 209 (0xd1)

- None Key value 210 (0xd2)

- None Key value 211 (0xd3)

- None Key value 212 (0xd4)

- None Key value 213 (0xd5)

- None Key value 214 (0xd6)

- None Key value 215 (0xd7)

- None Key value 216 (0xd8)

- None Key value 217 (0xd9)

- None Key value 218 (0xda)

- None Key value 219 (0xdb)

- None Key value 220 (0xdc)

- None Key value 221 (0xdd)

- None Key value 222 (0xde)

- None Key value 223 (0xdf)

- None Key value 224 (0xe0)

- None Key value 225 (0xe1)

- None Key value 226 (0xe2)

- None Key value 227 (0xe3)

- None Key value 228 (0xe4)

- None Key value 229 (0xe5)

- None Key value 230 (0xe6)

- None Key value 231 (0xe7)

- None Key value 232 (0xe8)

- None Key value 233 (0xe9)

- None Key value 234 (0xea)

- None Key value 235 (0xeb)

- None Key value 236 (0xec)

- None Key value 237 (0xed)

- None Key value 238 (0xee)

- None Key value 239 (0xef)

- None Key value 240 (0xf0)

- None Key value 241 (0xf1)

- None Key value 242 (0xf2)

- None Key value 243 (0xf3)

- None Key value 244 (0xf4)

- None Key value 245 (0xf5)

- None Key value 246 (0xf6)

- None Key value 247 (0xf7)

- None Key value 248 (0xf8)

- None Key value 249 (0xf9)

- None Key value 250 (0xfa)

- None Key value 251 (0xfb)

- None Key value 252 (0xfc)

- None Key value 253 (0xfd)

- None Key value 254 (0xfe)

- None Key value 255 (0xff)

- None Key value 256 (0x100)

- None Key value 257 (0x101)

- None Key value 258 (0x102)

- None Key value 259 (0x103)

- None Key value 260 (0x104)

- None Key value 261 (0x105)

- None Key value 262 (0x106)

- None Key value 263 (0x107)

- None Key value 264 (0x108)

- None Key value 265 (0x109)

- None Key value 272 (0x110)

- None Key value 273 (0x111)

- None Key value 274 (0x112)

- None Key value 275 (0x113)

- None Key value 276 (0x114)

- None Key value 277 (0x115)

- None Key value 278 (0x116)

- None Key value 279 (0x117)

- None Key value 288 (0x120)

- None Key value 289 (0x121)

- None Key value 290 (0x122)

- None Key value 291 (0x123)

- None Key value 292 (0x124)

- None Key value 293 (0x125)

- None Key value 294 (0x126)

- None Key value 295 (0x127)

- None Key value 296 (0x128)

- None Key value 297 (0x129)

- None Key value 298 (0x12a)

- None Key value 299 (0x12b)

- None Key value 303 (0x12f)

- None Key value 304 (0x130)

- None Key value 305 (0x131)

- None Key value 306 (0x132)

- None Key value 307 (0x133)

- None Key value 308 (0x134)

- None Key value 309 (0x135)

- None Key value 310 (0x136)

- None Key value 311 (0x137)

- None Key value 312 (0x138)

- None Key value 313 (0x139)

- None Key value 314 (0x13a)

- None Key value 315 (0x13b)

- None Key value 316 (0x13c)

- None Key value 317 (0x13d)

- None Key value 318 (0x13e)

- None Key value 320 (0x140)

- None Key value 321 (0x141)

- None Key value 322 (0x142)

- None Key value 323 (0x143)

- None Key value 324 (0x144)

- None Key value 325 (0x145)

- None Key value 326 (0x146)

- None Key value 327 (0x147)

- None Key value 330 (0x14a)

- None Key value 331 (0x14b)

- None Key value 332 (0x14c)

- None Key value 333 (0x14d)

- None Key value 334 (0x14e)

- None Key value 335 (0x14f)

- None Key value 336 (0x150)

- None Key value 337 (0x151)

- None Key value 352 (0x160)

- None Key value 353 (0x161)

- None Key value 354 (0x162)

- None Key value 355 (0x163)

- None Key value 356 (0x164)

- None Key value 357 (0x165)

- None Key value 358 (0x166)

- None Key value 359 (0x167)

- None Key value 360 (0x168)

- None Key value 361 (0x169)

- None Key value 362 (0x16a)

- None Key value 363 (0x16b)

- None Key value 364 (0x16c)

- None Key value 365 (0x16d)

- None Key value 366 (0x16e)

- None Key value 367 (0x16f)

- None Key value 368 (0x170)

- None Key value 369 (0x171)

- None Key value 370 (0x172)

- None Key value 371 (0x173)

- None Key value 372 (0x174)

- None Key value 373 (0x175)

- None Key value 374 (0x176)

- None Key value 375 (0x177)

- None Key value 376 (0x178)

- None Key value 377 (0x179)

- None Key value 378 (0x17a)

- None Key value 379 (0x17b)

- None Key value 380 (0x17c)

- None Key value 381 (0x17d)

- None Key value 382 (0x17e)

- None Key value 383 (0x17f)

- None Key value 384 (0x180)

- None Key value 385 (0x181)

- None Key value 386 (0x182)

- None Key value 387 (0x183)

- None Key value 388 (0x184)

- None Key value 389 (0x185)

- None Key value 390 (0x186)

- None Key value 391 (0x187)

- None Key value 392 (0x188)

- None Key value 393 (0x189)

- None Key value 394 (0x18a)

- None Key value 395 (0x18b)

- None Key value 396 (0x18c)

- None Key value 397 (0x18d)

- None Key value 398 (0x18e)

- None Key value 399 (0x18f)

- None Key value 400 (0x190)

- None Key value 401 (0x191)

- None Key value 402 (0x192)

- None Key value 403 (0x193)

- None Key value 404 (0x194)

- None Key value 405 (0x195)

- None Key value 406 (0x196)

- None Key value 407 (0x197)

- None Key value 408 (0x198)

- None Key value 409 (0x199)

- None Key value 410 (0x19a)

- None Key value 411 (0x19b)

- None Key value 412 (0x19c)

- None Key value 413 (0x19d)

- None Key value 414 (0x19e)

- None Key value 415 (0x19f)

- None Key value 416 (0x1a0)

- None Key value 417 (0x1a1)

- None Key value 418 (0x1a2)

- None Key value 419 (0x1a3)

- None Key value 420 (0x1a4)

- None Key value 421 (0x1a5)

- None Key value 422 (0x1a6)

- None Key value 423 (0x1a7)

- None Key value 424 (0x1a8)

- None Key value 425 (0x1a9)

- None Key value 426 (0x1aa)

- None Key value 427 (0x1ab)

- None Key value 428 (0x1ac)

- None Key value 429 (0x1ad)

- None Key value 430 (0x1ae)

- None Key value 431 (0x1af)

- None Key value 432 (0x1b0)

- None Key value 433 (0x1b1)

- None Key value 434 (0x1b2)

- None Key value 435 (0x1b3)

- None Key value 436 (0x1b4)

- None Key value 437 (0x1b5)

- None Key value 438 (0x1b6)

- None Key value 439 (0x1b7)

- None Key value 448 (0x1c0)

- None Key value 449 (0x1c1)

- None Key value 450 (0x1c2)

- None Key value 451 (0x1c3)

- Function Key value 464 (0x1d0)

- None Key value 465 (0x1d1)

- None Key value 466 (0x1d2)

- None Key value 467 (0x1d3)

- None Key value 468 (0x1d4)

- None Key value 469 (0x1d5)

- None Key value 470 (0x1d6)

- None Key value 471 (0x1d7)

- None Key value 472 (0x1d8)

- None Key value 473 (0x1d9)

- None Key value 474 (0x1da)

- None Key value 475 (0x1db)

- None Key value 476 (0x1dc)

- None Key value 477 (0x1dd)

- None Key value 478 (0x1de)

- None Key value 479 (0x1df)

- None Key value 480 (0x1e0)

- None Key value 481 (0x1e1)

- None Key value 482 (0x1e2)

- None Key value 483 (0x1e3)

- None Key value 484 (0x1e4)

- None Key value 497 (0x1f1)

- None Key value 498 (0x1f2)

- None Key value 499 (0x1f3)

- None Key value 500 (0x1f4)

- None Key value 501 (0x1f5)

- None Key value 502 (0x1f6)

- None Key value 503 (0x1f7)

- None Key value 504 (0x1f8)

- None Key value 505 (0x1f9)

- None Key value 506 (0x1fa)

- None Key value 512 (0x200)

- None Key value 513 (0x201)

- None Key value 514 (0x202)

- None Key value 515 (0x203)

- None Key value 516 (0x204)

- None Key value 517 (0x205)

- None Key value 518 (0x206)

- None Key value 519 (0x207)

- None Key value 520 (0x208)

- None Key value 521 (0x209)

- None Key value 522 (0x20a)

- None Key value 523 (0x20b)

- None Key value 524 (0x20c)


package: libvirt-client

title: virkeyname-win32(7)

summary: Key name values for win32

text:
# virkeyname-win32(7)

## Name
virkeyname-win32 - Key name values for win32

## DESCRIPTION
List of win32 key code names, with corresponding key code values

- None Key value 0 (0x0)

- VK_ESCAPE Key value 1 (0x1)

- VK_1 Key value 2 (0x2)

- VK_2 Key value 3 (0x3)

- VK_3 Key value 4 (0x4)

- VK_4 Key value 5 (0x5)

- VK_5 Key value 6 (0x6)

- VK_6 Key value 7 (0x7)

- VK_7 Key value 8 (0x8)

- VK_8 Key value 9 (0x9)

- VK_9 Key value 10 (0xa)

- VK_0 Key value 11 (0xb)

- VK_OEM_MINUS Key value 12 (0xc)

- VK_OEM_PLUS Key value 13 (0xd)

- VK_BACK Key value 14 (0xe)

- VK_TAB Key value 15 (0xf)

- VK_Q Key value 16 (0x10)

- VK_W Key value 17 (0x11)

- VK_E Key value 18 (0x12)

- VK_R Key value 19 (0x13)

- VK_T Key value 20 (0x14)

- VK_Y Key value 21 (0x15)

- VK_U Key value 22 (0x16)

- VK_I Key value 23 (0x17)

- VK_O Key value 24 (0x18)

- VK_P Key value 25 (0x19)

- VK_OEM_4 Key value 26 (0x1a)

- VK_OEM_6 Key value 27 (0x1b)

- VK_RETURN Key value 28 (0x1c)

- VK_CONTROL Key value 29 (0x1d)

- VK_A Key value 30 (0x1e)

- VK_S Key value 31 (0x1f)

- VK_D Key value 32 (0x20)

- VK_F Key value 33 (0x21)

- VK_G Key value 34 (0x22)

- VK_H Key value 35 (0x23)

- VK_J Key value 36 (0x24)

- VK_K Key value 37 (0x25)

- VK_L Key value 38 (0x26)

- VK_OEM_1 Key value 39 (0x27)

- VK_OEM_7 Key value 40 (0x28)

- VK_OEM_3 Key value 41 (0x29)

- VK_LSHIFT Key value 42 (0x2a)

- VK_OEM_5 Key value 43 (0x2b)

- VK_Z Key value 44 (0x2c)

- VK_X Key value 45 (0x2d)

- VK_C Key value 46 (0x2e)

- VK_V Key value 47 (0x2f)

- VK_B Key value 48 (0x30)

- VK_N Key value 49 (0x31)

- VK_M Key value 50 (0x32)

- VK_OEM_COMMA Key value 51 (0x33)

- VK_OEM_PERIOD Key value 52 (0x34)

- VK_OEM_2 Key value 53 (0x35)

- VK_RSHIFT Key value 54 (0x36)

- VK_MULTIPLY Key value 55 (0x37)

- VK_MENU Key value 56 (0x38)

- VK_SPACE Key value 57 (0x39)

- VK_CAPITAL Key value 58 (0x3a)

- VK_F1 Key value 59 (0x3b)

- VK_F2 Key value 60 (0x3c)

- VK_F3 Key value 61 (0x3d)

- VK_F4 Key value 62 (0x3e)

- VK_F5 Key value 63 (0x3f)

- VK_F6 Key value 64 (0x40)

- VK_F7 Key value 65 (0x41)

- VK_F8 Key value 66 (0x42)

- VK_F9 Key value 67 (0x43)

- VK_F10 Key value 68 (0x44)

- VK_NUMLOCK Key value 69 (0x45)

- VK_SCROLL Key value 70 (0x46)

- VK_NUMPAD7 Key value 71 (0x47)

- VK_NUMPAD8 Key value 72 (0x48)

- VK_NUMPAD9 Key value 73 (0x49)

- VK_SUBTRACT Key value 74 (0x4a)

- VK_NUMPAD4 Key value 75 (0x4b)

- VK_NUMPAD5 Key value 76 (0x4c)

- VK_NUMPAD6 Key value 77 (0x4d)

- VK_ADD Key value 78 (0x4e)

- VK_NUMPAD1 Key value 79 (0x4f)

- VK_NUMPAD2 Key value 80 (0x50)

- VK_NUMPAD3 Key value 81 (0x51)

- VK_NUMPAD0 Key value 82 (0x52)

- VK_DECIMAL Key value 83 (0x53)

- None Key value 84 (0x54)

- None Key value 85 (0x55)

- VK_OEM_102 Key value 86 (0x56)

- VK_F11 Key value 87 (0x57)

- VK_F12 Key value 88 (0x58)

- VK_OEM_102 Key value 89 (0x59)

- VK_KANA Key value 90 (0x5a)

- None Key value 91 (0x5b)

- VK_CONVERT Key value 92 (0x5c)

- VK_OEM_COPY Key value 93 (0x5d)

- VK_NONCONVERT Key value 94 (0x5e)

- None Key value 95 (0x5f)

- None Key value 96 (0x60)

- VK_RCONTROL Key value 97 (0x61)

- VK_DIVIDE Key value 98 (0x62)

- VK_SNAPSHOT Key value 99 (0x63)

- VK_RMENU Key value 100 (0x64)

- None Key value 101 (0x65)

- VK_HOME Key value 102 (0x66)

- VK_UP Key value 103 (0x67)

- VK_PRIOR Key value 104 (0x68)

- VK_LEFT Key value 105 (0x69)

- VK_RIGHT Key value 106 (0x6a)

- VK_END Key value 107 (0x6b)

- VK_DOWN Key value 108 (0x6c)

- VK_NEXT Key value 109 (0x6d)

- VK_INSERT Key value 110 (0x6e)

- VK_DELETE Key value 111 (0x6f)

- None Key value 112 (0x70)

- VK_VOLUME_MUTE Key value 113 (0x71)

- VK_VOLUME_DOWN Key value 114 (0x72)

- VK_VOLUME_UP Key value 115 (0x73)

- None Key value 116 (0x74)

- None Key value 117 (0x75)

- None Key value 118 (0x76)

- VK_PAUSE Key value 119 (0x77)

- None Key value 120 (0x78)

- VK_SEPARATOR?? Key value 121 (0x79)

- VK_IME_ON Key value 122 (0x7a)

- VK_IME_OFF Key value 123 (0x7b)

- VK_OEM_5 Key value 124 (0x7c)

- VK_LWIN Key value 125 (0x7d)

- VK_RWIN Key value 126 (0x7e)

- VK_APPS Key value 127 (0x7f)

- VK_BROWSER_STOP Key value 128 (0x80)

- None Key value 129 (0x81)

- None Key value 130 (0x82)

- None Key value 131 (0x83)

- None Key value 132 (0x84)

- None Key value 133 (0x85)

- None Key value 134 (0x86)

- None Key value 135 (0x87)

- None Key value 136 (0x88)

- None Key value 137 (0x89)

- VK_HELP Key value 138 (0x8a)

- None Key value 139 (0x8b)

- None Key value 140 (0x8c)

- None Key value 141 (0x8d)

- VK_SLEEP Key value 142 (0x8e)

- None Key value 143 (0x8f)

- None Key value 144 (0x90)

- None Key value 145 (0x91)

- None Key value 146 (0x92)

- None Key value 147 (0x93)

- None Key value 148 (0x94)

- None Key value 149 (0x95)

- None Key value 150 (0x96)

- None Key value 151 (0x97)

- None Key value 152 (0x98)

- None Key value 153 (0x99)

- None Key value 154 (0x9a)

- None Key value 155 (0x9b)

- None Key value 156 (0x9c)

- None Key value 157 (0x9d)

- VK_BROWSER_BACK Key value 158 (0x9e)

- VK_BROWSER_FORWARD Key value 159 (0x9f)

- None Key value 160 (0xa0)

- None Key value 161 (0xa1)

- None Key value 162 (0xa2)

- VK_MEDIA_NEXT_TRACK Key value 163 (0xa3)

- VK_MEDIA_PLAY_PAUSE Key value 164 (0xa4)

- VK_MEDIA_PREV_TRACK Key value 165 (0xa5)

- VK_MEDIA_STOP Key value 166 (0xa6)

- None Key value 167 (0xa7)

- None Key value 168 (0xa8)

- None Key value 169 (0xa9)

- None Key value 170 (0xaa)

- None Key value 171 (0xab)

- VK_BROWSER_HOME Key value 172 (0xac)

- VK_BROWSER_REFRESH Key value 173 (0xad)

- None Key value 174 (0xae)

- None Key value 175 (0xaf)

- None Key value 176 (0xb0)

- None Key value 177 (0xb1)

- None Key value 178 (0xb2)

- None Key value 179 (0xb3)

- None Key value 180 (0xb4)

- None Key value 181 (0xb5)

- None Key value 182 (0xb6)

- VK_F13 Key value 183 (0xb7)

- VK_F14 Key value 184 (0xb8)

- VK_F15 Key value 185 (0xb9)

- VK_F16 Key value 186 (0xba)

- VK_F17 Key value 187 (0xbb)

- VK_F18 Key value 188 (0xbc)

- VK_F19 Key value 189 (0xbd)

- VK_F20 Key value 190 (0xbe)

- VK_F21 Key value 191 (0xbf)

- VK_F22 Key value 192 (0xc0)

- VK_F23 Key value 193 (0xc1)

- VK_F24 Key value 194 (0xc2)

- None Key value 195 (0xc3)

- None Key value 196 (0xc4)

- None Key value 197 (0xc5)

- None Key value 198 (0xc6)

- None Key value 199 (0xc7)

- None Key value 200 (0xc8)

- None Key value 201 (0xc9)

- None Key value 202 (0xca)

- None Key value 203 (0xcb)

- None Key value 204 (0xcc)

- None Key value 205 (0xcd)

- None Key value 206 (0xce)

- VK_PLAY Key value 207 (0xcf)

- None Key value 208 (0xd0)

- None Key value 209 (0xd1)

- VK_PRINT Key value 210 (0xd2)

- None Key value 211 (0xd3)

- None Key value 212 (0xd4)

- None Key value 213 (0xd5)

- None Key value 214 (0xd6)

- VK_LAUNCH_MAIL Key value 215 (0xd7)

- None Key value 216 (0xd8)

- VK_BROWSER_SEARCH Key value 217 (0xd9)

- None Key value 218 (0xda)

- None Key value 219 (0xdb)

- None Key value 220 (0xdc)

- None Key value 221 (0xdd)

- None Key value 222 (0xde)

- None Key value 223 (0xdf)

- None Key value 224 (0xe0)

- None Key value 225 (0xe1)

- None Key value 226 (0xe2)

- None Key value 227 (0xe3)

- None Key value 228 (0xe4)

- None Key value 229 (0xe5)

- None Key value 230 (0xe6)

- None Key value 231 (0xe7)

- None Key value 232 (0xe8)

- None Key value 233 (0xe9)

- None Key value 234 (0xea)

- None Key value 235 (0xeb)

- None Key value 236 (0xec)

- None Key value 237 (0xed)

- None Key value 238 (0xee)

- None Key value 239 (0xef)

- None Key value 240 (0xf0)

- None Key value 241 (0xf1)

- None Key value 242 (0xf2)

- None Key value 243 (0xf3)

- None Key value 244 (0xf4)

- None Key value 245 (0xf5)

- None Key value 246 (0xf6)

- None Key value 247 (0xf7)

- None Key value 248 (0xf8)

- None Key value 249 (0xf9)

- None Key value 250 (0xfa)

- None Key value 251 (0xfb)

- None Key value 252 (0xfc)

- None Key value 253 (0xfd)

- None Key value 254 (0xfe)

- None Key value 255 (0xff)

- VK_LBUTTON Key value 256 (0x100)

- VK_RBUTTON Key value 257 (0x101)

- VK_MBUTTON Key value 258 (0x102)

- VK_XBUTTON1 Key value 259 (0x103)

- VK_XBUTTON2 Key value 260 (0x104)

- None Key value 261 (0x105)

- None Key value 262 (0x106)

- None Key value 263 (0x107)

- None Key value 264 (0x108)

- None Key value 265 (0x109)

- None Key value 272 (0x110)

- None Key value 273 (0x111)

- None Key value 274 (0x112)

- None Key value 275 (0x113)

- None Key value 276 (0x114)

- None Key value 277 (0x115)

- None Key value 278 (0x116)

- None Key value 279 (0x117)

- None Key value 288 (0x120)

- None Key value 289 (0x121)

- None Key value 290 (0x122)

- None Key value 291 (0x123)

- None Key value 292 (0x124)

- None Key value 293 (0x125)

- None Key value 294 (0x126)

- None Key value 295 (0x127)

- None Key value 296 (0x128)

- None Key value 297 (0x129)

- None Key value 298 (0x12a)

- None Key value 299 (0x12b)

- None Key value 303 (0x12f)

- None Key value 304 (0x130)

- None Key value 305 (0x131)

- None Key value 306 (0x132)

- None Key value 307 (0x133)

- None Key value 308 (0x134)

- None Key value 309 (0x135)

- None Key value 310 (0x136)

- None Key value 311 (0x137)

- None Key value 312 (0x138)

- None Key value 313 (0x139)

- None Key value 314 (0x13a)

- None Key value 315 (0x13b)

- None Key value 316 (0x13c)

- None Key value 317 (0x13d)

- None Key value 318 (0x13e)

- None Key value 320 (0x140)

- None Key value 321 (0x141)

- None Key value 322 (0x142)

- None Key value 323 (0x143)

- None Key value 324 (0x144)

- None Key value 325 (0x145)

- None Key value 326 (0x146)

- None Key value 327 (0x147)

- None Key value 330 (0x14a)

- None Key value 331 (0x14b)

- None Key value 332 (0x14c)

- None Key value 333 (0x14d)

- None Key value 334 (0x14e)

- None Key value 335 (0x14f)

- None Key value 336 (0x150)

- None Key value 337 (0x151)

- None Key value 352 (0x160)

- VK_SELECT Key value 353 (0x161)

- None Key value 354 (0x162)

- None Key value 355 (0x163)

- None Key value 356 (0x164)

- None Key value 357 (0x165)

- None Key value 358 (0x166)

- None Key value 359 (0x167)

- None Key value 360 (0x168)

- None Key value 361 (0x169)

- None Key value 362 (0x16a)

- None Key value 363 (0x16b)

- VK_BROWSER_FAVOURITES Key value 364 (0x16c)

- None Key value 365 (0x16d)

- None Key value 366 (0x16e)

- None Key value 367 (0x16f)

- None Key value 368 (0x170)

- None Key value 369 (0x171)

- None Key value 370 (0x172)

- None Key value 371 (0x173)

- VK_ZOOM Key value 372 (0x174)

- None Key value 373 (0x175)

- None Key value 374 (0x176)

- None Key value 375 (0x177)

- None Key value 376 (0x178)

- None Key value 377 (0x179)

- None Key value 378 (0x17a)

- None Key value 379 (0x17b)

- None Key value 380 (0x17c)

- None Key value 381 (0x17d)

- None Key value 382 (0x17e)

- None Key value 383 (0x17f)

- None Key value 384 (0x180)

- None Key value 385 (0x181)

- None Key value 386 (0x182)

- None Key value 387 (0x183)

- None Key value 388 (0x184)

- None Key value 389 (0x185)

- None Key value 390 (0x186)

- None Key value 391 (0x187)

- None Key value 392 (0x188)

- None Key value 393 (0x189)

- None Key value 394 (0x18a)

- None Key value 395 (0x18b)

- None Key value 396 (0x18c)

- None Key value 397 (0x18d)

- None Key value 398 (0x18e)

- None Key value 399 (0x18f)

- None Key value 400 (0x190)

- None Key value 401 (0x191)

- None Key value 402 (0x192)

- None Key value 403 (0x193)

- None Key value 404 (0x194)

- None Key value 405 (0x195)

- None Key value 406 (0x196)

- None Key value 407 (0x197)

- None Key value 408 (0x198)

- None Key value 409 (0x199)

- None Key value 410 (0x19a)

- None Key value 411 (0x19b)

- None Key value 412 (0x19c)

- None Key value 413 (0x19d)

- None Key value 414 (0x19e)

- None Key value 415 (0x19f)

- None Key value 416 (0x1a0)

- None Key value 417 (0x1a1)

- None Key value 418 (0x1a2)

- None Key value 419 (0x1a3)

- None Key value 420 (0x1a4)

- None Key value 421 (0x1a5)

- None Key value 422 (0x1a6)

- None Key value 423 (0x1a7)

- None Key value 424 (0x1a8)

- None Key value 425 (0x1a9)

- None Key value 426 (0x1aa)

- None Key value 427 (0x1ab)

- None Key value 428 (0x1ac)

- None Key value 429 (0x1ad)

- None Key value 430 (0x1ae)

- None Key value 431 (0x1af)

- None Key value 432 (0x1b0)

- None Key value 433 (0x1b1)

- None Key value 434 (0x1b2)

- None Key value 435 (0x1b3)

- None Key value 436 (0x1b4)

- None Key value 437 (0x1b5)

- None Key value 438 (0x1b6)

- None Key value 439 (0x1b7)

- None Key value 448 (0x1c0)

- None Key value 449 (0x1c1)

- None Key value 450 (0x1c2)

- None Key value 451 (0x1c3)

- None Key value 464 (0x1d0)

- None Key value 465 (0x1d1)

- None Key value 466 (0x1d2)

- None Key value 467 (0x1d3)

- None Key value 468 (0x1d4)

- None Key value 469 (0x1d5)

- None Key value 470 (0x1d6)

- None Key value 471 (0x1d7)

- None Key value 472 (0x1d8)

- None Key value 473 (0x1d9)

- None Key value 474 (0x1da)

- None Key value 475 (0x1db)

- None Key value 476 (0x1dc)

- None Key value 477 (0x1dd)

- None Key value 478 (0x1de)

- None Key value 479 (0x1df)

- None Key value 480 (0x1e0)

- None Key value 481 (0x1e1)

- None Key value 482 (0x1e2)

- None Key value 483 (0x1e3)

- None Key value 484 (0x1e4)

- None Key value 497 (0x1f1)

- None Key value 498 (0x1f2)

- None Key value 499 (0x1f3)

- None Key value 500 (0x1f4)

- None Key value 501 (0x1f5)

- None Key value 502 (0x1f6)

- None Key value 503 (0x1f7)

- None Key value 504 (0x1f8)

- None Key value 505 (0x1f9)

- None Key value 506 (0x1fa)

- None Key value 512 (0x200)

- None Key value 513 (0x201)

- None Key value 514 (0x202)

- None Key value 515 (0x203)

- None Key value 516 (0x204)

- None Key value 517 (0x205)

- None Key value 518 (0x206)

- None Key value 519 (0x207)

- None Key value 520 (0x208)

- None Key value 521 (0x209)

- None Key value 522 (0x20a)

- None Key value 523 (0x20b)

- None Key value 524 (0x20c)

branch: sisyphus


package: libyaz

title: bib1-attr(7)

summary: Bib\-1 Attribute Set

text:
# bib1-attr(7)

## NAME
bib1-attr - Bib-1 Attribute Set

## DESCRIPTION
This reference entry lists the Bib-1 attribute set types and values.

## TYPES
The Bib-1 attribute set defines six attribute types: Use (1), Relation (2), Position (3), Structure (4), Truncation (5) and Completeness (6).

## USE (1)

```
    1     Personal-name

    2     Corporate-name

    3     Conference-name

    4     Title

    5     Title-series

    6     Title-uniform

    7     ISBN

    8     ISSN

    9     LC-card-number

    10    BNB-card-number

    11    BGF-number

    12    Local-number

    13    Dewey-classification

    14    UDC-classification

    15    Bliss-classification

    16    LC-call-number

    17    NLM-call-number

    18    NAL-call-number

    19    MOS-call-number

    20    Local-classification

    21    Subject-heading

    22    Subject-Rameau

    23    BDI-index-subject

    24    INSPEC-subject

    25    MESH-subject

    26    PA-subject

    27    LC-subject-heading

    28    RVM-subject-heading

    29    Local-subject-index

    30    Date

    31    Date-of-publication

    32    Date-of-acquisition

    33    Title-key

    34    Title-collective

    35    Title-parallel

    36    Title-cover

    37    Title-added-title-page

    38    Title-caption

    39    Title-running

    40    Title-spine

    41    Title-other-variant

    42    Title-former

    43    Title-abbreviated

    44    Title-expanded

    45    Subject-precis

    46    Subject-rswk

    47    Subject-subdivision

    48    Number-natl-biblio

    49    Number-legal-deposit

    50    Number-govt-pub

    51    Number-music-publisher

    52    Number-db

    53    Number-local-call

    54    Code-language

    55    Code-geographic

    56    Code-institution

    57    Name-and-title

    58    Name-geographic

    59    Place-publication

    60    CODEN

    61    Microform-generation

    62    Abstract

    63    Note

    1000  Author-title

    1001  Record-type

    1002  Name

    1003  Author

    1004  Author-name-personal

    1005  Author-name-corporate

    1006  Author-name-conference

    1007  Identifier-standard

    1008  Subject-LC-childrens

    1009  Subject-name-personal

    1010  Body-of-text

    1011  Date/time-added-to-db

    1012  Date/time-last-modified

    1013  Authority/format-id

    1014  Concept-text

    1015  Concept-reference

    1016  Any

    1017  Server-choice

    1018  Publisher

    1019  Record-source

    1020  Editor

    1021  Bib-level

    1022  Geographic-class

    1023  Indexed-by

    1024  Map-scale

    1025  Music-key

    1026  Related-periodical

    1027  Report-number

    1028  Stock-number

    1030  Thematic-number

    1031  Material-type

    1032  Doc-id

    1033  Host-item

    1034  Content-type

    1035  Anywhere

    1036  Author-Title-Subject

```

## RELATION (2)

```
    1 Less than

    2 Less than or equal

    3 Equal

    4 Greater or equal

    5 Greater than

    6 Not equal

    100 Phonetic

    101 Stem

    102 Relevance

    103 AlwaysMatches

```

## POSITION (3)

```
    1 First in field

    2 First in subfield

    3 Any position in field

```

## STRUCTURE (4)

```
    1 Phrase

    2 Word

    3 Key

    4 Year

    5 Date (normalized)

    6 Word list

    100 Date (un-normalized)

    101 Name (normalized)

    102 Name (un-normalized)

    103 Structure

    104 Urx

    105 Free-form-text

    106 Document-text

    107 Local-number

    108 String

    109 Numeric-string

```

## TRUNCATION (5)

```
    1 Right truncation

    2 Left truncation

    3 Left and right truncation

    100 Do not truncate

    101 Process # in search term  . regular #=.*

    102 RegExpr-1

    103 RegExpr-2

    104 Process # ?n . regular: #=., ?n=.{0,n} or ?=.* Z39.58

```

The 105-106 truncation attributes below are only supported by Index Data's Zebra server.

```
    105 Process * ! regular: *=.*, !=. and right truncate

    106 Process * ! regular: *=.*, !=.

```

## COMPLETENESS (6)

```
    1 Incomplete subfield

    2 Complete subfield

    3 Complete field

```

## SORTING (7)

```
    1 ascending

    2 descending

```

Type 7 is an Index Data extension to RPN queries that allows embedding a sort critieria into a query.

## SEE ALSO
Bib-1 Attribute Set[1]

Attribute Set Bib-1 Semantics[2].

## AUTHORS
Index Data

## NOTES
1.

Bib-1 Attribute Set

https://loc.gov/standards/z3950/agency/defns/bib1.html

2.

Attribute Set Bib-1 Semantics

https://loc.gov/standards/z3950/agency/bib1.html


yaz

title: yaz(7)

summary: Z39.50 toolkit.

text:
# yaz(7)

## NAME
yaz - Z39.50 toolkit.

## DESCRIPTION
YAZ is a C/C++ programmer's toolkit supporting the development of Z39.50v3 clients and servers. The YAZ toolkit offers several different levels of access to the ISO23950/Z39.50, SRU Solr (client only) and ILL protocols. The level that you need to use depends on your requirements, and the role (server or client) that you want to implement.

## COPYRIGHT
Copyright © 1995-2026 Index Data.

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

•Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

•Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

•Neither the name of Index Data nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

## SEE ALSO
yaz-client(1), yaz-ztest(8), yaz-config(8), zoomsh(1) bib1-attr(7)

YAZ manual ( /usr/share/doc/yaz)

YAZ home page[1].

Z39.50 Maintenance Agency Page[2].

## AUTHORS
Index Data

## NOTES
1.

YAZ home page

https://www.indexdata.com/yaz

2.

Z39.50 Maintenance Agency Page

https://loc.gov/standards/z3950/agency/


zmq

package: libzeromq

title: zmq(7)

summary: 0MQ lightweight messaging kernel

text:
# zmq(7)

## NAME
zmq - 0MQ lightweight messaging kernel

## SYNOPSIS
\#include <zmq.h>

cc [flags] files -lzmq [libraries]

## DESCRIPTION
The 0MQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. 0MQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.

This documentation presents an overview of 0MQ concepts, describes how 0MQ abstracts standard sockets and provides a reference manual for the functions provided by the 0MQ library.

### Context
The 0MQ context keeps the list of sockets and manages the async I/O thread and internal queries.

Before using any 0MQ library functions you must create a 0MQ context. When you exit your application you must destroy the context. These functions let you work with contexts:

Create a new 0MQ context

zmq_ctx_new(3)

Work with context properties

zmq_ctx_set(3) zmq_ctx_get(3)

Destroy a 0MQ context

zmq_ctx_shutdown(3) zmq_ctx_term(3)

Thread safety

A 0MQ context is thread safe and may be shared among as many application threads as necessary, without any additional locking required on the part of the caller.

Individual 0MQ sockets are not thread safe except in the case where full memory barriers are issued when migrating a socket from one thread to another. In practice this means applications can create a socket in one thread with zmq_socket() and then pass it to a newly created thread as part of thread initialisation, for example via a structure passed as an argument to pthread_create().

Multiple contexts

Multiple contexts may coexist within a single application. Thus, an application can use 0MQ directly and at the same time make use of any number of additional libraries or components which themselves make use of 0MQ as long as the above guidelines regarding thread safety are adhered to.

### Messages
A 0MQ message is a discrete unit of data passed between applications or components of the same application. 0MQ messages have no internal structure and from the point of view of 0MQ itself they are considered to be opaque binary data.

The following functions are provided to work with messages:

Initialise a message

zmq_msg_init(3) zmq_msg_init_size(3) zmq_msg_init_buffer(3) zmq_msg_init_data(3)

Sending and receiving a message

zmq_msg_send(3) zmq_msg_recv(3)

Release a message

zmq_msg_close(3)

Access message content

zmq_msg_data(3) zmq_msg_size(3) zmq_msg_more(3)

Work with message properties

zmq_msg_gets(3) zmq_msg_get(3) zmq_msg_set(3)

Message manipulation

zmq_msg_copy(3) zmq_msg_move(3)

### Sockets
0MQ sockets present an abstraction of an asynchronous message queue, with the exact queueing semantics depending on the socket type in use. See zmq_socket(3) for the socket types provided.

The following functions are provided to work with sockets:

Creating a socket

zmq_socket(3)

Closing a socket

zmq_close(3)

Manipulating socket options

zmq_getsockopt(3) zmq_setsockopt(3)

Establishing a message flow

zmq_bind(3) zmq_connect(3)

Sending and receiving messages

zmq_msg_send(3) zmq_msg_recv(3) zmq_send(3) zmq_recv(3) zmq_send_const(3)

Monitoring socket events

zmq_socket_monitor(3)

Input/output multiplexing. 0MQ provides a mechanism for applications to multiplex input/output events over a set containing both 0MQ sockets and standard sockets. This mechanism mirrors the standard poll() system call, and is described in detail in zmq_poll(3). This API is deprecated, however.

There is a new DRAFT API with multiple zmq_poller_* function, which is described in zmq_poller(3).

### Transports
A 0MQ socket can use multiple different underlying transport mechanisms. Each transport mechanism is suited to a particular purpose and has its own advantages and drawbacks.

The following transport mechanisms are provided:

Unicast transport using TCP

zmq_tcp(7)

Reliable multicast transport using PGM

zmq_pgm(7)

Local inter-process communication transport

zmq_ipc(7)

Local in-process (inter-thread) communication transport

zmq_inproc(7)

Virtual Machine Communications Interface (VMC) transport

zmq_vmci(7)

Unreliable unicast and multicast using UDP

zmq_udp(7)

### Proxies
0MQ provides proxies to create fanout and fan-in topologies. A proxy connects a frontend socket to a backend socket and switches all messages between the two sockets, opaquely. A proxy may optionally capture all traffic to a third socket. To start a proxy in an application thread, use zmq_proxy(3).

### Security
A 0MQ socket can select a security mechanism. Both peers must use the same security mechanism.

The following security mechanisms are provided for IPC and TCP connections:

Null security

zmq_null(7)

Plain-text authentication using username and password

zmq_plain(7)

Elliptic curve authentication and encryption

zmq_curve(7)

Generate a CURVE keypair in armored text format

zmq_curve_keypair(3)

Derive a CURVE public key from a secret key: zmq_curve_public(3)

Converting keys to/from armoured text strings

zmq_z85_decode(3) zmq_z85_encode(3)

## ERROR HANDLING
The 0MQ library functions handle errors using the standard conventions found on POSIX systems. Generally, this means that upon failure a 0MQ library function shall return either a NULL value (if returning a pointer) or a negative value (if returning an integer), and the actual error code shall be stored in the errno variable.

On non-POSIX systems some users may experience issues with retrieving the correct value of the errno variable. The zmq_errno() function is provided to assist in these cases; for details refer to zmq_errno(3).

The zmq_strerror() function is provided to translate 0MQ-specific error codes into error message strings; for details refer to zmq_strerror(3).

## UTILITY
The following utility functions are provided:

Working with atomic counters

zmq_atomic_counter_new(3) zmq_atomic_counter_set(3) zmq_atomic_counter_inc(3) zmq_atomic_counter_dec(3) zmq_atomic_counter_value(3) zmq_atomic_counter_destroy(3)

## MISCELLANEOUS
The following miscellaneous functions are provided:

Report 0MQ library version

zmq_version(3)

## LANGUAGE BINDINGS
The 0MQ library provides interfaces suitable for calling from programs in any language; this documentation documents those interfaces as they would be used by C programmers. The intent is that programmers using 0MQ from other languages shall refer to this documentation alongside any documentation provided by the vendor of their language binding.

Language bindings (C++, Python, PHP, Ruby, Java and more) are provided by members of the 0MQ community and pointers can be found on the 0MQ website.

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.

## RESOURCES
Main web site: http://www.zeromq.org/

Report bugs to the 0MQ development mailing list: <zeromq-dev@lists.zeromq.org[1]>

## COPYING
Free use of this software is granted under the terms of the GNU Lesser General Public License (LGPL). For details see the files COPYING and COPYING.LESSER included with the 0MQ distribution.

## NOTES
1.

zeromq-dev@lists.zeromq.org

mailto:zeromq-dev@lists.zeromq.org


package: libzeromq-devel

title: zmq_curve(7)

text:
# zmq_curve(7)

## NAME
zmq_curve - secure authentication and confidentiality

## SYNOPSIS
The CURVE mechanism defines a mechanism for secure authentication and confidentiality for communications between a client and a server. CURVE is intended for use on public networks. The CURVE mechanism is defined by this document: http://rfc.zeromq.org/spec:25.

## CLIENT AND SERVER ROLES
A socket using CURVE can be either client or server, at any moment, but not both. The role is independent of bind/connect direction.

A socket can change roles at any point by setting new options. The role affects all zmq_connect and zmq_bind calls that follow it.

To become a CURVE server, the application sets the ZMQ_CURVE_SERVER option on the socket, and then sets the ZMQ_CURVE_SECRETKEY option to provide the socket with its long-term secret key. The application does not provide the socket with its long-term public key, which is used only by clients.

To become a CURVE client, the application sets the ZMQ_CURVE_SERVERKEY option with the long-term public key of the server it intends to connect to, or accept connections from, next. The application then sets the ZMQ_CURVE_PUBLICKEY and ZMQ_CURVE_SECRETKEY options with its client long-term key pair.

If the server does authentication it will be based on the client’s long term public key.

## KEY ENCODING
The standard representation for keys in source code is either 32 bytes of base 256 (binary) data, or 40 characters of base 85 data encoded using the Z85 algorithm defined by http://rfc.zeromq.org/spec:32.

The Z85 algorithm is designed to produce printable key strings for use in configuration files, the command line, and code. There is a reference implementation in C at https://github.com/zeromq/rfc/tree/master/src.

## TEST KEY VALUES
For test cases, the client shall use this long-term key pair (specified as hexadecimal and in Z85):

```
public:

    BB88471D65E2659B30C55A5321CEBB5AAB2B70A398645C26DCA2B2FCB43FC518

    Yne@$w-vo<fVvi]a<NY6T1ed:M$fCG*[IaLV{hID
secret:

    7BB864B489AFA3671FBE69101F94B38972F24816DFB01B51656B3FEC8DFD0888

    D:)Q[IlAW!ahhC2ac:9*A}h:p?([4%wOTJ%JR%cs
```

And the server shall use this long-term key pair (specified as hexadecimal and in Z85):

```
public:

    54FCBA24E93249969316FB617C872BB0C1D1FF14800427C594CBFACF1BC2D652

    rq:rM>}U?@Lns47E1%kR.o@n%FcmmsL/@{H8]yf7
secret:

    8E0BDD697628B91D8F245587EE95C5B04D48963F79259877B49CD9063AEAD3B7

    JTKVSB%%)wK0E.X)V>+}o?pNmC{O&4W4b!Ni{Lh6
```

## SEE ALSO
zmq_z85_encode(3) zmq_z85_decode(3) zmq_setsockopt(3) zmq_null(7) zmq_plain(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_gssapi(7)

text:
# zmq_gssapi(7)

## NAME
zmq_gssapi - secure authentication and confidentiality

## SYNOPSIS
The GSSAPI mechanism defines a mechanism for secure authentication and confidentiality for communications between a client and a server using the Generic Security Service Application Program Interface (GSSAPI). The GSSAPI mechanism can be used on both public and private networks. GSSAPI itself is defined in IETF RFC-2743: http://tools.ietf.org/html/rfc2743. The ZeroMQ GSSAPI mechanism is defined by this document: http://rfc.zeromq.org/spec:38.

## CLIENT AND SERVER ROLES
A socket using GSSAPI can be either client or server, but not both.

To become a GSSAPI server, the application sets the ZMQ_GSSAPI_SERVER option on the socket.

To become a GSSAPI client, the application sets the ZMQ_GSSAPI_SERVICE_PRINCIPAL option to the name of the principal on the server to which it intends to connect.

On client or server, the application may additionally set the ZMQ_GSSAPI_PRINCIPAL option to provide the socket with the name of the principal for whom GSSAPI credentials should be acquired. If this option is not set, default credentials are used.

## OPTIONAL ENCRYPTION
By default, the GSSAPI mechanism will encrypt all communications between client and server. If encryption is not desired (e.g. on private networks), the client and server applications can disable it by setting the ZMQ_GSSAPI_PLAINTEXT option. Both the client and server must set this option to the same value.

## PRINCIPAL NAMES
Principal names specified with the ZMQ_GSSAPI_SERVICE_PRINCIPAL or ZMQ_GSSAPI_PRINCIPAL options are interpreted as "host based" name types by default. The ZMQ_GSSAPI_PRINCIPAL_NAMETYPE and ZMQ_GSSAPI_SERVICE_PRINCIPAL_NAMETYPE options may be used to change the name type to one of:

ZMQ_GSSAPI_NT_HOSTBASED

The name should be of the form "service" or "service@hostname", which will parse into a principal of "service/hostname" in the local realm. This is the default name type.

ZMQ_GSSAPI_NT_USER_NAME

The name should be a local username, which will parse into a single-component principal in the local realm.

ZMQ_GSSAPI_NT_KRB5_PRINCIPAL

The name is a principal name string. This name type only works with the krb5 GSSAPI mechanism.

## SEE ALSO
zmq_setsockopt(3) zmq_null(7) zmq_curve(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_inproc(7)

summary: 0MQ local in\-process (inter\-thread) communication transport

text:
# zmq_inproc(7)

## NAME
zmq_inproc - 0MQ local in-process (inter-thread) communication transport

## SYNOPSIS
The in-process transport passes messages via memory directly between threads sharing a single 0MQ context.

Note No I/O threads are involved in passing messages using the inproc transport. Therefore, if you are using a 0MQ context for in-process messaging only you can initialise the context with zero I/O threads. See zmq_init(3) for details.

## ADDRESSING
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to connect to.

For the in-process transport, the transport is inproc, and the meaning of the address part is defined below.

### Assigning a local address to a socket
When assigning a local address to a socket using zmq_bind() with the inproc transport, the endpoint shall be interpreted as an arbitrary string identifying the name to create. The name must be unique within the 0MQ context associated with the socket and may be up to 256 characters in length. No other restrictions are placed on the format of the name.

### Connecting a socket
When connecting a socket to a peer address using zmq_connect() with the inproc transport, the endpoint shall be interpreted as an arbitrary string identifying the name to connect to. Before version 4.0 he name must have been previously created by assigning it to at least one socket within the same 0MQ context as the socket being connected. Since version 4.0 the order of zmq_bind() and zmq_connect() does not matter just like for the tcp transport type.

## EXAMPLES
Assigning a local address to a socket.

```
//  Assign the in-process name "#1"
rc = zmq_bind(socket, "inproc://#1");
assert (rc == 0);
//  Assign the in-process name "my-endpoint"
rc = zmq_bind(socket, "inproc://my-endpoint");
assert (rc == 0);
```

Connecting a socket.

```
//  Connect to the in-process name "#1"
rc = zmq_connect(socket, "inproc://#1");
assert (rc == 0);
//  Connect to the in-process name "my-endpoint"
rc = zmq_connect(socket, "inproc://my-endpoint");
assert (rc == 0);
```

## SEE ALSO
zmq_bind(3) zmq_connect(3) zmq_ipc(7) zmq_tcp(7) zmq_pgm(7) zmq_vmci(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_ipc(7)

summary: 0MQ local inter\-process communication transport

text:
# zmq_ipc(7)

## NAME
zmq_ipc - 0MQ local inter-process communication transport

## SYNOPSIS
The inter-process transport passes messages between local processes using a system-dependent IPC mechanism.

Note The inter-process transport is currently only implemented on operating systems that provide UNIX domain sockets.

## ADDRESSING
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to connect to.

For the inter-process transport, the transport is ipc, and the meaning of the address part is defined below.

### Binding a socket
When binding a socket to a local address using zmq_bind() with the ipc transport, the endpoint shall be interpreted as an arbitrary string identifying the pathname to create. The pathname must be unique within the operating system namespace used by the ipc implementation, and must fulfill any restrictions placed by the operating system on the format and length of a pathname.

When the address is wild-card *, zmq_bind() shall generate a unique temporary pathname. The caller should retrieve this pathname using the ZMQ_LAST_ENDPOINT socket option. See zmq_getsockopt(3) for details.

Note any existing binding to the same endpoint shall be overridden. That is, if a second process binds to an endpoint already bound by a process, this will succeed and the first process will lose its binding. In this behaviour, the ipc transport is not consistent with the tcp or inproc transports.

Note the endpoint pathname must be writable by the process. When the endpoint starts with /, e.g., ipc:///pathname, this will be an absolute pathname. If the endpoint specifies a directory that does not exist, the bind shall fail.

Note on Linux only, when the endpoint pathname starts with @, the abstract namespace shall be used. The abstract namespace is independent of the filesystem and if a process attempts to bind an endpoint already bound by a process, it will fail. See unix(7) for details.

Note IPC pathnames have a maximum size that depends on the operating system. On Linux, the maximum is 113 characters including the "ipc://" prefix (107 characters for the real path name).

### Unbinding wild-card address from a socket
When wild-card * endpoint was used in zmq_bind(), the caller should use real endpoint obtained from the ZMQ_LAST_ENDPOINT socket option to unbind this endpoint from a socket using zmq_unbind().

### Connecting a socket
When connecting a socket to a peer address using zmq_connect() with the ipc transport, the endpoint shall be interpreted as an arbitrary string identifying the pathname to connect to. The pathname must have been previously created within the operating system namespace by assigning it to a socket with zmq_bind().

## EXAMPLES
Assigning a local address to a socket.

```
//  Assign the pathname "/tmp/feeds/0"
rc = zmq_bind(socket, "ipc:///tmp/feeds/0");
assert (rc == 0);
```

Connecting a socket.

```
//  Connect to the pathname "/tmp/feeds/0"
rc = zmq_connect(socket, "ipc:///tmp/feeds/0");
assert (rc == 0);
```

## SEE ALSO
zmq_bind(3) zmq_connect(3) zmq_inproc(7) zmq_tcp(7) zmq_pgm(7) zmq_vmci(7) zmq_getsockopt(3) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_null(7)

summary: no security or confidentiality

text:
# zmq_null(7)

## NAME
zmq_null - no security or confidentiality

## SYNOPSIS
The NULL mechanism is defined by the ZMTP 3.0 specification: http://rfc.zeromq.org/spec:23. This is the default security mechanism for ZeroMQ sockets.

## SEE ALSO
zmq_plain(7) zmq_curve(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_pgm(7)

text:
# zmq_pgm(7)

## NAME
zmq_pgm - 0MQ reliable multicast transport using PGM

## SYNOPSIS
PGM (Pragmatic General Multicast) is a protocol for reliable multicast transport of data over IP networks.

## DESCRIPTION
0MQ implements two variants of PGM, the standard protocol where PGM datagrams are layered directly on top of IP datagrams as defined by RFC 3208 (the pgm transport) and "Encapsulated PGM" or EPGM where PGM datagrams are encapsulated inside UDP datagrams (the epgm transport).

The pgm and epgm transports can only be used with the ZMQ_PUB and ZMQ_SUB socket types.

Further, PGM sockets are rate limited by default. For details, refer to the ZMQ_RATE, and ZMQ_RECOVERY_IVL options documented in zmq_setsockopt(3).

Caution The pgm transport implementation requires access to raw IP sockets. Additional privileges may be required on some operating systems for this operation. Applications not requiring direct interoperability with other PGM implementations are encouraged to use the epgm transport instead which does not require any special privileges.

## ADDRESSING
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to connect to.

For the PGM transport, the transport is pgm, and for the EPGM protocol the transport is epgm. The meaning of the address part is defined below.

### Connecting a socket
When connecting a socket to a peer address using zmq_connect() with the pgm or epgm transport, the endpoint shall be interpreted as an interface followed by a semicolon, followed by a multicast address, followed by a colon and a port number.

An interface may be specified by either of the following:

•The interface name as defined by the operating system.

•The primary IPv4 address assigned to the interface, in its numeric representation.

Note Interface names are not standardised in any way and should be assumed to be arbitrary and platform dependent. On Win32 platforms no short interface names exist, thus only the primary IPv4 address may be used to specify an interface. The interface part can be omitted, in that case the default one will be selected.

A multicast address is specified by an IPv4 multicast address in its numeric representation.

## WIRE FORMAT
Consecutive PGM datagrams are interpreted by 0MQ as a single continuous stream of data where 0MQ messages are not necessarily aligned with PGM datagram boundaries and a single 0MQ message may span several PGM datagrams. This stream of data consists of 0MQ messages encapsulated in frames as described in zmq_tcp(7).

### PGM datagram payload
The following ABNF grammar represents the payload of a single PGM datagram as used by 0MQ:

```
datagram               = (offset data)
offset                 = 2OCTET
data                   = *OCTET
```

In order for late joining consumers to be able to identify message boundaries, each PGM datagram payload starts with a 16-bit unsigned integer in network byte order specifying either the offset of the first message frame in the datagram or containing the value 0xFFFF if the datagram contains solely an intermediate part of a larger message.

Note that offset specifies where the first message begins rather than the first message part. Thus, if there are trailing message parts at the beginning of the packet the offset ignores them and points to first initial message part in the packet.

The following diagram illustrates the layout of a single PGM datagram payload:

```
+------------------+----------------------+
| offset (16 bits) |         data         |
+------------------+----------------------+
```

The following diagram further illustrates how three example 0MQ frames are laid out in consecutive PGM datagram payloads:

```
First datagram payload
+--------------+-------------+---------------------+
| Frame offset |   Frame 1   |   Frame 2, part 1   |
|    0x0000    | (Message 1) | (Message 2, part 1) |
+--------------+-------------+---------------------+
Second datagram payload
+--------------+---------------------+
| Frame offset |   Frame 2, part 2   |
| 0xFFFF       | (Message 2, part 2) |
+--------------+---------------------+
Third datagram payload
+--------------+----------------------------+-------------+
| Frame offset |   Frame 2, final 8 bytes   |   Frame 3   |
| 0x0008       | (Message 2, final 8 bytes) | (Message 3) |
+--------------+----------------------------+-------------+
```

## CONFIGURATION
The PGM is protocol is capable of multicasting data at high rates (500Mbps+) with large messages (1MB+), however it requires setting the relevent ZMQ socket options that are documented in zmq_setsockopt(3):

•The ZMQ_RATE should be set sufficiently high, e.g. 1Gbps

•The ZMQ_RCVBUF should be increased on the subscriber, e.g. 4MB

•The ZMQ_SNDBUF should be increased on the publisher, e.g. 4MB

It’s important to note that the ZMQ_RCVBUF and ZMQ_SNDBUF options are limited by the underlying host OS tx/rx buffer size limit. On linux, these can be increased for the current session with the following commands:

```
# set tx/rx buffers to 4MB (default can also be read as the initial buffer size)
sudo sysctl -w net.core.rmem_max=4194304
sudo sysctl -w net.core.wmem_max=4194304
sudo sysctl -w net.core.rmem_default=4194304
sudo sysctl -w net.core.wmem_default=4194304
```

## EXAMPLE
Connecting a socket.

```
//  Connecting to the multicast address 239.192.1.1, port 5555,
//  using the first Ethernet network interface on Linux
//  and the Encapsulated PGM protocol
rc = zmq_connect(socket, "epgm://eth0;239.192.1.1:5555");
assert (rc == 0);
//  Connecting to the multicast address 239.192.1.1, port 5555,
//  using the network interface with the address 192.168.1.1
//  and the standard PGM protocol
rc = zmq_connect(socket, "pgm://192.168.1.1;239.192.1.1:5555");
assert (rc == 0);
```

## SEE ALSO
zmq_connect(3) zmq_setsockopt(3) zmq_tcp(7) zmq_ipc(7) zmq_inproc(7) zmq_vmci(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_plain(7)

summary: clear\-text authentication

text:
# zmq_plain(7)

## NAME
zmq_plain - clear-text authentication

## SYNOPSIS
The PLAIN mechanism defines a simple username/password mechanism that lets a server authenticate a client. PLAIN makes no attempt at security or confidentiality. It is intended for use on internal networks where security requirements are low. The PLAIN mechanism is defined by this document: http://rfc.zeromq.org/spec:24.

## USAGE
To use PLAIN, the server shall set the ZMQ_PLAIN_SERVER option, and the client shall set the ZMQ_PLAIN_USERNAME and ZMQ_PLAIN_PASSWORD socket options. Which peer binds, and which connects, is not relevant.

## SEE ALSO
zmq_setsockopt(3) zmq_null(7) zmq_curve(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_tcp(7)

summary: 0MQ unicast transport using TCP

text:
# zmq_tcp(7)

## NAME
zmq_tcp - 0MQ unicast transport using TCP

## SYNOPSIS
TCP is an ubiquitous, reliable, unicast transport. When connecting distributed applications over a network with 0MQ, using the TCP transport will likely be your first choice.

## ADDRESSING
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to connect to.

For the TCP transport, the transport is tcp, and the meaning of the address part is defined below.

### Assigning a local address to a socket
When assigning a local address to a socket using zmq_bind() with the tcp transport, the endpoint shall be interpreted as an interface followed by a colon and the TCP port number to use.

An interface may be specified by either of the following:

•The wild-card *, meaning all available interfaces.

•The primary IPv4 or IPv6 address assigned to the interface, in its numeric representation.

•The non-portable interface name as defined by the operating system.

The TCP port number may be specified by:

•A numeric value, usually above 1024 on POSIX systems.

•The wild-card *, meaning a system-assigned ephemeral port.

When using ephemeral ports, the caller should retrieve the actual assigned port using the ZMQ_LAST_ENDPOINT socket option. See zmq_getsockopt(3) for details.

### Unbinding wild-card address from a socket
When wild-card * endpoint was used in zmq_bind(), the caller should use real endpoint obtained from the ZMQ_LAST_ENDPOINT socket option to unbind this endpoint from a socket using zmq_unbind().

### Connecting a socket
When connecting a socket to a peer address using zmq_connect() with the tcp transport, the endpoint shall be interpreted as a peer address followed by a colon and the TCP port number to use. You can optionally specify a source_endpoint which will be used as the source address for your connection; tcp://source_endpoint;'endpoint', see the interface description above for details.

A peer address may be specified by either of the following:

•The DNS name of the peer.

•The IPv4 or IPv6 address of the peer, in its numeric representation.

Note: A description of the ZeroMQ Message Transport Protocol (ZMTP) which is used by the TCP transport can be found at http://rfc.zeromq.org/spec:15

## HWM
For the TCP transport, the high water mark (HWM) mechanism works in conjunction with the TCP socket buffers handled at OS level. Depending on the OS and several other factors the size of such TCP buffers will be different. Moreover TCP buffers provided by the OS will accomodate a varying number of messages depending on the size of messages (unlike ZMQ HWM settings the TCP socket buffers are measured in bytes and not messages).

This may result in apparently inexplicable behaviors: e.g., you may expect that setting ZMQ_SNDHWM to 100 on a socket using TCP transport will have the effect of blocking the transmission of the 101-th message if the receiver is slow. This is very unlikely when using TCP transport since OS TCP buffers will typically provide enough buffering to allow you sending much more than 100 messages.

Of course if the receiver is slow, transmitting on a TCP ZMQ socket will eventually trigger the "mute state" of the socket; simply don’t rely on the exact HWM value.

Obviously the same considerations apply for the receive HWM (see ZMQ_RCVHWM).

## EXAMPLES
Assigning a local address to a socket.

```
//  TCP port 5555 on all available interfaces
rc = zmq_bind(socket, "tcp://*:5555");
assert (rc == 0);
//  TCP port 5555 on the local loop-back interface on all platforms
rc = zmq_bind(socket, "tcp://127.0.0.1:5555");
assert (rc == 0);
//  TCP port 5555 on the first Ethernet network interface on Linux
rc = zmq_bind(socket, "tcp://eth0:5555");
assert (rc == 0);
```

Connecting a socket.

```
//  Connecting using an IP address
rc = zmq_connect(socket, "tcp://192.168.1.1:5555");
assert (rc == 0);
//  Connecting using a DNS name
rc = zmq_connect(socket, "tcp://server1:5555");
assert (rc == 0);
//  Connecting using a DNS name and bind to eth1
rc = zmq_connect(socket, "tcp://eth1:0;server1:5555");
assert (rc == 0);
//  Connecting using a IP address and bind to an IP address
rc = zmq_connect(socket, "tcp://192.168.1.17:5555;192.168.1.1:5555");
assert (rc == 0);
```

## SEE ALSO
zmq_bind(3) zmq_connect(3) zmq_pgm(7) zmq_ipc(7) zmq_inproc(7) zmq_vmci(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_tipc(7)

summary: 0MQ unicast transport using TIPC

text:
# zmq_tipc(7)

## NAME
zmq_tipc - 0MQ unicast transport using TIPC

## SYNOPSIS
TIPC is a cluster IPC protocol with a location transparent addressing scheme.

## ADDRESSING
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to connect to.

For the TIPC transport, the transport is tipc, and the meaning of the address part is defined below.

### Assigning a port name to a socket
When assigning a port name to a socket using zmq_bind() with the tipc transport, the endpoint is defined in the form: {type, lower, upper}

•Type is the numerical (u32) ID of your service.

•Lower and Upper specify a range for your service.

Publishing the same service with overlapping lower/upper ID’s will cause connection requests to be distributed over these in a round-robin manner.

### Connecting a socket
When connecting a socket to a peer address using zmq_connect() with the tipc transport, the endpoint shall be interpreted as a service ID, followed by a comma and the instance ID.

The instance ID must be within the lower/upper range of a published port name for the endpoint to be valid.

## EXAMPLES
Assigning a local address to a socket.

```
//  Publish TIPC service ID 5555
rc = zmq_bind(socket, "tipc://{5555,0,0}");
assert (rc == 0);
//  Publish TIPC service ID 5555 with a service range of 0-100
rc = zmq_bind(socket, "tipc://{5555,0,100}");
assert (rc == 0);
```

Connecting a socket.

```
//  Connect to service 5555 instance id 50
rc = zmq_connect(socket, "tipc://{5555,50}");
assert (rc == 0);
```

## SEE ALSO
zmq_bind(3) zmq_connect(3) zmq_tcp(7) zmq_pgm(7) zmq_ipc(7) zmq_inproc(7) zmq_vmci(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_udp(7)

summary: 0MQ UDP multicast and unicast transport

text:
# zmq_udp(7)

## NAME
zmq_udp - 0MQ UDP multicast and unicast transport

## SYNOPSIS
UDP is unreliable protocol transport of data over IP networks. UDP support both unicast and multicast communication.

## DESCRIPTION
UDP transport can only be used with the ZMQ_RADIO and ZMQ_DISH socket types.

## ADDRESSING
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to connect to.

For the UDP transport, the transport is udp. The meaning of the address part is defined below.

Binding a socket

```
With 'udp' we can only bind the 'ZMQ_DISH' socket type.
When binding a socket using _zmq_bind()_ with the 'udp'
transport the 'endpoint' shall be interpreted as an 'interface' followed by a
colon and the UDP port number to use.
An 'interface' may be specified by either of the following:
* The wild-card `*`, meaning all available interfaces.
* The name of the network interface (i.e. eth0, lo, wlan0 etc...)
* The primary address assigned to the interface, in its numeric representation.
* Multicast address in its numeric representation the socket should join.
The UDP port number may be specified a numeric value, usually above
1024 on POSIX systems.
Connecting a socket
```

With udp we can only connect the ZMQ_RADIO socket type. When connecting a socket to a peer address using zmq_connect() with the udp transport, the endpoint shall be interpreted as a peer address followed by a colon and the UDP port number to use.

A peer address may be specified by either of the following:

•The IPv4 or IPv6 address of the peer, in its numeric representation or using its hostname.

•Multicast address in its numeric representation.

## EXAMPLES
Binding a socket.

```
//  Unicast - UDP port 5555 on all available interfaces
rc = zmq_bind(dish, "udp://*:5555");
assert (rc == 0);
//  Unicast - UDP port 5555 on the local loop-back interface
rc = zmq_bind(dish, "udp://127.0.0.1:5555");
assert (rc == 0);
//  Unicast - UDP port 5555 on interface eth1
rc = zmq_bind(dish, "udp://eth1:5555");
assert (rc == 0);
//  Multicast - UDP port 5555 on a Multicast address
rc = zmq_bind(dish, "udp://239.0.0.1:5555");
assert (rc == 0);
//  Same as above but joining only on interface eth0
rc = zmq_bind(dish, "udp://eth0;239.0.0.1:5555");
assert (rc == 0);
//  Same as above using IPv6 multicast
rc = zmq_bind(dish, "udp://eth0;[ff02::1]:5555");
assert (rc == 0);
```

Connecting a socket.

```
//  Connecting using an Unicast IP address
rc = zmq_connect(radio, "udp://192.168.1.1:5555");
assert (rc == 0);
//  Connecting using a Multicast address
rc = zmq_connect(socket, "udp://239.0.0.1:5555);
assert (rc == 0);
//  Connecting using a Multicast address using local interface wlan0
rc = zmq_connect(socket, "udp://wlan0;239.0.0.1:5555);
assert (rc == 0);
//  Connecting to IPv6 multicast
rc = zmq_connect(socket, "udp://[ff02::1]:5555);
assert (rc == 0);
```

## SEE ALSO
zmq_connect(3) zmq_setsockopt(3) zmq_tcp(7) zmq_ipc(7) zmq_inproc(7) zmq_vmci(7) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


title: zmq_vmci(7)

text:
# zmq_vmci(7)

## NAME
zmq_vmci - 0MQ transport over virtual machine communicatios interface (VMCI) sockets

## SYNOPSIS
The VMCI transport passes messages between VMware virtual machines running on the same host, between virtual machine and the host and within virtual machines (inter-process transport like ipc).

Note Communication between a virtual machine and the host is not supported on Mac OS X 10.9 and above.

## ADDRESSING
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies the underlying protocol to use. The address specifies the transport-specific address to connect to.

For the VMCI transport, the transport is vmci, and the meaning of the address part is defined below.

### Binding a socket
When binding a socket to a local address using zmq_bind() with the vmci transport, the endpoint shall be interpreted as an interface followed by a colon and the TCP port number to use.

An interface may be specified by either of the following:

•The wild-card *, meaning all available interfaces.

•An integer returned by VMCISock_GetLocalCID or @ (ZeroMQ will call VMCISock_GetLocalCID internally).

The port may be specified by:

•A numeric value, usually above 1024 on POSIX systems.

•The wild-card *, meaning a system-assigned ephemeral port.

### Unbinding wild-card address from a socket
When wild-card * endpoint was used in zmq_bind(), the caller should use real endpoint obtained from the ZMQ_LAST_ENDPOINT socket option to unbind this endpoint from a socket using zmq_unbind().

### Connecting a socket
When connecting a socket to a peer address using zmq_connect() with the vmci transport, the endpoint shall be interpreted as a peer address followed by a colon and the port number to use.

A peer address must be a CID of the peer.

## EXAMPLES
Assigning a local address to a socket.

```
//  VMCI port 5555 on all available interfaces
rc = zmq_bind(socket, "vmci://*:5555");
assert (rc == 0);
//  VMCI port 5555 on the local loop-back interface on all platforms
cid = VMCISock_GetLocalCID();
sprintf(endpoint, "vmci://%d:5555", cid);
rc = zmq_bind(socket, endpoint);
assert (rc == 0);
```

Connecting a socket.

```
//  Connecting using a CID
sprintf(endpoint, "vmci://%d:5555", cid);
rc = zmq_connect(socket, endpoint);
assert (rc == 0);
```

## SEE ALSO
zmq_bind(3) zmq_connect(3) zmq_inproc(7) zmq_tcp(7) zmq_pgm(7) zmq_vmci(7) zmq_getsockopt(3) zmq(7)

## AUTHORS
This page was written by the 0MQ community. To make a change please read the 0MQ Contribution Policy at http://www.zeromq.org/docs:contributing.


qos

package: linux-atm

title: qos(7)

summary: Quality of Service specification

text:
# qos(7)

## NAME
qos - Quality of Service specification

## DESCRIPTION
The text2qos and qos2text functions use the format described in this man page. Because all standard ATM tools on Linux use those functions to convert to or from the textual representation of QOS specifications, they expect them in the same format too.

The most fundamental parameters are the traffic class and the AAL (ATM Adaption Layer) type. If the connection is bi-directional, both directions have the same traffic class and the same AAL type. The traffic class and the AAL type are the first elements (in any order) in a QOS specification. The traffic class is the only required element. If the AAL type is omitted, the application will provide a default value. The following traffic classes are recognized:

ubr

Unassigned Bit Rate

cbr

Constant Bit Rate

abr

Available Bit Rate

The following AAL types are recognized:

aal0

("raw ATM")

aal5

If both, the traffic class and the AAL type are specified, they are separated by a comma.

If more parameters are supplied, the traffic class and AAL type must be followed by a colon. Traffic parameters can be specified independently for the transmit and the receive direction. Their parameter lists are prefixed with tx: and rx:, respectively. If both parameter lists are present, the tx: list must precede the rx: list. If a parameter is equal for both directions, it can be placed in a common parameter list (without prefix). The general format is as follows:

class_and_aal:common_list,tx:list,rx:list

Each list consists of elements specifying a parameter. Elements can appear in any order and they are separated with commas. The following elements are recognized:

pcr=rate

is a synonym for max_pcr=rate

max_pcr=rate

The upper limit for the peak cell rate to assign. If omitted, any rate up to link speed may be chosen.

min_pcr=rate

The lower limit for the peak cell rate to assign. If omitted, any rate above zero can be chosen.

sdu=size

is a synonym for max_sdu=size

max_sdu=size

The size of the largest packet that may be sent or received. If omitted, a context-dependent default value is used.

Values are specified as follows:

rate

The (decimal) rate, optionally followed by a unit. The unit may be prefixed with one of the multipliers k, M, or G, meaning 1'000, 1'000'000, or 1'000'000'000, respectively. The units cps (cells per second) and bps (bits per second) are recognized. If multiplier and unit are omitted, cells per second are assumed. Note that the rate is always converted to cells per second, so rounding errors may occur when specifying the rate in bits per second. Rates measured in bits per second are considered to be user data rates, i.e. one cell corresponds to 384 bits. The rate can be a fractional value, e.g. 1.3Mbps. It is an error to specify only a multiplier without a unit. Link speed can be indicated by using the keyword max as the rate.

size

The (decimal) number of bytes.

The tx: or rx: lists may also just contain the single element none, which indicates that the corresponding direction is not used. It is an error to specify none for both direction.

Note that commas must never follow colons or other commas. Also, whitespace is not allowed inside a QOS specification. QOS specifications are case-insensitive.

## EXAMPLES
Each of the following lines contains a valid QOS specification:

```
  ubr

  ubr:pcr=100kbps

  cbr,aal0:pcr=64kbps

  CBR:max_pcr=11Mbps,min_pcr=10mbps,sdu=8192

  aal5,ubr:tx:none

  cbr:tx:pcr=30000,rx:none
```

The following specificiations are equivalent:

```
  CBR,AAL5:PCR=48Mbps

  cbr,aal5:max_pcr=125000

  cbr,aal5:tx:pcr=125kcps,rx:pcr=125kcps
```

## AUTHOR
Werner Almesberger, EPFL LRC/ICA <werner.almesberger@epfl.ch>


sap

title: sap(7)

summary: Service Access Point specification

text:
# sap(7)

## NAME
sap - Service Access Point specification

## DESCRIPTION
The text2sap and sap2text functions use the format described in this man page. Because all standard ATM tools on Linux use those functions to convert to or from the textual representation of SAP specifications, they expect them in the same format too.

The SAP is divided into two parts: the broadband high layer information (BHLI) and the broadband low layer information (BLLI). A SAP can contain one, both, or none of them. In the latter case, the SAP is usually considered as a wildcard SAP, i.e. a SAP that is compatible with any other SAP.

Each part begins with its name (bhli or blli), followed by a colon and a (non-empty) list of attributes, which are of the form attribute=value. Some attributes have sub-attributes, which follow them. Everything that isn't separated by a colon or an equal sign is separated by a comma.

Values which are a number of bytes are specified as the corresponding sequence of pairs of hex digits. The sequence can be optionally prefixed with 0x. Values with are integers in a given range can be specified in decimal (no prefix), octal (0 prefix), and hexadecimal (0x prefix).

The following, mutually exclusive attributes are allowed in the bhli part (see the corresponding ATM Forum and ITU documents for the semantics):

iso=1-8 bytes

ISO

user=1-8 bytes

User-specific

hlp=4 bytes

High layer profile. Note that this attribute only exists on UNI 3.0. text2sap only recognizes it if your system is configured to accept UNI 3.0 message formats.

oui=3 bytes,id=4 bytes

Vendor-specific application identifier

The structure of the bhli part is more complex. It distinguishes three layers, l1, l2, and l3, of which the first one is presently unsupported. For layer two, the following (mutually exclusive) possibilities exist:

l2=iso1745

Basic mode ISO 1745

l2=q291

ITU-T Q.291 (Rec. I.441)

l2=lapb

Extended LAPB, half-duplex (Rec. T.71)

l2=iso8802

LAN LLC (ISO/IEC 8802/2)

l2=x75

ITU-T X.75, SLP

l2=x25_ll ...

ITU-T X.25, link layer. This attribute and the following attributes through l2=iso7776 can optionally be followed by one or more of the following sub-attributes: mode=mode (mode of operation, either norm or ext), and window=window size (window size in k, 1-127).

l2=x25_ml ...

ITU-T X.25, multilink

l2=hdlc_arm ...

HDLC ARM (ISO/IEC 4335)

l2=hdlc_nrm ...

HDLC NRM (ISO/IEC 4335)

l2=hdlc_abm ...

HDLC ABM (ISO/IEC 4335)

l2=q992 ...

ITU-T Q.922

l2=iso7776 ...

ISO 7776 DTE-DTE

l2=user,info=information

User-specified. information is an integer in the range 0 to 255.

For layer three, the following (again, mutually exclusive) possibilities exist:

l3=iso8473

ITU-T X.233 | ISO/IEC 8473

l3=t70

ITU-T T.70 minimum network layer

l3=h321

ITU-T Recommendation H.321

l3=x25 ...

ITU-T X.25, packet layer. This attribute and the following attributes through l3=x223 can optionally be followed by one or more of the following sub-attributes: mode=mode (see above), size=default packet size (4-12, corresponding to 16-4096), window=window size (see above).

l3=iso8208 ...

ISO/IEC 8208

l3=x223 ...

ITU-T X.223 | ISO/IEC 8878

l3=tr9577,ipi=identifier ...

ISO/IEC TR 9577. identifier is the initial protocol identifier in the range 0-255. For SNAP (0x80), the keyword snap can be used, and the following sub-attributes have to be specified: oui=3 bytes, and pid=2 bytes.

l2=user,info=information

User-specified, see above.

l3=h310 ...

ITU-T Recommendation H.310. The sub-attribute term=type (terminal type, rx, tx, or rxtx) is recognized. If present, it enables the two additional sub-attributes fw_mpx=capability (forward multiplexing capability, ts, ts_fec, ps, ps_fec, or h221) and bw_mpx=capability. Both are optional.

Note that commas must never follow colons or other commas. Also, whitespace is not allowed inside a SAP specification. SAP specifications are case-insensitive. On input, items must be written in exactly the order used in this document.

## EXAMPLES
blli:l2=iso8802

Classical IP over ATM (RFC1577)

bhli:oui=0x0060D7,id=0x01000001,blli:l2=iso8802

Arequipa (RFC2170)

blli:l3=tr9577,ipi=snap,oui=0x00A03E,pid=0x0002

LAN Emulation

## AUTHOR
Werner Almesberger, EPFL LRC <werner.almesberger@lrc.di.epfl.ch>


lizardfs

package: lizardfs-client

title: lizardfs(7)

text:
# lizardfs(7)

## NAME
lizardfs, moosefs, mfs - a networking, distributed, highly available file system

## DESCRIPTION
LizardFS is a networking, highly available, distributed file system. It spreads data over several physical localisations (servers), which are visible to a user as one resource. For standard file operations LizardFS acts as other Unix-alike file systems. It has hierarchical structure (directory tree), stores files' attributes (permissions, last access and modification times) as well as makes it possible to create special files (block and character devices, pipes and sockets), symbolic links (file names pointing to another files accessible locally, not necessarily on LizardFS) and hard links (different names of files which refer to the same data on LizardFS). Access to the file system can be limited basing on IP address and/or password.

Distinctive features of LizardFS are:

•higher reliability (data can be stored in several copies on separate computers)

•dynamically expanding disk space by attaching new computers/disks

•possibility of storing deleted files for a defined period of time ("trash bin" service on a file system level)

•possibility of creating snapshot of a file, which means coherent copy of them whole file, even while the file is being written.

## ARCHITECTURE
LizardFS installation consists of five types of machines:

•master metadata server (or ‘the master’) a managing server - single computer managing the whole filesystem, storing metadata for every file (information on size, attributes and file localisation(s), including all information about non-regular files, i.e. directories, sockets, pipes and devices.

•metadata server shadows (or ‘the shadow’) - almost identical to the master, there can be any number of those, they work as master metadata server backup and they are ready for immediate deployment as new master in case of current master failure.

•data servers (any number of commodity servers storing files data and replicating it among themselves (if a certain file is supposed to exist in more than one copy).

•metadata backup servers - any number of servers, all of which store metadata changelogs and periodically downloading base metadata file; it’s easy to run mfsmaster process on such machine when primary master stops working.

•client computers referring to LizardFS stored files - any number of machines with working mfsmount process that communicates with the managing server to receive and modify file information and with chunkservers to exchange actual file data.

Metadata is stored in memory of the managing server and simultaneously is being saved on disk (as a periodically updated binary file and immediately updated incremental logs). The main binary file as well as the logs are replicated to metaloggers (if present).

File data is divided to fragments (chunks) of maximum size 64MB each which are stored as files on selected disks on data servers (chunkservers). Each chunk is saved on different computers in a number of copies equal to a "goal" for the given file.

## REPORTING BUGS
Report bugs to <contact@lizardfs.org>.

## COPYRIGHT
Copyright 2008-2009 Gemius SA, 2013-2019 Skytechnology sp. z o.o.

LizardFS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

LizardFS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with LizardFS. If not, see http://www.gnu.org/licenses/.

## SEE ALSO
mfschunkserver(8), mfsmaster(8), mfsmetalogger(8), mfsmount(1), mfstools(1), lizardfs-admin(8)


package: lizardfs-master

title: lizardfs(7)

summary: a networking, distributed, highly available file system


lvmautoactivation

title: lvmautoactivation(7)

summary: LVM autoactivation

text:
# lvmautoactivation(7)

## NAME
lvmautoactivation — LVM autoactivation

## DESCRIPTION
Autoactivation is the activation of LVs performed automatically by the system in response to LVM devices being attached to the machine. When all PVs in a VG have been attached, the VG is complete, and LVs in the VG are activated.

Autoactivation of VGs, or specific LVs, can be prevented using vgchange or lvchange --setautoactivation n. The lvm.conf(5) auto_activation_volume_list is another way to limit autoactivation.

### event autoactivation
LVM autoactivation is "event based", in which complete VGs are activated in response to uevents which occur during system startup or at any time after the system has started. An old form of autoactivation was "static" in which complete VGs are activated at a fixed point during system startup by a systemd service, and not in response to events.

Event based autoactivation is driven by udev, udev rules, and systemd. When a device is attached to a machine, a uevent is generated by the kernel to notify userspace of the new device. systemd-udev runs udev rules to process the new device. Udev rules use blkid to identify the device as an LVM PV and then execute the lvm-specific udev rule for the device, which triggers autoactivation.

There are two variations of event based autoactivation that may be used on a system, depending on the LVM udev rule that is installed (found in /lib/udev/rules.d/). The following summarizes the steps in each rule which lead to autoactivation:

69-dm-lvm-metad.rules

•

device /dev/name with major:minor X:Y is attached to the machine

•

systemd/udev runs blkid to identify /dev/name as an LVM PV

•

udev rule 69-dm-lvm-metad.rules is run for /dev/name

•

the lvm udev rule runs the systemd service lvm2-pvscan@X:Y.service

•

the lvm2-pvscan service runs:

pvscan --cache -aay --major X --minor Y

•

pvscan reads the device, records that the PV is online (see pvs_online), and checks if the VG is complete.

•

if the VG is complete, pvscan creates the vgs_online temp file, and activates the VG.

•

the activation command output can be seen from systemctl status lvm2-pvscan*

69-dm-lvm.rules

•

device /dev/name with major:minor X:Y is attached to the machine

•

systemd/udev runs blkid to identify /dev/name as an LVM PV

•

udev rule 69-dm-lvm.rules is run for /dev/name

•

the lvm udev rule runs:

pvscan --cache --listvg --checkcomplete --vgonline --autoactivation event --udevoutput --journal=output /dev/name

•

pvscan reads the device, records that the PV is online (see pvs_online), and checks if the VG is complete.

•

if the VG is complete, pvscan creates the vgs_online temp file, and prints the name of the VG for the udev rule to import: LVM_VG_NAME_COMPLETE='vgname'

•

if the lvm udev rule sees LVM_VG_NAME_COMPLETE from pvscan, it activates the VG using a transient systemd service named lvm-activate-<vgname>.

•

the lvm-activate-<vgname> service runs

vgchange -aay --autoactivation event <vgname>

•

the activation command output can be seen from journalctl -u lvm-activate-<vgname>

### pvscan options
--cache

Read the <device> arg (and only that device), and record that the PV is online by creating the /run/lvm/pvs_online/<pvid> file containing the name of the VG and the device for the PV.

-aay

Activate the VG from the pvscan command (includes implicit --checkcomplete and --vgonline.)

--checkcomplete

Check if the VG is complete, i.e. all PVs are present on the system, by checking /run/lvm/pvs_online/<pvid> files.

--vgonline

Create /run/lvm/vgs_online/<vgname> if the VG is complete (used to ensure only one command performs activation.)

--autoactivation event

Inform the command it is used for event based autoactivation.

--listvg

Print the name of the VG using the device.

--udevoutput

Only print output that can be imported to the udev rule, using the udev environment key format, i.e. NAME='value'.

--journal=output

Send standard command output to the journal (when stdout is reserved for udev output.)

### run files
Autoactivation commands use a number of temp files in /run/lvm (with the expectation that it is cleared between boots).

pvs_online

pvscan --cache creates a file here for each PV that is attached. The file is named with the PVID and contains the VG name and device information. The existence of the file is used to determine when all PVs for a given VG are present. The device information in these files is also used to optimize locating devices for a VG when the VG is activated.

pvs_lookup

pvscan --cache creates a file here named for a VG (if one doesn't already exist.) The file contains a list of PVIDs in the VG. This is needed when a PV is processed which has no VG metadata, in which case the list of PVIDs from the lookup file is used to check if the VG is complete.

vgs_online

The first activation command (pvscan or vgchange) to create a file here, named for the VG, will activate the VG. This resolves a race when concurrent commands attempt to activate a VG at once.

### static autoactivation
A static autoactivation method is no longer provided by lvm. Setting event_activation=0 still disables event based autoactivation. WARNING: disabling event activation without an alternative may prevent a system from booting. A custom systemd service could be written to run autoactivation during system startup, in which case disabling event autoactivation may be useful.

### lvm.conf filter
Device symlinks from /dev/disk/ can be used in the lvm.conf(5) filter to guard against changes in kernel device names. The /dev/disk/by-path/ or /dev/disk/by-id/ prefixes should be included in the filter names; these prefixes help lvm detect that symlink names are used. Filters containing symlinks require special matching by commands run in the lvm udev rule.

Common symlinks, e.g. beginning with wwn-, scsi-, pci-, or lvm-pv-uuid-, are recommended. Uncommon or custom symlinks created by custom udev rules may be less reliable. If a custom udev rule creates symlinks used in the lvm filter, then the udev rule should be started prior to the lvm rule.

## EXAMPLES
VG "vg" contains two PVs:

```
# pvs -o name,vgname,uuid /dev/sdb /dev/sdc
  PV         VG PV UUID
  /dev/sdb   vg 1uKpaT-lFOZ-NLHX-j4jI-OBi1-QpdE-HZ5hZY
  /dev/sdc   vg 5J3tM8-aIPe-2vbd-DBe7-bvRq-TGj0-DaKV2G
```

use of --cache:

```
# pvscan --cache /dev/sdb
  pvscan[12922] PV /dev/sdb online.
# pvscan --cache /dev/sdc
  pvscan[12923] PV /dev/sdc online.
```

```
# cat /run/lvm/pvs_online/1uKpaTlFOZNLHXj4jIOBi1QpdEHZ5hZY
8:16
vg:vg
dev:/dev/sdb
# cat /run/lvm/pvs_online/5J3tM8aIPe2vbdDBe7bvRqTGj0DaKV2G
8:32
vg:vg
dev:/dev/sdc
```

use of -aay:

```
# pvscan --cache -aay /dev/sdb
  pvscan[12935] PV /dev/sdb online, VG vg incomplete (need 1).
# pvscan --cache -aay /dev/sdc
  pvscan[12936] PV /dev/sdc online, VG vg is complete.
  pvscan[12936] VG vg run autoactivation.
  1 logical volume(s) in volume group "vg" now active
```

```
# cat /run/lvm/pvs_online/1uKpaTlFOZNLHXj4jIOBi1QpdEHZ5hZY
8:16
vg:vg
dev:/dev/sdb
$ cat /run/lvm/pvs_online/5J3tM8aIPe2vbdDBe7bvRqTGj0DaKV2G
8:32
vg:vg
dev:/dev/sdc
# ls /run/lvm/vgs_online/vg
/run/lvm/vgs_online/vg
```

use of --listvg:

```
# pvscan --cache --listvg /dev/sdb
  VG vg
# pvscan --cache --listvg /dev/sdc
  VG vg
```

```
# cat /run/lvm/pvs_online/1uKpaTlFOZNLHXj4jIOBi1QpdEHZ5hZY
8:16
vg:vg
dev:/dev/sdb
$ cat /run/lvm/pvs_online/5J3tM8aIPe2vbdDBe7bvRqTGj0DaKV2G
8:32
vg:vg
dev:/dev/sdc
```

use of --checkcomplete:

```
# pvscan --cache --listvg --checkcomplete --vgonline /dev/sdb
  pvscan[12996] PV /dev/sdb online, VG vg incomplete (need 1).
  VG vg incomplete
# pvscan --cache --listvg --checkcomplete --vgonline /dev/sdc
  pvscan[12997] PV /dev/sdc online, VG vg is complete.
  VG vg complete
```

use of --udevoutput:

```
# pvscan --cache --listvg --checkcomplete --vgonline --udevoutput /dev/sdb
LVM_VG_NAME_INCOMPLETE='vg'
# pvscan --cache --listvg --checkcomplete --vgonline --udevoutput /dev/sdc
LVM_VG_NAME_COMPLETE='vg'
```

use of --listlvs:

```
# lvs -o name,devices vg
  LV    Devices
  lvol0 /dev/sdb(0)
  lvol1 /dev/sdc(0)
  lvol2 /dev/sdb(1),/dev/sdc(1)
```

```
# pvscan --cache --listlvs --checkcomplete /dev/sdb
  pvscan[13288] PV /dev/sdb online, VG vg incomplete (need 1).
  VG vg incomplete
  LV vg/lvol0 complete
  LV vg/lvol2 incomplete
# pvscan --cache --listlvs --checkcomplete /dev/sdc
  pvscan[13289] PV /dev/sdc online, VG vg is complete.
  VG vg complete
  LV vg/lvol1 complete
  LV vg/lvol2 complete
```

## SEE ALSO
lvm(8), lvm.conf(5), lvchange(8), pvscan(8)