When a C language program is started, the operating system environment is responsible for opening three files and providing pointers to these three files to the program. The three files are standard input (stdin), standard output (stdout), and
The code in the Resetstd method in work.php in Workerman is as follows Public Static functionresetstd () {if(!Static::$daemonize||Static::$_os!== ' Linux ') { return; } Global $STDOUT,$STDERR; $handle=fopen(Static::$stdoutFile, "a")
Source code is toolio. cpp in the flying project (http://code.google.com/p/flying-on-android/)
This program mainly demonstrates how to redirect stdout and stderr of a program.
Processes started by the system in Android, stdout and stderr are
Perl contains some predefined file handles. For example, standard input stdin and standard outputStdout, And standard errorsStderr. The standard error stderr is an additional output path. How can we understand this sentence? Let's look at an example.
First you know the difference between FILE *stdout and Stdout_fileno.
stdin type is file*Stdin_fileno type is intThe functions that use stdin are mainly: Fread, fwrite, fclose, and so on, basically beginning with FFunctions that use Stdin_fileno are:
# Include "stdio. H"# Include "unistd. H"
Int main (){While (1){Fprintf (stderr, "Hello-STD-Err ");Fprintf (stdout, "Hello-STD-out ");Sleep (1 );}Return 0;
}
Stderr is not a buffer.Stdout is the row buffer.So when you have strict
Typically, stderr and stdout are used to display output content to the screen, but sometimes we need to write this information to the specified file for easy access at any time. The simplest way to achieve this is to put the output of the
Now we can analyze the source code of Linux kernel.Ii. inheritance between fork () and stderr and stdio. stdout in execve ()In fact, it seems that the word "inherit" is not accurate. To be more accurate, replication may be more appropriate.First,
stdin, stdout, stderr1 stdin keyboard2 stdout Display3 stderr Error1 #define_crt_secure_no_warnings2 3#include 4#include 5 6 Main ()7 {8 //stderr always on the monitor, if redirected, StdOut will be written to disk9 //Error messages can be
Name
Stdin, stdout, stderr-standard I/O Stream Synopsis Overview
# Include Extern file * stdin;Extern file * stdout;Extern file * stderr; Description
Generally, every Unix Program Three streams are opened at startup, one for input, one for
File descriptor abbreviation Description0 STDIN Standard Input1 STDOUT Standard output2 STDERR standard Error1. STDINcan come from the keyboard and can be entered from a redirected file.1 Cat 2 a #从键盘输入 3a #输出 4b #从键盘输入 5b #输出 6
Let's take a look at the following example.
A.C:
Int main (INT argc, char * argv []) {fprintf (stdout, "normal \ n"); fprintf (stderr, "Bad \ n"); Return 0 ;}
$./NormalBad
$./A> TMP 2> & 1$ Cat TMPBadTMP
We can see that, after
See more: http://my.oschina.net/qihh/blog/55308STDIN is standard input file, stdout is standard output file, stderr standard error file.The programs use these files as follows:
The standard input is where the program can read its input. By
Let's take a look at the following example.
A.C:
Copy codeThe Code is as follows: int main (int argc, char * argv [])
{
Fprintf (stdout, "normal \ n ");
Fprintf (stderr, "bad \ n ");
Return 0;
}
$./NormalBad$./A> tmp 2> & 1$ Cat tmpBadTmpWe can see
Stdout and stderr are both built-in files in Unix/Linux systems. Together with stdin, they are automatically generated after each process is started. The numbers are 0, 1, and 2.
It should be noted that for stdout, This is a file stream with a
let's look at one of the following examples
A.C:
Copy Code code as follows:
int main (int argc, char *argv[])
{
fprintf (stdout, "normal\n");
fprintf (stderr, "bad\n");
return 0;
}
$/A
Normal
Bad
$/a > TMP 2>&1
$ cat
Some people think that the background daemon to do this kind of redirection operations waste resources, we recommend that the 0, 1, 2nd sentence directly closedHandle down, which is very incorrect. If they are actually closed, some ordinary data
PHP CLI (Command line interface), there are three system constants, respectively, stdin, STDOUT, STDERR, representing the file handle.Application One:Application Two:Returns the stdin file pointer (file handle) directly under the DOS command
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.