od 디렉토리 시뮬레이션

od 디렉토리 시뮬레이션

od(1)이 UNIX에서는 작동했지만 GNU/Linux에서는 작동하지 않았던 이유가 궁금합니다. 좋은 답변이 있습니다서버 장애. 다음 질문은 GNU/Linux에서 디렉토리 데이터 덤프를 지원하기 위해 이상한 동작을 에뮬레이션할 수 있는 도구를 알고 있습니까?

답변1

Linux에서는 일반적인 작업을 수행할 수 없습니다 read(dir_name, buffer, sizeof(buffer). 항상 -1을 반환하고 EISDIR을 에 넣습니다 errno. 모든 파일 시스템이 디렉터리를 파일로 처리하는 것은 아니기 때문에 이는 의미가 있을 수 있습니다. 예를 들어, 일반적으로 사용되는 reiserfs는 그렇지 않습니다.

C 프로그램에서 시스템 호출을 사용하여 open()디렉토리의 파일 설명자를 얻을 수 있지만 readdir(3)(libc에서) 호출과 같은 것이 getdents(2)실제로 디렉토리 항목을 검색할 수 있습니다. 각 파일 시스템 구현에는 struct linux_dirent파일 시스템이 디렉토리 항목(파일, 데이터베이스, 디스크의 B-트리)을 저장하는 데 사용하는 모든 것에서 생성하는 코드가 있을 수 있습니다 .

관련 정보