8
A
回答
10
要閱讀粘滯位使用stat()
檢查.st_mode
爲S_ISVTX
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
struct stat file_stats;
stat("my_file", &file_stats);
if (file_stats.st_mode & S_ISVTX)
printf("sticky\n");
重置它,你做它通過chmod
struct stat file_stats;
stat("my_file", &file_stats);
mode_t new_mode = file_stats.st_mode & ~S_ISVTX;
chmod("my_file", new_mode);
來設置它,chmod
是
struct stat file_stats;
stat("my_file", &file_stats);
mode_t new_mode = file_stats.st_mode | S_ISVTX;
chmod("my_file", new_mode);
th代碼是未經測試的。
1
這是位01000(八進制),這樣你就可以chmod(dir, 01000 | perms)
設置。我敢肯定,如果你打開頭文件,也許stat.h,你會發現這個位的正確名稱。
相關問題
- 1. 位操作avr程序集
- 2. C++位操作
- 3. 位C操作
- 4. c - 解密中的位操作/操作
- 5. 互操作性c c#結構序列
- 6. c中的位操作
- 7. 隱寫術程序中的按位操作(C)
- 8. 在實模式下的16位.com C程序操作系統
- 9. 按位C操作
- 10. C位操作相關位
- 11. 在64位應用程序中使用32位互操作DLL
- 12. 性能在Java中的移位操作與C++
- 13. ANSI C位操作庫C
- 14. 更改C#自定義操作中的安裝程序屬性
- 15. 在多線程應用程序中按位操作較慢嗎?
- 16. 在64位操作系統上編寫程序時,程序是否會運行在32位操作系統上?
- 17. 在UIWebView中攔截粘貼操作(Swift)
- 18. 在Text-to-Speech C#中操作「speaker voicer」C#應用程序
- 19. 複製粘貼(上下文操作欄)時隱藏應用程序/操作欄
- 20. 單位對多位的c位操作
- 21. 從文件讀取並執行按位操作的C++程序
- 22. 位操作澄清用C
- 23. c - 位操作困難
- 24. C位操作問題
- 25. 位操作出錯C
- 26. 反向位操作/ C++
- 27. C位操作的難題
- 28. C位操作邏輯(BITAND)
- 29. C#中的線程操作
- 30. 多操作系統程序兼容性
嚴格來說,這也嘗試使用'chmod'來設置「文件類型」位,我相信這是不被允許的。另外請注意,這段代碼是活潑的;例如如果你的文件被刪除並在調用'stat()'和調用'chmod()'之間被替換。 (其中一個原因'fstat'和'fchmod'可能更好;另一個是性能......) – Nemo
你確定chmod嘗試設置「文件類型」位,不管它們是什麼?此外,如果您正在檢查在通話之間被刪除的文件,您還應該檢查通話之間的核崩潰。 –
除了權限之外,struct stat的st_mode字段還包括「文件類型」位(常規文件與目錄與套接字等)。而且你不能用'chmod'來設置它們,所以如果你嘗試的話可能會出錯。如果你不認爲值得擔心在Unix上涉及文件創建/刪除的競爭條件,我有一些CERT建議會告訴你...... – Nemo