C++ 为什么我会得到;getuid未在该范围内声明";错误?
我只是不明白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.
#包括
#包括
uid\u t getuid(无效);
uid\u t geteuid(无效);
您缺少这些内容。:
提要
#包括
#包括
uid\u t getuid(无效);
uid\u t geteuid(无效);
<> > > p> <代码> > GUUID()/>代码>不存在于<代码> pWd中。h < /C> >参见 <代码> GUUID()/<代码>不存在于
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);