programing

"cer"와 "stderr"이 무엇입니까?

elecom 2023. 10. 15. 16:58
반응형

"cer"와 "stderr"이 무엇입니까?

그것들의 차이점은 무엇이며 어떻게 사용됩니까?누가 예를 들어줄 수 있습니까?

구체적으로, 두 경우 모두 스트림에 어떻게 "쓰기"하고, 스트림에 작성된 텍스트를 어떻게 복구하고 출력(즉, 화면에)합니까?

또한 "화면" 출력 자체가 스트림이죠?아마 제가 스트림을 잘 이해하지 못하는 것 같습니다.물론 이것도 파일에 저장할 수 있습니다.이 모든 것들이fprintf/fscanf, 그 외?

cerr는 C++ 스트림이고stderr는 표준 오류 출력을 나타내는 C 파일 핸들입니다.

다른 스트림 및 파일 핸들에 쓰는 방식과 동일한 방식으로 사용자에게 쓰는 것입니다.

cerr << "Urk!\n";
fprintf (stderr, "Urk!\n");

이런 맥락에서 "복구"를 의미하는 것이 무엇인지 모르겠습니다. 출력이 표준 오류로 바뀌고 그게 다입니다.그 프로그램은 그 이후엔 신경 쓸 일이 아닙니다.나중을 위해 프로그램 외부에서 저장하는 방법은 다음 단락을 참조하십시오.

기본적으로 단말기로 전송되지만 출력은 다음과 같은 방법으로 다른 곳으로 리디렉션될 수 있습니다.

run_my_prog 2>error.out

예, "화면" 출력은 스트림(또는 파일 핸들)이지만 일반적으로 다음과 같습니다.stdout/cout그리고.stderr/cerr는 기본적으로 "화면"에 연결되어 있습니다.리디렉션은 화면에 아무것도 기록되지 않을 경우 다음과 같이 영향을 미칩니다.

run_my_prog >/dev/null 2>&1

(직접 편지를 쓰는 것과 같은 것들을 tricky합니다./dev/tty여하튼)이 토막글은 표준 출력과 표준 오류를 모두 비트 버킷으로 이동하도록 리디렉션합니다.

그것들의 차이점은 무엇입니까?

stderrFILE*, 표준 C 라이브러리의 일부입니다.cerrostream, 표준 C++ 라이브러리의 일부입니다.

또한 "화면" 출력 자체가 스트림이죠?

네.그러나 실제로 화면에 쓰는 스트림은 기본적으로 두 입니다.stdout/cout정상 출력을 위한 것입니다.stderr/cerr는 오류 메시지를 위한 것입니다.이 기능은 리디렉션에 유용합니다.리디렉션 가능stdout파일로 보내도 화면에 오류 메시지가 표시됩니다.

언급URL : https://stackoverflow.com/questions/3200117/what-are-cerr-and-stderr

반응형