BSD/macOS 파일 플래그를 읽거나 나열하기 위한 API/시스템 호출

BSD/macOS 파일 플래그를 읽거나 나열하기 위한 API/시스템 호출

표준 *nix 파일 외에도권한, macOS에도 파일이 있습니다배너, BSD Unix에서 유래되었습니다. macOS에 대한 이러한 플래그 세트는 다음과 같습니다.

UF_NODUMP      Do not dump the file.
UF_IMMUTABLE   The file may not be changed.
UF_APPEND      The file may only be appended to.
UF_OPAQUE      The directory is opaque when viewed through a union stack.
UF_HIDDEN      The file or directory is not intended to be dis-played displayed played to the user.
SF_ARCHIVED    The file has been archived.
SF_IMMUTABLE   The file may not be changed.
SF_APPEND      The file may only be appended to.

스위치는 다르지만 ls에 대한 추가 스위치를 사용하면 다음과 같은 추가 플래그를 볼 수 있습니다.

  • ls -lo- BSD 및 macOS의 이전 버전일 수도 있음
  • ls -lO- 현재 버전의 macOS

다음을 사용하여 플래그를 변경할 수 있습니다 chflags.FreeBSD 매뉴얼 페이지

이러한 플래그를 변경하는 해당 시스템 호출 chflags이 있습니다 .lchflagsfchflagsmacOS 매뉴얼 페이지

하지만 시스템 호출을 찾을 수 없는 것 같습니다.읽다배너. 확실히 ls그것들을 얻기 위해 어떤 함수가 호출될까요? 이를 변경할 수 있는 시스템 호출도 현재 상태를 반환할 수 없는 것 같습니다.

내가 무엇을 놓치고 있나요?

(StackOverflow에 속해 있다면 자유롭게 그곳으로 이동하세요.)

답변1

읽기 플래그를 사용할 수 있습니다.statmacOS 및 BSD에서는 st_flags필드에 나타납니다.

관련 정보