#include <string>
#include <stdio.h>
#include <pwd.h>

std::string impPath()
{
    char *name;
    struct passwd *pass;
    pass = getpwuid(getuid());
    name = pass->pw_name;

    std::string PATH = "/home";
    PATH.append("/");
    PATH.append(name);

    return PATH;
}


我需要知道用户的用户名。为此。我正在使用getpwuid(),但出现此错误。

/home/shobhit/Desktop/file.cpp:15: error: 'getuid' was not declared in this scope
 pass = getpwuid(getuid());
                        ^


我只是不知道在此范围内未声明getuid的原因是什么。我想我已经包括了所有必要的头文件。(yami对R的回答getlogin() c function returns NULL and error "No such file or directory"的评论
我曾尝试在网络上搜索,但找不到任何相关答案。

最佳答案

man getuid


  概要

#include <unistd.h>
#include <sys/types.h>

uid_t getuid(void);
uid_t geteuid(void);



您缺少这些包括。

关于c++ - 为什么我收到“未在该范围内声明getuid”错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50888164/

10-08 21:33