Files
用於讀取或列出 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 和舊版本的 macOSls -lO
- 目前版本的 macOS您可以使用以下命令更改標誌
chflags
:FreeBSD 手冊頁有相應的系統呼叫
chflags
,lchflags
,fchflags
來更改這些標誌:macOS 手冊頁但我似乎找不到讀取標誌的系統呼叫。肯定
ls
會呼叫一些函式來獲取它們嗎?可以更改它們的系統呼叫似乎也無法返回它們的目前狀態。我錯過了什麼?
(如果這屬於 StackOverflow,那麼請隨時將它移到那裡。)
stat
可以在 macOS 和 BSD 上使用這些標誌來讀取;他們出現在st_flags
現場。