- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在 Linux 和 FreeBSD 上工作。当我使用 getpwnam()
或 getpwuid()
时,我得到一个指向 passwd
结构的指针。使用该 passwd
结构的 char*
成员的安全方法是什么?
手册页说这个结构是一个静态对象,但会被后续调用覆盖,所以我想安全的方法是使用 strdup()
来获取 char 的副本*
成员,然后不再使用 passwd
结构。
我的理解正确吗?
最佳答案
最安全的方法是根本不使用它们,而是使用 getpwnam_r
和 getpwuid_r
,它们将结果存储在调用者提供的缓冲区中。这不仅避免了您询问的问题,而且使您的代码可以安全地用于多线程进程。
关于c - 使用 getpwnam()/getpwuid() 结果的安全方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23797203/
#include #include #include int main(void) { printf("%s %s\n", getpwnam("steve")->pw_name,
我使用下面的代码遇到了(0xC0000005)的问题,我在Duo Security源代码中看到了这段代码,Duo可以成功运行这段代码,但是当我运行这段代码时,它会失败,并且这段代码与它们相同。我尝试调
我正在尝试更新函数中的密码结构。此函数获取指向密码结构的指针,其中我必须更新详细信息。 我得到一个函数的 struct passwd* 作为参数,我的要求是将它的成员更新为其他用户(user2)的信息
在 getuserinfo() 中,如果行 struct passwd *theUser = getpwnam(username); 尝试使用不存在的用户名,程序将以-1 的误差。它永远不会到达函数的
我编写了一个简单的程序,它在用户名上调用 getpwnam(),将该用户名传递给一个函数,然后再次调用 getpwnam()。出于某种原因,我总是在函数中获取 root 的密码信息。 #include
我正在学习系统编程。 有很多函数返回静态分配的变量。 其中之一,就是getpwnam()。 因此,在我正在阅读的书籍示例中: printf("%ld %ld\n", (long)(getpwnam("
是否有针对 getpwnam 内存泄漏的修复或解决方法? 最佳答案 getpwnam() 不会内存泄漏。实际上,后续调用将覆盖其静态内部缓冲区。 这类函数不是不可重入,因此非线程安全。保罗建议使用 g
我有一个程序,其系统调用 getpwnam() 在运行时失败。为了调试它,我决定单独运行 getpwnam() 和这段代码(它来自一个论坛): #include #include #include
我在 Linux 和 FreeBSD 上工作。当我使用 getpwnam() 或 getpwuid() 时,我得到一个指向 passwd 结构的指针。使用该 passwd 结构的 char* 成员的安
我正在尝试进行网络日志记录,并使用 getpwnam() 函数来检查现有的用户名。但是对于有效的用户名,getpwnam 返回错误:没有这样的文件或目录。所以我尝试了 getpwnam_r(),但它也
看起来“nam”在 getpwnam 或 getspnam 的上下文中意味着“item”或“entry”。它到底代表什么? 最佳答案 意思是“按名字”。 例如getpwnam -> 按名称获取密码条目
getpwnam 是否遵守/etc/nsswitch.conf? getpwnam 状态的联机帮助页 The getpwnam() function returns a pointer to a st
我正在几个 Ubuntu 64 位服务器上设置 ZABBIX 代理(用 C 语言编写)。我通常以 32 位编译所有内容,除非我特别需要 64 位(例如数据库服务器)。有问题的服务器将托管虚拟服务器并具
Python pwd 模块提供对 getpwnam(3) POSIX API 的访问,可用于通过用户名获取特定用户的主目录,以及确定用户名是否有效.如果使用不存在的用户名调用 pwd.getpwnam
这是我的 crontab 文件的内容: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO="example@example.com"
我是一名优秀的程序员,十分优秀!