Linux 中的基名_r/目录名_r

dme*_*ter 5 linux filesystems posix

某些 POSIX 函数不是线程安全的。示例包括目录名和路径名。

dirname() 函数不需要是可重入的。不需要可重入的函数不需要是线程安全的。

在某些平台上,目录名和路径名有可重入版本:dirname_r和 pathname_r。据我发现,Linux 上的目录名和路径名没有可重入版本。

  • 那是对的吗?
  • 还有什么选择呢?

raf*_*afl 2

我不知道Linux 中dirname和的可重入版本basename

然而,在不同的非标准库中这两个函数有各种可重入的实现。

glib 中的g_path_get_dirnameg_path_get_basename可能很常用,并且它们的实现也不太依赖于 glib 库的其余部分,因此如果您不是特别想链接,那么很容易借用它们的实现反对油嘴滑舌。