2009-09-19 6 views
0

임 구현 NFS 및 almoste은 수행하지만 RFC section 3.3.8는 설명이 말한다 :NFS 만들기 파일 (덮어 쓰기) = 크기가 0입니까?

모드 보호 UNCHECKED 중 하나, 그리고 EXCLUSIVE. UNCHECKED 은 디렉토리에 중복 파일이 있는지 확인하지 않고 파일을 생성해야 함을 의미합니다. 이 경우 how.obj_attributes는 파일의 초기 속성을 설명하는 sattr3 입니다. GUARDED 은 서버가 작성을 수행하기 전에 중복 파일의 존재 여부를 확인해야하며 중복 파일이있는 경우 은 NFS3ERR_EXIST로 요청을 실패해야합니다. 파일이 존재하지 않으면 요청은 UNCHECKED에 설명 된대로 수행됩니다. EXCLUSIVE는 전용 작성 시맨틱을 따르고, 확인 프로그램을 사용하여 대상을 독점적으로 작성하도록 지정합니다. 서버가 속성을 제공하지 않을 수도 있습니다. 서버가 대상 파일 메타 데이터를 사용하여 createverf3 검증자를 저장할 수 있기 때문입니다.

그래서 UNCHECKED가 모드 인 경우 파일의 길이를 0으로 설정해야합니까, 아니면 파일을 그대로 둘 수 있습니까? 디렉토리에서 모든 내용을 제거해야합니까?

답변

3

CREATEUNCHECKED의 아이디어는 좋은 오래된 유닉스 시스템 호출 creat의 의미를 적용하는 것이라고 생각합니다. 따라서 파일의 기존 내용 (존재하는 경우)의 잘라내기를 암시합니다. 그러나 나는이 모든 것을 문서 (!)에 분명하게 명시 할 수는 없다. CREATE 기존 디렉토리에 노력

은 어떤 경우에도 오류가 - NFS 3 (즉에 대한 별도의 MKDIR있어, 동일 MKNOD으로, 특수 파일에 적용 - 일반, 일반에 대한 지금 CREATE, 일반 좋은 오래된 파일 전용 -)