C++ 为什么我会得到;getuid未在该范围内声明";错误?

C++ 为什么我会得到;getuid未在该范围内声明";错误?,c++,getpwuid,C++,Getpwuid,我只是不明白getuid没有在这个范围内声明的原因是什么。我想我已经包括了所有必要的头文件 我尝试在网上搜索,但找不到任何相关的答案。: 提要 #包括 #包括 uid\u t getuid(无效); uid\u t geteuid(无效); 您缺少这些内容。: 提要 #包括 #包括 uid\u t getuid(无效); uid\u t geteuid(无效); > > p> > GUUID()/>代码>不存在于 pWd中。h < /C> >参见 GUUID()/不存在于PWD .H.

我只是不明白getuid没有在这个范围内声明的原因是什么。我想我已经包括了所有必要的头文件 我尝试在网上搜索,但找不到任何相关的答案。

:

提要
#包括
#包括
uid\u t getuid(无效);
uid\u t geteuid(无效);
您缺少这些内容。

提要
#包括
#包括
uid\u t getuid(无效);
uid\u t geteuid(无效);

<> > > p> <代码> > GUUID()/>代码>不存在于<代码> pWd中。h < /C> >参见

<代码> GUUID()/<代码>不存在于PWD .H./C>中。参见

你尝试过<代码> man GuuID吗?C和C++不是java。你不包括“库”但是头文件实际上是源代码。如果使用了java库,那么它们是链接的,这是在编译源代码之后完成的。是的,我已经编辑了我的问题。你试过<代码> man GuuID吗?C和C++不是Java。你不包括“库”。,但头文件,实际上是源代码。如果使用了库,则会链接它们,这将在源代码编译完成后进行。是的,thanx我已经编辑了我的问题。这些行uid\u t getuid(void);uid\u t geteuid(void)的含义是什么@shobhit它们是函数声明。这是手册页面显示实体类型和名称的方式。它意味着“通过包含这些头,您可以访问
getuid
(不带参数并返回
uid\t
)和
geteuid
(不带参数并返回
uid\t
)的函数。”@shobhit是的,这就是本文档向您展示的内容。@shobhit我认为这不是一个好问题。您的代码示例既不完整(什么是
“impfile\u path.h”
?),也不最少(所有
std::string
getpwuid
内容都不相关)。您声称“我已经包含了所有必要的头文件”没有理由(事实证明,你的说法是错误的)。这个问题没有显示任何研究成果(为什么你认为你已经包含了所有必要的标题?你是如何确定所需的标题的?)。我认为这不太可能对其他人有帮助。让我们来看看。这些行uid\t getuid(void);uid\t geteuid(void)是什么意思@shobhit它们是函数声明。这是手册页面显示实体类型和名称的方式。它意味着“通过包含这些头,您可以访问
getuid
(不带参数并返回
uid\t
)和
geteuid
(不带参数并返回
uid\t
)的函数。”@shobhit是的,这就是本文档向您展示的内容。@shobhit我认为这不是一个好问题。您的代码示例既不完整(什么是
“impfile\u path.h”
?),也不最少(所有
std::string
getpwuid
内容都不相关)。您声称“我已经包含了所有必要的头文件”没有理由(事实证明,你的说法是错误的)。这个问题没有显示任何研究成果(为什么你认为你已经包含了所有必要的标题?你是如何确定所需的标题的?)。我认为这不太可能对其他人有帮助。让我们来看看。
#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;
}
/home/shobhit/Desktop/file.cpp:15: error: 'getuid' was not declared in this scope
 pass = getpwuid(getuid());
                        ^
#include <unistd.h>
#include <sys/types.h>

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