programing

오픈에서의 r과 rb의 차이점은 무엇입니까?

prostudy 2022. 8. 30. 21:31
반응형

오픈에서의 r과 rb의 차이점은 무엇입니까?

C에서 fopen을 사용해 봤는데, 두 번째 파라미터는 open 모드입니다."r"과 "rb"라는 두 가지 모드가 저를 많이 혼란스럽게 하는 경향이 있습니다.그들은 같은 것 같다.그러나 때로는 "rb"를 사용하는 것이 더 나을 수 있습니다.그럼 왜 'r'이 존재할까요?자세히 설명하거나 예를 들어 설명해 주세요.감사합니다.

하면 됩니다."r"텍스트 파일을 엽니다.운영체제에 따라 텍스트 저장방법이 약간 다르므로 올바른 번역이 실행되므로 로컬 운영체제의 고유성을 알 필요가 없습니다.를 들어,한 줄바꿈, 줄바꿈, 줄바꿈, 줄바꿈, 줄바꿈으로 ."\n"(「」의 「」의 「」입니다.

하면 됩니다."rb"이 경우 번역이 적절하지 않기 때문에 텍스트 이외의 파일을 여는 경우.

및 으로 Linux "Unix" 입니다."r" ★★★★★★★★★★★★★★★★★」"rb"똑같아요.구체적으로는FILE pointer에 의해 fopen()텍스트 모드와 바이너리모드로 파일을 입력한다.Unix 에서도 같은 동작을 합니다.Windows 및 일반적으로 "새로운 줄"을 나타내기 위해 여러 문자를 사용하는 시스템에서 텍스트 모드로 열린 파일은 이러한 모든 문자가 하나의 문자인 것처럼 동작합니다.'\n'.

읽고 는, 「」를 합니다."r" , , , , 입니다."w"fopen()이렇게 하면 파일을 올바르게 쓰고 읽을 수 있습니다. 파일을는, 「」를 합니다."rb" ★★★★★★★★★★★★★★★★★」"wb"새로운 줄 바꿈으로 인해 데이터가 엉망이 되지 않도록 합니다.

기본 시스템이 새 행 변환을 수행하게 되면 fseek(file, 0, SEEK_END)를 사용하여 파일에서 읽을 수 있는 바이트 수를 결정할 수 없습니다.

마지막으로 comp.lang.c FAQ에서 텍스트와 바이너리 I/O의 차이점을 참조하십시오.

바이너리 파일을 열려면 , 「binary」를 사용합니다.파일을 읽을 때 파일의 바이트가 인코딩되지 않습니다.

  • "r"는 변환 모드의 "rt"와 동일합니다.
  • "timeout"은 비압축 모드입니다.

적어도 Windows 에서는 이 점이 다릅니다.자세한 내용은 이 링크를 참조하십시오.

대부분의 POSIX 시스템에서는 무시됩니다.다만, 시스템을 확인해 주세요.

XNU

모드 문자열에는 마지막 문자 또는 위에서 설명한 두 개의 문자열 중 하나의 문자 사이에 문자 'b'를 포함할 수도 있습니다.이는 ISO/IEC 9899:1990('ISO C90')과의 호환성을 위한 것으로, 아무런 효과도 없습니다. 'b'는 무시됩니다.

리눅스

모드 문자열에는 마지막 문자 또는 위에서 설명한 두 개의 문자열 중 하나의 문자 사이의 문자로 문자 'b'를 포함할 수도 있습니다.이는 전적으로 C89와의 호환성을 위한 것으로, Linux를 포함한 모든 POSIX 준거 시스템에서는 b는 무시됩니다.(다른 시스템에서는 텍스트 파일 및 바이너리 파일을 다르게 취급할 수 있으며, 바이너리 파일에 I/O를 하고 프로그램이 UNIX 이외의 환경으로 이식될 것으로 예상되는 경우 b를 추가하는 것이 좋습니다.)

언급URL : https://stackoverflow.com/questions/2174889/whats-the-differences-between-r-and-rb-in-fopen

반응형