Knowledge

Named pipe

Source 📝

216:
Named pipes cannot be created as files within a normal filesystem, unlike in Unix. Also unlike their Unix counterparts, named pipes are volatile (removed after the last reference to them is closed). Every pipe is placed in the root directory of the named pipe filesystem (NPFS), mounted under the
115:
A named pipe can be used to transfer information from one application to another without the use of an intermediate temporary file. For example, you can pipe the output of gzip into a named pipe like so (here out.gz is from above example but it can be any gz):
61:" and lasts only as long as the process. A named pipe, however, can last as long as the system is up, beyond the life of the process. It can be deleted if no longer used. Usually a named pipe appears as a file, and generally processes attach to it for IPC. 543: 163:
Without this named pipe one would need to write out the entire uncompressed version of file.gz before loading it into MySQL. Writing the temporary file is both time-consuming and results in more
259:
supports named pipes as a transport for debugging sessions (in fact, VMware and WinDbg can be coupled together – as WinDbg normally requires a serial connection to the target computer – letting
609: 496: 535: 363:(IPC) share. SMB's IPC can seamlessly and transparently pass the authentication context of the user across to Named Pipes. Windows NT's entire 742: 602: 462: 798: 862: 595: 757: 309: 304: 290: 286: 29: 484: 762: 266:
do their development and testing on a single computer). Both programs require the user to enter names in the
618: 571: 521: 410: 360: 46: 432: 737: 752: 85:
can access the pipe by name — one process can open it as a reader, and the other as a writer.
684: 334:
Inefficient WAN traffic (explicit data transfer request, unlike e.g. TCP/IP sliding window, etc.)
719: 206: 517: 385: 356: 349: 8: 813: 450: 82: 818: 724: 707: 631: 263: 233: 103:
In a separate process shell, independently, one could send the data to be compressed:
69:
Instead of a conventional, unnamed, shell pipeline, a named pipeline makes use of the
236: 54: 205:
open, read from, write to, and close a pipe, respectively. Unlike Unix, there is no
635: 229:). Anonymous pipes used in pipelining are actually named pipes with a random name. 679: 659: 390: 299: 240: 34: 702: 674: 418: 380: 371:
service over Named Pipes, as are the Exchange 5.5 Administrative applications.
342: 58: 587: 856: 793: 689: 664: 649: 581: 295: 260: 694: 577: 567: 164: 232:
They are very rarely seen by users, but there are notable exceptions. The
732: 244: 186: 536:"How to connect to SQL Server by using an earlier version of SQL Server" 841: 767: 492: 210: 170: 70: 57:, although the semantics differ substantially. A traditional pipe is " 539: 364: 328: 256: 42: 20: 831: 252: 803: 772: 368: 433:"mknod, mknodat - make directory, special file, or regular file" 337:
Peekable reads (read without removing from pipe's input buffer)
248: 836: 826: 777: 747: 458: 129: 788: 783: 654: 627: 89: 50: 38: 222: 276:
Windows NT named pipes can inherit a security context.
33:
for its behavior) is an extension to the traditional
355:Named pipes are also a networking protocol in the 314:Blocking or Nonblocking read and write (choosable) 124:/tmp/namedPipe gzip-d<out.gz>/tmp/namedPipe 109:The named pipe can be deleted just like any file: 854: 617: 348:Named pipes can also be used as an endpoint in 185:A named pipe can be accessed much like a file. 177:, also supports loading data from named pipes. 568:Linux Interprocess Communications: Named Pipes 367:protocol suite of services are implemented as 88:For example, one can create a pipe and set up 603: 482: 411:"mkfifo, mkfifoat - make a FIFO special file" 279:Summary of named pipes on Microsoft Windows: 359:(SMB) suite, based on the use of a special 247:to the host system as named pipes, and the 96:mkfifomy_pipe gzip-9-c<my_pipe>out.gz 610: 596: 243:tool, for instance, can expose emulated 443: 167:and less free space on the hard drive. 128:Then load the uncompressed data into a 855: 45:systems, and is one of the methods of 591: 16:Method of inter-process communication 49:(IPC). The concept is also found in 13: 345:3.5 has added named pipe support. 14: 874: 561: 310:Connection-oriented communication 283:Intermachine and intramachine IPC 225:" would have a full path name of 73:. It is explicitly created using 92:to compress things piped to it: 546:from the original on 2020-07-20 499:from the original on 2022-05-20 465:from the original on 2020-06-14 528: 510: 476: 425: 403: 1: 396: 317:Standard device I/O handles ( 180: 483:Aidan Van Dyk (2008-03-27). 451:"13.2.7 LOAD DATA Statement" 7: 863:Inter-process communication 619:Inter-process communication 578:Introduction to Named Pipes 572:Linux Documentation Project 522:Microsoft Developer Network 518:"System.IO.Pipes Namespace" 374: 361:inter-process communication 47:inter-process communication 10: 879: 485:"Re: psql and named pipes" 455:MySQL 8.0 Reference Manual 64: 812: 718: 665:Message queue and mailbox 642: 625: 173:'s command line utility, 221:(that is, a pipe named " 146:'/tmp/namedPipe' 134: 118: 94: 331:used to create handles 207:command line interface 106:cat file > my_pipe 437:IEEE Std 1003.1-2017 415:IEEE Std 1003.1-2017 386:Anonymous named pipe 357:Server Message Block 350:Microsoft SQL Server 81:, and two separate 814:Software libraries 655:Memory-mapped file 234:VMware Workstation 850: 849: 780:(various methods) 636:computer programs 439:. The Open Group. 55:Microsoft Windows 27:(also known as a 870: 612: 605: 598: 589: 588: 555: 554: 552: 551: 532: 526: 525: 514: 508: 507: 505: 504: 480: 474: 473: 471: 470: 447: 441: 440: 429: 423: 422: 407: 324: 320: 272: 228: 220: 204: 200: 196: 192: 176: 159: 156: 153: 150: 147: 144: 141: 138: 123: 99: 80: 76: 878: 877: 873: 872: 871: 869: 868: 867: 853: 852: 851: 846: 816: 808: 722: 714: 660:Message passing 638: 630:exchange among 621: 616: 564: 559: 558: 549: 547: 534: 533: 529: 516: 515: 511: 502: 500: 481: 477: 468: 466: 449: 448: 444: 431: 430: 426: 409: 408: 404: 399: 391:Unix file types 377: 322: 318: 300:packet-oriented 267: 226: 218: 202: 198: 194: 190: 183: 174: 161: 160: 157: 154: 151: 148: 145: 142: 139: 136: 132:table like so: 126: 125: 121: 113: 107: 101: 100: 97: 78: 74: 67: 17: 12: 11: 5: 876: 866: 865: 848: 847: 845: 844: 839: 834: 829: 823: 821: 810: 809: 807: 806: 801: 796: 791: 786: 781: 775: 770: 765: 760: 755: 750: 745: 740: 735: 729: 727: 716: 715: 713: 712: 711: 710: 705: 697: 692: 687: 682: 677: 675:Anonymous pipe 672: 667: 662: 657: 652: 646: 644: 640: 639: 626: 623: 622: 615: 614: 607: 600: 592: 586: 585: 575: 563: 562:External links 560: 557: 556: 542:. 2019-11-19. 527: 509: 475: 442: 424: 419:The Open Group 401: 400: 398: 395: 394: 393: 388: 383: 381:Anonymous pipe 376: 373: 343:.NET Framework 339: 338: 335: 332: 326: 315: 312: 307: 302: 293: 284: 241:virtualization 189:SDK functions 182: 179: 135: 119: 111: 105: 95: 66: 63: 15: 9: 6: 4: 3: 2: 875: 864: 861: 860: 858: 843: 840: 838: 835: 833: 830: 828: 825: 824: 822: 820: 815: 811: 805: 802: 800: 797: 795: 792: 790: 787: 785: 782: 779: 776: 774: 771: 769: 766: 764: 761: 759: 756: 754: 751: 749: 746: 744: 741: 739: 736: 734: 731: 730: 728: 726: 721: 717: 709: 706: 704: 701: 700: 698: 696: 693: 691: 690:Shared memory 688: 686: 683: 681: 678: 676: 673: 671: 668: 666: 663: 661: 658: 656: 653: 651: 648: 647: 645: 641: 637: 633: 629: 624: 620: 613: 608: 606: 601: 599: 594: 593: 590: 583: 582:Linux Journal 579: 576: 573: 569: 566: 565: 545: 541: 537: 531: 523: 519: 513: 498: 494: 490: 489:pgsql-hackers 486: 479: 464: 460: 456: 452: 446: 438: 434: 428: 420: 416: 412: 406: 402: 392: 389: 387: 384: 382: 379: 378: 372: 370: 366: 362: 358: 353: 351: 346: 344: 336: 333: 330: 327: 316: 313: 311: 308: 306: 303: 301: 297: 296:Byte-oriented 294: 292: 288: 285: 282: 281: 280: 277: 274: 271: 265: 262: 258: 254: 250: 246: 242: 238: 235: 230: 224: 217:special path 214: 212: 209:, except for 208: 188: 178: 172: 168: 166: 133: 131: 117: 110: 104: 93: 91: 86: 84: 72: 62: 60: 56: 52: 48: 44: 40: 36: 32: 31: 26: 22: 733:Apple events 669: 548:. Retrieved 530: 512: 501:. Retrieved 488: 478: 467:. Retrieved 454: 445: 436: 427: 414: 405: 354: 347: 340: 278: 275: 269: 251:kernel mode 245:serial ports 231: 227:\\.\pipe\foo 215: 184: 169: 162: 127: 114: 108: 102: 87: 68: 28: 24: 18: 291:full-duplex 287:Half-duplex 203:CloseHandle 112:rm my_pipe 37:concept on 819:frameworks 768:OpenBinder 670:Named pipe 550:2020-05-19 503:2020-05-19 493:PostgreSQL 469:2020-05-19 397:References 264:developers 211:PowerShell 191:CreateFile 181:In Windows 171:PostgreSQL 71:filesystem 25:named pipe 725:standards 720:Protocols 685:Semaphore 540:Microsoft 365:NT Domain 329:Namespace 323:WriteFile 268:\\.\pipe\ 257:Microsoft 239:hardware 219:\\.\pipe\ 199:WriteFile 155:tableName 83:processes 43:Unix-like 21:computing 857:Category 832:libevent 699:Sockets 544:Archived 497:Archived 463:Archived 375:See also 319:ReadFile 305:Reliable 253:debugger 195:ReadFile 120:mkfifo-m 75:mkfifo() 804:XML-RPC 773:Sun RPC 703:Network 643:Methods 632:threads 584:, 1997) 574:, 1996) 369:DCE/RPC 79:mknod() 65:In Unix 59:unnamed 794:Thrift 695:Signal 273:form. 261:driver 249:WinDbg 143:INFILE 837:SIMPL 827:D-Bus 778:POSIX 748:D-Bus 743:CORBA 459:MySQL 255:from 187:Win32 152:TABLE 130:MySQL 98:& 842:LINX 817:and 799:TIPC 789:REST 784:SOAP 738:COM+ 723:and 708:Unix 680:Pipe 650:File 628:Data 341:The 270:name 201:and 175:psql 149:INTO 140:DATA 137:LOAD 122:0666 90:gzip 53:and 51:OS/2 41:and 39:Unix 35:pipe 30:FIFO 23:, a 763:ICE 758:DCE 753:DDS 634:in 298:or 289:or 223:foo 165:I/O 77:or 19:In 859:: 538:. 520:. 495:. 491:. 487:. 461:. 457:. 453:. 435:. 417:. 413:. 352:. 321:, 237:PC 213:. 197:, 193:, 611:e 604:t 597:v 580:( 570:( 553:. 524:. 506:. 472:. 421:. 325:) 158:;

Index

computing
FIFO
pipe
Unix
Unix-like
inter-process communication
OS/2
Microsoft Windows
unnamed
filesystem
processes
gzip
MySQL
I/O
PostgreSQL
Win32
command line interface
PowerShell
foo
VMware Workstation
PC
virtualization
serial ports
WinDbg
debugger
Microsoft
driver
developers
Half-duplex
full-duplex

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.