【发布时间】:2012-01-21 13:39:59
【问题描述】:
如何在程序中不使用环境 (getenv, ...) 的情况下获取实际的“用户名”?环境是带有 Linux 的 C/C++。
【问题讨论】:
-
c和c++函数有什么区别?你是说类方法吗??
-
所有 POSIX API 都定义为 C 函数,在 C++ 中完全可以调用。我不明白你的限制。
-
这个限制没有任何意义...如果您需要与一个 POSIX 操作系统进行交互,那么您必须开始使用 C(或汇编)。以及如何定义“C++ 函数”? C++ 标准库没有为此提供任何东西,即使它提供了它也只是
getlogin_r的包装器。 -
@Armed9Gagger:我很确定他的意思不是你说的,因为这没有任何意义......你能告诉我们他在作业中写的确切的话吗?可能他只是不让你写一个 C 风格的函数(使用
char *& co.),而是为getlogin_r编写一个 C++ 包装器(使用std::string,...)。 -
@Armed9Gagger:技术上是
cstdlib& co。是 C++ 包含(在std命名空间内提供旧版 C 库)。尽管如此,POSIX 标头并未包含在标准 C 中,它们是旨在用于多种语言(主要是 C 和 C++)的操作系统 API。