gpt4 book ai didi

在 C 中更改所有者和组?

转载 作者:IT王子 更新时间:2023-10-29 00:17:21 26 4
gpt4 key购买 nike

我想在 C 中更改文件的所有者和组。我用谷歌搜索,但如果只找到一些使用 system()chmod 命令或相关命令的代码功能。

没有 system() 函数和 Bash 命令,有没有办法做到这一点?

最佳答案

要完成答案,在 Linux 上可以使用以下内容(我在 Ubuntu 上测试过):

#include <sys/types.h>
#include <pwd.h>
#include <grp.h>

void do_chown (const char *file_path,
const char *user_name,
const char *group_name)
{
uid_t uid;
gid_t gid;
struct passwd *pwd;
struct group *grp;

pwd = getpwnam(user_name);
if (pwd == NULL) {
die("Failed to get uid");
}
uid = pwd->pw_uid;

grp = getgrnam(group_name);
if (grp == NULL) {
die("Failed to get gid");
}
gid = grp->gr_gid;

if (chown(file_path, uid, gid) == -1) {
die("chown fail");
}
}

关于在 C 中更改所有者和组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8778834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com