Difference between revisions of "fcl-process"
From Lazarus wiki
Jump to navigationJump to searchJwdietrich (talk | contribs) |
|||
(3 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | == Overview == | ||
+ | '''fcl-process''' is a package that contains multiple units for executing and interfacing (by pipes) with other programs. The most prominent member is the '''Process.TProcess''' class that is used by Lazarus and described and documented elsewhere, like [[Executing_External_Programs#TProcess|TProcess]] and has its own documentation in the FPC Free Component Library (FCL) manual. | ||
− | ''' | + | The '''pipes''' unit implements basic pipe stream classes for use by the other units. |
− | |||
− | + | The dbug* units implement a simple remote logging/inspection interface. See also [[DebugServer]]. | |
− | = | + | == Units == |
{| class="wikitable" | {| class="wikitable" | ||
Line 15: | Line 16: | ||
|[[pipes]] || - || Input and output pipe stream class used by process. | |[[pipes]] || - || Input and output pipe stream class used by process. | ||
|---- | |---- | ||
− | |[[simpleipc]] || - || Unit implementing one-way IPC between 2 processes | + | |[[simpleipc]] || - || Unit implementing one-way IPC between 2 processes. On Windows it apparently uses Windows messaging; see forum post [http://forum.lazarus.freepascal.org/index.php/topic,15974.msg104374.html#msg104374] that includes a C# example that connects with a FreePascal SimpleIPC server |
|---- | |---- | ||
|[[dbugintf]] || - || Debugserver client interface, based on SimpleIPC | |[[dbugintf]] || - || Debugserver client interface, based on SimpleIPC | ||
Line 23: | Line 24: | ||
|} | |} | ||
− | = Notes = | + | == Notes == |
− | * | + | * To fool programs that check for a pty on Unix/Linux, forkpty might have to be used instead of fork. See [http://forum.lazarus.freepascal.org/index.php?topic=22912.0;topicseen]. Openpty and forkpty (which uses openpty) are not POSIX calls though. On FreeBSD, these functions are not in libc but in libutil, and seem to be a shell over POSIX openpt and ptsname functions with some IOCTLs thrown in. |
− | [[Category: | + | |
+ | [[Category:FCL]] | ||
[[Category:Inter-process communication]] | [[Category:Inter-process communication]] |
Latest revision as of 19:20, 27 September 2015
Overview
fcl-process is a package that contains multiple units for executing and interfacing (by pipes) with other programs. The most prominent member is the Process.TProcess class that is used by Lazarus and described and documented elsewhere, like TProcess and has its own documentation in the FPC Free Component Library (FCL) manual.
The pipes unit implements basic pipe stream classes for use by the other units.
The dbug* units implement a simple remote logging/inspection interface. See also DebugServer.
Units
Unit | - | Comment |
---|---|---|
process | - | Contains TProcess class for executing external programs (and some related utility functions) |
pipes | - | Input and output pipe stream class used by process. |
simpleipc | - | Unit implementing one-way IPC between 2 processes. On Windows it apparently uses Windows messaging; see forum post [1] that includes a C# example that connects with a FreePascal SimpleIPC server |
dbugintf | - | Debugserver client interface, based on SimpleIPC |
dbugmsg | - | Debugserver Client/Server common code. |
Notes
- To fool programs that check for a pty on Unix/Linux, forkpty might have to be used instead of fork. See [2]. Openpty and forkpty (which uses openpty) are not POSIX calls though. On FreeBSD, these functions are not in libc but in libutil, and seem to be a shell over POSIX openpt and ptsname functions with some IOCTLs thrown in.