Linux가 지원하는 파일 시스템의 모든 기능에 액세스하기위한 시스템 호출이 있습니까? NTFS, FAT32 등)을 지원합니다. 다음 다이어그램은 Linux에서 프로세스가

Linux는 많은 파일 시스템 (예 : ext3, NTFS, FAT32 등)을 지원합니다.

다음 다이어그램은 Linux에서 프로세스가 파일에 액세스하는 방법을 보여줍니다.

여기에 이미지 설명을 입력하십시오

따라서 read()파일을 읽기 위해 시스템 호출 이라고하는 프로세스 가 VFS 계층에 액세스하고 VFS 계층이 파일이있는 파티션의 파일 시스템을 기반으로 액세스 할 파일 시스템 드라이버를 결정한다고 가정합니다. 읽을 수 있습니다.

리눅스 (예 : 파일 액세스 많은 시스템 호출을 제공 read(), write(), rename(), 등).

지금 read()write()rename()리눅스에서 지원하는 모든 파일 시스템에서 작동합니다.

그러나 일부 파일 시스템에만 존재하지만 다른 파일 시스템에는 존재하지 않는 특정 기능이 있습니다. 예를 들어 NTFS 파일 시스템에서는 파일의 보관 비트를 설정할 수 있지만 ext3 파일 시스템에서는 수행 할 수 없습니다.

이제 제 질문은 리눅스가 지원하는 파일 시스템의 모든 기능에 액세스하기위한 시스템 호출을 가지고 있습니까? 예를 들어 : Linux 에 NTFS 파일 시스템의 파일에 대한 보관 비트 를 설정하기위한 시스템 호출이 있습니까?



답변

Linux에서 NTFS 파일 시스템의 파일에 대한 보관 비트를 설정하기위한 시스템 호출이 있습니까?

이 특정한 경우 ntfs-3g드라이버는 확장 된 속성을 통해 파일 속성을 내 보냅니다 . Linux의 NTFS에서 파일에 “아카이브”비트를 설정할 수 있습니까?를 참조하십시오 .

(V) FAT 파일 시스템의 파일 속성은 비슷하지만 ioctl()액세스 하는 기능을 사용합니다 ioctl_fat(2). ( ioctl()실제 시스템 호출을 보증하지 않는 모든 종류의 장치 특정 항목에 사용되는 일종의 다목적 시스템 호출입니다.)

이제 제 질문은 리눅스가 지원하는 파일 시스템의 모든 기능에 액세스하기위한 시스템 호출을 가지고 있습니까?

확실히 대답 하기 는 어렵지만 적어도 반대의 예가 있습니다. ext4는 내부적으로 파일에 대한 “출생 시간”타임 스탬프를 지원합니다 (예 : ctimeinode 수정의 변경 과 달리 실제 생성 시간 ). 그러나 ext4가 “표준”파일 시스템이지만 오랫동안 태어날 시간에 액세스하기위한 시스템 호출은 없었습니다.

2017 년 4 월 Linux 4.11statx()시스템 호출이 추가되어 이제 지원 될 예정입니다.

관련 :


답변