C语言中标准输入流、输出流和错误输出流
来源:优易学  2010-1-20 15:32:56   【优易学:中国教育考试门户网】   资料下载   IT书店

  在Linux中,所有对设备和文件的操作都使用文件描述符来进行。

  Linux中一个进程启动时,都会打开3个文件:标准输入、标准输出和标准出错处理。这三个文件分别对应文件描述符0、1、2。

  在C语言中,在程序开始运行时,系统自动打开3个标准文件:标准输入、标准输出、标准出错输出。通常这3个文件都与终端相联系。因此,以前我们所用到的从终端输入或输出都不需要打开终端文件。系统自定义了3个文件指针 stdin、stdout、stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。

  标准输入流:stdin

  标准输出流:stdout

  标准错误输出流:stderr

  stdin

  object<cstdio>FILE * stdin;

  Standard input stream

  The standard input stream is the default source of data for applications. It is usually directed to the input device of the standard console (generally, a keyboard).

  stdin can be used as an argument for any function that expects an input stream as one of its parameters, like fgets or fscanf.

  Although it is generally safe to assume that the source of data for stdin is going to be a keyboard, bear in mind that this may not be the case even in regular console systems, since stdin can be redirected at the operating system level. For example, many systems, among them DOS/Windows and most UNIX shells, support the following command syntax:

  myapplication < example.txt

  to use the content of the file example.txt as the primary source of data for myapplication instead of the console keyboard.

  It is also possible to redirect stdin to some other source of data from within a program using the freopen function.

  stdout

  object<cstdio>FILE * stdout;

  Standard output stream

  The standard output stream is the default destination of regular output for applications. It is usually directed to the output device of the standard console (generally, the screen).

  stdout can be used as an argument for any function that expects an output stream as one of its parameters, like fputs or fprintf.

  Although it is generally safe to assume that the default destination for stdout is going to be the screen, bear in mind that this may not be the case even in regular console systems, since stdout can be redirected at the operating system level. For example, many systems, among them DOS/Windows and most UNIX shells, support the following command syntax:

  myapplication > example.txt

  to redirect the output of myapplication to the file example.txt instead of the screen.

  It is also possible to redirect stdout to some other source of data from within a program using the freopen function.

  stderr

  object<cstdio>FILE * stderr;

  Standard error stream

  The standard error stream is the default destination for error messages and other diagnostic warnings. Like stdout, it is usually also directed to the output device of the standard console (generally, the screen).

  stderr can be used as an argument for any function that expects an output stream as one of its parameters, like fputs or fprintf.

  Although generally both stdout and stderr are associated with the same console output, applications may differentiate between what is sent to stdout and what to stderrfor the case that one of them is redirected. For example, it is frequent to redirect the regular output of a console program (stdout) to a file while expecting the error messages to keep appearing in the console screen.

  It is also possible to redirect stderr to some other destination from within a program using the freopen function.

  perror

  function<cstdio>void perror ( const char * str );

  Print error message

  Interprets the value of the global variable errno into a string and prints that string to stderr (standard error output stream, usually the screen), optionaly preceding it with the custom message specified in str.

  errno is an integral variable whose value describes the last error produced by a call to a library function. The error strings produced by perror depend on the developing platform and compiler.

  If the parameter str is not a null pointer, str is printed followed by a colon (:) and a space. Then, whether str was a null pointer or not, the generated error description is printed followed by a newline character ('\n').

  perror should be called right after the error was produced, otherwise it can be overwritten in calls to other functions.

  Parameters.

  str

  C string containing a custom message to be printed before the error message itself.

  If it is a null pointer, no preceding custom message is printed, but the error message is printed anyway.

  By convention, the name of the application itself is generally used as parameter.

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训