Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

p2close(3gen) [opensolaris man page]

p2open(3GEN)					     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 <libgen.h> 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 standard 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 <stdio.h> #include <libgen.h> main(argc,argv) int argc; char **argv; { FILE *fp[2]; pid_t pid; char buf[16]; pid=p2open("/usr/bin/cat", fp); if ( pid == -1 ) { fprintf(stderr, "p2open failed "); exit(1); } write(fileno(fp[0]),"This is a test ", 16); if(read(fileno(fp[1]), buf, 16) <=0) fprintf(stderr, "p2open failed "); else write(1, buf, 16); (void)p2close(fp); } ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE 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 29 Dec 1996 p2open(3GEN)

Check Out this Related Man Page

copylist(3GEN)					     String Pattern-Matching Library Functions					    copylist(3GEN)

NAME
copylist - copy a file into memory SYNOPSIS
cc [ flag ... ] file ... -lgen [ library ... ] #include <libgen.h> char *copylist(const char *filenm, off_t *szptr); DESCRIPTION
The copylist() function copies a list of items from a file into freshly allocated memory, replacing new-lines with null characters. It expects two arguments: a pointer filenm to the name of the file to be copied, and a pointer szptr to a variable where the size of the file will be stored. Upon success, copylist() returns a pointer to the memory allocated. Otherwise it returns NULL if it has trouble finding the file, calling malloc(), or reading the file. USAGE
The copylist() function has a transitional interface for 64-bit file offsets. See lf64(5). EXAMPLES
Example 1 Example of copylist() function. /* read "file" into buf */ off_t size; char *buf; buf = copylist("file", &size); if (buf) { for (i=0; i<size; i++) if (buf[i]) putchar(buf[i]); else putchar(' '); } } else { fprintf(stderr, "%s: Copy failed for "file". ", argv[0]); exit(1); } ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
malloc(3C), attributes(5), lf64(5) NOTES
When compiling multithreaded applications, the _REENTRANT flag must be defined on the compile line. This flag should only be used in mul- tithreaded applications. SunOS 5.11 29 Dec 1996 copylist(3GEN)
Man Page