c - 如何将包含用户 ID 的 char 数组转换为 uid_t?
问题描述
我有一个包含我的用户 ID 的字符数组。我需要获取一个 uid_t 对象,以便可以使用 getpwuid(3) 查找用户名。
我的命令是./foo 1000
(系统上存在名为“bar”且 ID 为 1000 的用户)。这是我的代码:
int main(int argc, char **argv) {
struct passwd *user = getpwuid((int) argv[1]);
printf("%s\n", user->pw_name);
}
这样做的问题是,getpwuid(3) 只接受 uid_t,并且 (int) 转换不起作用。
我很清楚我可以使用 getpwnam() 并从字符串中获取它,但我不知道如何将我的 char 数组转换为 uid_t 所以 getpwuid(3) 接受它。
解决方案
推荐阅读
- python - 如何在 Python 中使用 Selenium 单击单选按钮?
- python - 使用python将数据写入SQL数据库
- python - 仅在前一行发生更改时才显示表中的行
- django - 我们是否需要将 White Noise 创建的文件(在文件夹中)添加到 gitignore 列表中?
- amp-html - 如何让 amp-base-carousel 立即显示图像并顺利运行
- c# - ASP.Net 核心重复声明与 Asp.Net 核心身份和多个身份验证方案
- javascript - MacOS Big Sur 11.2.3 每一步都需要权限
- javascript - 如何使用 Math.floor 方法解决数字
- python - Pandas groupby 滚动获取未来值
- c++ - 如何在 QTableView 中编辑选定的数据/行?