linux中的C用户名 - 获取当前用户名

时间:2017-02-01 10:04:52

标签: c linux

我想从以下路径导入文件:

import" / projects / tfs / users / John / verification /......

是否有办法改变" John" C中的$ USER因此它将占用当前用户 并且总是不接受John的文件,我尝试了$ USER并且出现了编译错误。

有没有办法在c中做到?

1 个答案:

答案 0 :(得分:0)

您可以使用getpwuidgetuid函数执行此操作:

#include <stdio.h>
#include <sys/types.h>
#include <pwd.h>
#include <unistd.h>
#include <linux/limits.h>

int main(void)
{
    char path[PATH_MAX] = {0};
    struct passwd *p = getpwuid(getuid());

    if (p != NULL)
    {
        snprintf(path, sizeof(path), "/projects/tfs/users/%s/verification/.", p->pw_name);
        printf("%s\n", path);
    }

    return 0;
}