std::cerr, std::wcerr
Da cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Definido no cabeçalho <iostream>
|
||
extern std::ostream cerr; |
(1) | |
extern std::wostream wcerr; |
(2) | |
Os objectos globais std::cerr e std::wcerr saída de controle de fluxo de um tampão de aplicação (tipo definido derivado de std::streambuf e std::wstreambuf, respectivamente), associado com o padrão de fluxo de saída de erro C stderr.
Original:
The global objects std::cerr and std::wcerr control output to a stream buffer of implementation-defined type (derived from std::streambuf and std::wstreambuf, respectively), associated with the standard C error output stream stderr.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Esses objetos são garantidos para ser construído antes de o primeiro construtor de um objeto estático é chamado e eles são garantidos para sobreviver à última destruidor de um objeto estático, de modo que é sempre possível escrever para std::cerr no código do usuário.
Original:
These objects are guaranteed to be constructed before the first constructor of a static object is called and they are guaranteed to outlive the last destructor of a static object, so that it is always possible to write to std::cerr in user code.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
A menos que sync_with_stdio(false) foi emitido, ele é seguro para acessar simultaneamente esses objetos de vários segmentos, tanto para saída formatada e não formatado.
Original:
Unless sync_with_stdio(false) has been issued, it is safe to concurrently access these objects from multiple threads for both formatted and unformatted output.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Uma vez inicializado, std::cerr.flags() & unitbuf != 0 significado (o mesmo para
wcerr
) que qualquer saída enviada para esses objetos de fluxo é imediatamente liberado para o OS (via destruidor de std::basic_ostream::sentry).Original:
Once initialized, std::cerr.flags() & unitbuf != 0 (same for
wcerr
) meaning that any output sent to these stream objects is immediately flushed to the OS (via std::basic_ostream::sentry's destructor).The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Além disso, std::cerr.tie() retornos &std::cout (mesmo para
wcerr
e wcout
), o que significa que qualquer operação de saída em std::cerr primeiro executa std::cout.flush() (via construtor de std::basic_ostream::sentry) (desde C++11)Original:
In addition, std::cerr.tie() returns &std::cout (same for
wcerr
and wcout
), meaning that any output operation on std::cerr first executes std::cout.flush() (via std::basic_ostream::sentry's constructor) (desde C++11)The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[editar] Exemplo
saída para stderr via ondas de cerr fora a saída dependendo cout, enquanto a produção de stderr via obstrução não
Original:
output to stderr via cerr flushes out the pending output on cout, while output to stderr via clog does not
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
#include <thread> #include <iostream> #include <chrono> void f() { std::cout << "Output from thread..."; std::this_thread::sleep_for(std::chrono::seconds(2)); std::cout << "...thread calls flush()" << std::endl; } int main() { std::thread t1(f); std::this_thread::sleep_for(std::chrono::seconds(1)); std::clog << "This output from main is not tie()'d to cout\n"; std::cerr << "This output is tie()'d to cout\n"; t1.join(); }
Saída:
This output from main is not tie()'d to cout Output from thread...This output is tie()'d to cout ...thread calls flush()
[editar] Veja também
inicializa objetos de fluxo padrão Original: initializes standard stream objects The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (of std::ios_base public class membro)
| |
escreve para o padrão stderr
(objeto global) fluxo de erro C Original: writes to the standard C error stream stderr (objeto global) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
grava o padrão de fluxo de saída stdout
(objeto global) C Original: writes to the standard C output stream stdout (objeto global) The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |