Search results
Results from the WOW.Com Content Network
In computing, redirection is a form of interprocess communication, and is a function common to most command-line interpreters, including the various Unix shells that can redirect standard streams to user-specified locations. The concept of redirection is quite old, dating back to the earliest operating systems (OS).
Unix shells use dup2 for input/output redirection. Along with pipe(), it is a tool on which Unix pipes rely. The following example uses pipe() and dup() in order to connect two separate processes (program1 and program2) using Unix pipes:
Example usage of tee: The output of ls -l is redirected to tee which copies them to the file file.txt and to the pager less. The name tee comes from this scheme - it looks like the capital letter T The tee command is normally used to split the output of a program so that it can be both displayed and saved in a file.
Process substitution can also be used to capture output that would normally go to a file, and redirect it to the input of a process. The Bash syntax for writing to a process is >(command). Here is an example using the tee, wc and gzip commands that counts the lines in a file with wc -l and compresses it with gzip in one pass:
An important aspect of this, setting Unix pipes apart from other pipe implementations, is the concept of buffering: for example a sending program may produce 5000 bytes per second, and a receiving program may only be able to accept 100 bytes per second, but no data is lost. Instead, the output of the sending program is held in the buffer.
Version 1 AT&T UNIX dd: Filesystem Mandatory Convert and copy a file Version 5 AT&T UNIX delta: SCCS Optional (XSI) Make a delta (change) to an SCCS file PWB UNIX df: Filesystem Mandatory Report free disk space Version 1 AT&T UNIX diff: Text processing Mandatory Compare two files; see also cmp Version 5 AT&T UNIX dirname: Filesystem Mandatory
The term "here document" or "here string" is also used for multiline string literals in various programming languages, notably Perl (syntax influenced by Unix shell), and languages influenced by Perl, notably PHP and Ruby. The shell-style << syntax is often retained, despite not being used for input redirection.
Fork and its variants are typically the only way of doing so in Unix-like systems. For a process to start the execution of a different program, it first forks to create a copy of itself. Then, the copy, called the " child process ", calls the exec system call to overlay itself with the other program: it ceases execution of its former program in ...