【问题标题】:Safe way to use the result of getpwnam()/getpwuid()?使用 getpwnam()/getpwuid() 结果的安全方法?
【发布时间】:2014-05-22 03:08:31
【问题描述】:

我正在研究 Linux 和 FreeBSD。当我使用getpwnam()getpwuid() 时,我得到一个指向passwd 结构的指针。使用passwd 结构的char* 成员的安全方法是什么?

手册页说这个结构是一个静态对象,但会被后续调用覆盖,所以我想安全的方法是使用strdup()获取char*成员的副本,然后不再使用@ 987654328@ 结构。

我的理解正确吗?

【问题讨论】:

    标签: c linux getpwuid getpwnam


    【解决方案1】:

    最安全的方法是根本不使用它们,而是使用getpwnam_rgetpwuid_r,它们将结果存储在调用者提供的缓冲区中。这不仅避免了您所询问的问题,而且还使您的代码可以安全地用于多线程进程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-08
      • 2016-04-26
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      相关资源
      最近更新 更多