MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


String Pattern-Matching Library Functions            p2open(3GEN)



NAME
     p2open, p2close - open, close pipes to and from a command

SYNOPSIS
     cc [ flag ... ] file ... -lgen [ library ... ]
     #include 

     int p2open(const char *cmd, FILE *fp[2]);


     int p2close(FILE *fp[2]);


DESCRIPTION
     The p2open()gfunction forks and execs a  shell  running  the
     command line pointed to by cmd. On return, fp[0] points to a
     FILE pointer to write the command's standard input and fp[1]
     points  to  a FILE pointer to read from the command's  stan-
     dard output.  In this way the program has control  over  the
     input and output of the command.


     The function returns 0 if successful; otherwise, it  returns
     -1.


     The p2close() function is used to close  the  file  pointers
     that p2open() opened.  It waits for the process to terminate
     and returns the process status. It returns 0 if  successful;
     otherwise, it returns -1.

RETURN VALUES
     A common problem is having too  few  file  descriptors.  The
     p2close()  function  returns -1 if the two file pointers are
     not from the same p2open().

EXAMPLES
     Example 1 Example of file descriptors.

       #include 
       #include 

       main(argc,argv)
       int argc;
       char **argv;
       {
            FILE *fp[2];
            pidt pid;
            char buf[16];

               pid=p2open("/usr/bin/cat", fp);
               if ( pid == -1 ) {



SunOS 5.11          Last change: 29 Dec 1996                    1






String Pattern-Matching Library Functions            p2open(3GEN)



                 fprintf(stderr, "p2open failed\n");
                 exit(1);
            }
            write(fileno(fp[0]),"This is a test\n", 16);
            if(read(fileno(fp[1]), buf, 16) <=0)
                 fprintf(stderr, "p2open failed\n");
            else
                 write(1, buf, 16);
            (void)p2close(fp);
       }


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     MT-Level                     Unsafe                      
    


SEE ALSO
     fclose(3C), popen(3C), setbuf(3C), attributes(5)

NOTES
     Buffered writes on fp[0] can make it appear that the command
     is  not  listening.  Judiciously  placed  fflush()  calls or
     unbuffering fp[0] can be a big help; see fclose(3C).


     Many commands use buffered output when connected to a  pipe.
     That, too, can make it appear as if things are not working.


     Usage is not the same as for popen(), although it is closely
     related.















SunOS 5.11          Last change: 29 Dec 1996                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™