07-06-2012
You aren't closing all the pipe ends you don't need. Each process gets an independent copy of the pipe ends. Any ends they don't need must be closed or they will gum up the works later -- your pipe won't ever close when the program using it closes if there are 3 extra writing ends hanging around which haven't.
Also, you need two pipes, because you can't add a pipe to a process later -- your grep has to have a pipe for input and a pipe for output right when you run it. And then you have to save the reading end of its writing pipe for the sort...
10 More Discussions You Might Find Interesting
1. Filesystems, Disks and Memory
Hello!
How I can increase or decrease predefined pipe buffer size?
System FreeBSD 4.9 and RedHat Linux 9.0
Thanks! (1 Reply)
Discussion started by: Jus
1 Replies
2. UNIX for Advanced & Expert Users
I'm very worried. I have an assignment that is due in 3 weeks, and also tute exercises which I can't seem to understand and work out.
Okay, the question:
The parent process will convert the command arguments into integer values using atoi() and store them into an integer array which you will... (2 Replies)
Discussion started by: scmay
2 Replies
3. UNIX for Dummies Questions & Answers
I need a help...
I have a HP Netserver LH 6000 U with Hardware Raid .
Sco 5.0.5 installed with Oracle database.
Total number of users, normally logged in are around 60 nos.
The system is very slow ( takes 6 hours for processing one Lakh bills) during the Billing process. Also it is... (1 Reply)
Discussion started by: saleeshpl
1 Replies
4. UNIX for Dummies Questions & Answers
Hello to UNIX Champs,
Can any body help me out to write the script using fork() thru shell scripting.....i am a layman to fork(), so please give me the link or any scripts which will help me out to know the details about fork. (1 Reply)
Discussion started by: manas_ranjan
1 Replies
5. Programming
I want to halt a tail recursive function after certain validation. I want to come out of entire recursion without unwinding phase. How can i achieve that . The coding is done in C language. (5 Replies)
Discussion started by: joshighanshyam
5 Replies
6. Shell Programming and Scripting
Hi,
I would like to process, filter the same ASCII asynchronous live data stream in more than one pipe pipeline.
So the one pipeline should filter out some records using grep key word
and more than one pipes pipelines
each should grep for another key words, each set seperately for each... (5 Replies)
Discussion started by: jack2
5 Replies
7. UNIX for Dummies Questions & Answers
Hey all, I need a command line that creates a new file named whatever, say stuff.txt in the current working directory which contains the number of directories in the current working directory, followed by the number of empty files in the current working directory, followed by the name of the... (2 Replies)
Discussion started by: corpsegrinder
2 Replies
8. SCO
Dear experts,
I have done a re-installation of sco unix openserver 5.0.5 and managed to create users. The problem am facing is that of one user logging in more than 5 times. How can i overcome this problem. the system give the error below.
-sh: fork failed - too many processes in sco unix... (5 Replies)
Discussion started by: njoroge
5 Replies
9. Programming
Hello, I'm stuck and this is a matter which I need to resolve quite fast (but I couldn't post in the "Emergency" section); the problem is this :
I have created a chat program in which the client sends the sentence to the server and then the server should send it to all the clients connected,... (2 Replies)
Discussion started by: timmyyyyy
2 Replies
10. Shell Programming and Scripting
I want to execute metasploit by two pipes to communicate with it, but I have troubles with that communication. When I run my program, I get this error: "stty: standard input: Inappropriate ioctl for device" and I don't receive the metasploit promt.
just select an exploit.
This is my code:... (2 Replies)
Discussion started by: dano88
2 Replies
LEARN ABOUT MOJAVE
login_tty
OPENPTY(3) BSD Library Functions Manual OPENPTY(3)
NAME
openpty, login_tty, forkpty -- tty utility functions
SYNOPSIS
#include <util.h>
int
openpty(int *amaster, int *aslave, char *name, struct termios *termp, struct winsize *winp);
int
login_tty(int fd);
pid_t
forkpty(int *amaster, char *name, struct termios *termp, struct winsize *winp);
DESCRIPTION
The openpty(), login_tty(), and forkpty() functions perform manipulations on ttys and pseudo-ttys.
The openpty() function allocates a pseudo-tty and returns file descriptors for the master and slave in amaster and aslave. If name is non-
null, the filename of the slave is returned in name. If termp is non-null, the terminal parameters of the slave will be set to the values in
termp. If winp is non-null, the window size of the slave will be set to the values in winp.
The login_tty() function prepares for a login on the tty fd (which may be a real tty device, or the slave of a pseudo-tty as returned by
openpty()) by creating a new session, making fd the controlling terminal for the current process, setting fd to be the standard input, out-
put, and error streams of the current process, and closing fd.
The forkpty() function combines openpty(), fork(), and login_tty() to creates a new process operating in a pseudo-tty. The file descriptor
of the master side of the pseudo-tty is returned in amaster, and the filename of the slave in name if it is non-null. The termp and winp
parameters, if non-null, will determine the terminal attributes and window size of the slave side of the pseudo-tty.
RETURN VALUES
If a call to openpty(), login_tty(), or forkpty() is not successful, -1 is returned and errno is set to indicate the error. Otherwise,
openpty(), login_tty(), and the child process of forkpty() return 0, and the parent process of forkpty() returns the process ID of the child
process.
ERRORS
openpty() will fail if:
[EAGAIN] There are no available pseudo-ttys.
login_tty() will fail if ioctl() fails to set fd to the controlling terminal of the current process. forkpty() will fail if either openpty()
or fork() fails.
FILES
/dev/ptmx cloning pseudo-tty device
/dev/ttys[0-9][0-9][0-9] slave pseudo-tty devices
SEE ALSO
fork(2)
BSD
April 5, 2008 BSD