2009-10-29 7 views
4

vfat 드라이버가있는 Linux에 FAT 파일 시스템이 마운트되어 있습니다. "숨김"및 "읽기 전용"과 같은 파일의 vfat 속성을 읽는 방법을 알고 싶습니다.C를 사용하여 Linux에서 파일의 vfat 속성을 읽는 방법

내가 파일에 stat()의 glibc 명령을 사용하면, 난 단지 파일 특성 여기에 나열된 받고있을 것입니다, 지금까지 읽은 것을 바탕으로 : http://www.gnu.org/s/libc/manual/html_node/Attribute-Meanings.html#Attribute-Meanings

다음은 어떤 VFAT 속성을 포함하지 않는 하나. 아무도 도와 줄 수 있니?

감사합니다,

Katsupoy

답변

6

FAT의 DOS는 리눅스의 vfat 드라이버를 반영하지 않도록, 유닉스 파일 시스템 모델에 잘 매핑되지 않는 속성.

파일 시스템을 마운트하는 대신 mtools을 사용하여 사용자 공간에서 파일 시스템을 읽습니다.


편집 나는 거짓말. 분명히 vfat 드라이버는 적어도 2.4.29에서 이러한 DOS 특성을 처리 할 수 ​​있습니다 (내 기록 로그는 그다지 뒤로 돌아 가지 않습니다).

#include <inttypes.h> 
#include <sys/ioctl.h> 
#include <linux/msdos_fs.h> 

int fd = open("/mnt/fat/...", ...); 
__u32 attrs; 
ioctl(fd, FAT_IOCTL_GET_ATTRIBUTES, &attrs); 
attrs = ATTR_NONE; /* ATTR_{RO,HIDDEN,SYS,VOLUME,DIR,ARCH} */ 
ioctl(fd, FAT_IOCTL_SET_ATTRIBUTES, &attrs); 
+0

고맙습니다. 분명히 mtools를 시도 할 것입니다. mtools 외에도 FAT 속성을 검색 할 수있는 다른 알려진 방법 (또는 해킹)이 있습니까? – Katsupoy

+0

이것은 더 낫다, 나는 내일 내 컴퓨터에서 이것을 시도 할 것이다. FAT_IOCTL_GET_ATTRIBUTES (및 나에게 유용 할 수있는 다른 옵션)은 어디에 문서화되어 있습니까? 감사. – Katsupoy

+0

'/ usr/src/linux/fs/fat/file.c'에서 파고 들었습니다. 이전에이 ioctls에 대한 문서를 본 적이 없습니다. – ephemient

관련 문제