What does the system call "dup" do?
What is the difference between dup and dup2
I have a fair idea of what it does but I am confused when its coming down to the exact details...
Please help me!:confused: (2 Replies)
open, creat, read, write, lseek and close
Are they all primitive?
:confused:
*Another Question: is there a different between a system call, and an i/o system call? (2 Replies)
Hi,
I'm new to UNIX system calls. Can someone share your knowledge as to how exactly system calls should be executed?
Can they be typed like commands such as mkdir on the terminal itself? Also, are there any websites which will show me an example of the output to expect when a system call like... (1 Reply)
Hello,
how would i be able to call ps in C programming?
thanks,
---------- Post updated at 01:39 AM ---------- Previous update was at 01:31 AM ----------
here's the complete system call, ps -o pid -p %d, getpit() (2 Replies)
I'm currently studying for my exam, and is practicing with sample exam questions.
However there is a question asking "Name THREE UNIX Directory system calls" and the answer given is "opendir, closedir and readdir", however the next question ask "Why is a write directory system call not included... (1 Reply)
Hello...
I'm trying to setup a cronjob to record system data using glance at certain times of the day. My question is, how would one export the "Global System Calls" information to a file? Below is the command I have been using and it works to export CPU information.
glance -f ... (0 Replies)
Hi i am very new to programming in UNIX and don't understand the difference between a system call and a normal function call. Also can I implement system calls from within a program? If so could someone please give me an example of a system call from within a program. Lastly, when creating a... (1 Reply)
Discussion started by: bjhum33
1 Replies
LEARN ABOUT SUNOS
p2close
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
p2open() 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 com-
mand'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.
p2close() 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. p2close() 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.10 29 Dec 1996 p2open(3GEN)