我只注意到命名宏 「_POSIX_ *」 limits.h中是(namewise)類似的sysconf功能的參數。例如,有一個名爲「_POSIX_ARG_MAX」的宏,我也可以用參數「_SC_ARG_MAX」調用sysconf。爲什麼我們首先需要sysconf當我們完全可以在limits.h中使用宏時?_POSIX_ *(limits.h中)VS _SC_ *(的sysconf)
1
A
回答
1
_POSIX_*
值是符合POSIX標準的最低要求。他們將在所有平臺上具有相同的價值。實現支持的特定值可能會更高。
從man sysconf
:
對於變量或限制,典型地,有一個恆定
_FOO
,在<limits.h>
也許定義,或者_POSIX_FOO
,在<unistd.h>
也許定義。如果限制未指定,常數將不會被定義。如果常量被定義,它會給出一個保證值,而實際上可能會支持更大的值。如果應用程序想要利用系統之間可能會改變的值,可以撥打sysconf()
。sysconf()
參數將爲_SC_FOO
。
例如,_POSIX_ARG_MAX
是4096.但是,如果系統支持它,則sysconf(_SC_ARG_MAX)
可能會返回更大的數字。
相關問題
- 1. LONG_MAX的limits.h中
- 2. Qt,windows和_POSIX_
- 3. C++中sysconf()中的錯誤
- 4. MinGW的缺失的sysconf(_SC_NPROCESSORS_ONLN)
- 5. limits.h中的條件編譯語句
- 6. 每個進程的最大線程數 - 的sysconf失敗
- 7. C中limits.h * _MAX常量的正確說明符是什麼?
- 8. GCC 4.9.4交叉編譯器編譯(limits.h中的問題)
- 9. 如何在全局數組聲明中聲明sysconf返回值?
- 10. mupdf limits.h:沒有這樣的文件或目錄在mac os x
- 11. 從limits.h中找出不帶常數的整數類型的取值範圍
- 12. VS VS VS VS 11中的MVC測試
- 13. 如何在C++中使用sysconf()函數來查找以下信息?
- 14. 我們可以修改limits.h嗎?它會產生什麼影響?
- 15. 爲什麼ARG_MAX沒有通過limits.h定義?
- 16. 構建GCC交叉編譯器時無法找到limits.h的包含文件
- 17. * vs ** vs ***在Proguard中?
- 18. Exec的VS ExecWait VS ExecShell VS nsExec :: Exec的VS nsExec :: ExecToLog VS nsExec :: ExecToStack VS ExecDos VS ExeCmd
- 19. python中的習語:closure vs functor vs object
- 20. 1px的VS薄,IE VS Excel中發出
- 21. url-pattern「/」vs「/ *」vs servlet中的空白
- 22. float vs smallint vs mysql中的小數點
- 23. Java中的RandomAccessFile vs掃描器vs FileInputStream
- 24. 檢測是否長長包括<code><limits.h></code>
- 25. 在VS 2008中打開VS之後VS VS解決方案?
- 26. java中循環的性能(vs vs沒有bitshift,for vs. while)
- 27. 在Java中設置vs數組vs vs鏈表的性能
- 28. JSF:H:dataTable中VS H:panelGrid的
- 29. VS 2010中的PreFast?
- 30. VS 2010中的_set_sbh_threshold
'_POSIX_ *'是爲了符合POSIX而必須支持的最小值。 –
@TavianBarnes謝謝〜!現在有道理。 – b1sub