• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • CPACK
    • Home
    • List packs
    • Submit pack
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

/usr/lib/swipl/library/ext/clib/unix.pl
All Application Manual Name SummaryHelp

  • ext
    • clib
      • socket.pl
      • uid.pl
      • unix.pl -- Unix specific operations
        • fork/1
        • fork_exec/1
        • exec/1
        • wait/2
        • kill/2
        • pipe/2
        • dup/2
        • detach_IO/1
        • detach_IO/0
        • prctl/1
        • sysconf/1
      • syslog.pl -- Unix syslog interface
      • filesex.pl -- Extended operations on files
      • uri.pl -- Process URIs
      • process.pl -- Create processes and redirect I/O
      • time.pl -- Time and alarm library
      • sha.pl -- SHA secure hashes
      • crypt.pl
      • memfile.pl
      • uuid.pl -- Universally Unique Identifier (UUID) Library
      • hash_stream.pl -- Maintain a hash on a stream
      • md5.pl -- MD5 hashes
      • udp_broadcast.pl -- A UDP broadcast proxy
      • streampool.pl -- Input multiplexing
      • cgi.pl -- Read CGI parameters
      • prolog_stream.pl -- A stream with Prolog callbacks
      • rlimit.pl
 pipe(-InSream, -OutStream) is det
Create a communication-pipe. This is normally used to make a child communicate to its parent. After pipe/2, the process is cloned and, depending on the desired direction, both processes close the end of the pipe they do not use. Then they use the remaining stream to communicate. Here is a simple example:
:- use_module(library(unix)).

fork_demo(Result) :-
        pipe(Read, Write),
        fork(Pid),
        (   Pid == child
        ->  close(Read),
            format(Write, '~q.~n',
                   [hello(world)]),
            flush_output(Write),
            halt
        ;   close(Write),
            read(Read, Result),
            close(Read)
        ).
ClioPatria (version V3.1.1-51-ga0b30a5)