POSIX 2008 引入了几个文件系统函数,它们在确定文件路径时依赖于目录描述符(我说的是-at
函数,例如openat
, renameat
,symlinkat
等)。我怀疑是否所有 POSIX 平台都支持它(好吧,至少最新版本似乎支持),我正在寻找一种方法来确定平台是否支持这些功能。当然可以使用autoconf
和朋友进行编译时确定,但我正在寻找一种可能性来确定实现是否支持动态-at
功能。
我想到的第一个是dlopen()
//组合dlsym()
;dlclose()
至少我已经成功地从/usr/libc.so.6
共享库中加载了必要的符号。但是,libc 在不同的平台上可能(或者是?)命名不同。是否有找到 libc 的标准位置列表?至少在 Linux 上/lib/libc.so
似乎不是共享库的符号链接,而是ld
脚本。如果支持 POSIX 函数,是否存在其他一些在运行时检查的方法?提前致谢!