표준 에러 : 쉘이 아무것도 stdin
를 리디렉션 할 수 있기 때문에,캐치 오류, 내가 표준 입력에서 읽기 비트 C99 코드를 작성했다
// [...]
fgets(buf, sizeof(buf), stdin);
// [...]
을하지만이 경우 오류를 포착해야하는지 궁금하고 일반 stdin
보다 덜 강력합니다. 그러나 이는 또한 stdin
, stdout
및 stderr
에 대한 모든 액세스에 오류가 있는지 확인해야하며 printf
및 co 다음에 어떤 검사도 거의 볼 수 없다는 것을 의미합니다.
그래서 모든 스트림 액세스에 오류가 있는지 확인하는 것이 좋습니다? 사전에
// [...]
if (!fgets(buf, sizeof(buf), stdin) && ferror(stdin)) {
exit(EXIT_FAILURE);
}
// [...]
감사 :
위의 예는 무엇인가 등이 될 것입니다!
감사합니다. 전에 syslog에 대해 들어 본 적이 없습니다. 잘 알고 있습니다. 그러나 EOF에 대해 : 때로는 미리 초기화 된 버퍼가 있고 변경되지 않았는지 신경 쓰지 않아도 괜찮습니다. 반환 값은 항상주의해야합니다. – user1678062