Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Qt中使用$HOME_C++_Qt_Qprocess - Fatal编程技术网

C++ 在Qt中使用$HOME

C++ 在Qt中使用$HOME,c++,qt,qprocess,C++,Qt,Qprocess,我在一个Qt项目的工作,我希望工作目录是动态设置的程序将在不同的系统上运行 我已附上代码供你参考 QProcess Home; Home.start("echo",QStringList() << "$HOME"); Home.waitForFinished(-1); qDebug() << Home.readAllStandardOutput(); qprocesshome; Home.start(“echo”,QStringList()可用于检索进程环境中设置的主路

我在一个Qt项目的工作,我希望工作目录是动态设置的程序将在不同的系统上运行

我已附上代码供你参考

QProcess Home;
Home.start("echo",QStringList() << "$HOME");
Home.waitForFinished(-1);
qDebug() << Home.readAllStandardOutput();
qprocesshome;
Home.start(“echo”,QStringList()可用于检索进程环境中设置的主路径

#include <cstdlib>

const char *homePath = std::getenv("HOME");
if(homePath != NULL)
{
    QProcess Home;
    Home.start("echo",QStringList() << homePath);
    Home.waitForFinished(-1);
    qDebug() << Home.readAllStandardOutput();
}
#包括
const char*homePath=std::getenv(“HOME”);
if(homePath!=NULL)
{
qprocesshome;
Home.start(“echo”,QStringList()可用于检索进程环境中设置的主路径

#include <cstdlib>

const char *homePath = std::getenv("HOME");
if(homePath != NULL)
{
    QProcess Home;
    Home.start("echo",QStringList() << homePath);
    Home.waitForFinished(-1);
    qDebug() << Home.readAllStandardOutput();
}
#包括
const char*homePath=std::getenv(“HOME”);
if(homePath!=NULL)
{
qprocesshome;

Home.start(“echo”,QStringList()这里是另一种方法

QStringList QProcess::systemEnvironment()[静态]


希望能有所帮助。

这里有另一种方法

QStringList QProcess::systemEnvironment()[静态]

希望对您有所帮助。

是QT库提供的函数,用于获取所有平台上的任何环境变量

getenv()似乎在Windows VS2005以后的版本中已被弃用。

是QT库提供的函数,用于在所有平台上获取任何环境变量


getenv()似乎在Windows VS2005以后的版本中不受欢迎,尤其是对于主路径,您应该使用QDir::homePath()

尤其是对于主路径,您应该使用QDir::homePath()

为什么您认为它应该用实际的主路径替换
$home
也有吗?为什么你认为它应该用实际的主路径替换
$HOME
?@CaptainObvlious:因为
系统(“echo$HOME”)
也有吗?你也可以使用
QDir::homePath()
来获取主路径。对于
QDir::homePath(),
qgetenv
可以使用
std::getenv
+1
。这也适用于Windows。
$HOME
是POSIX。@Riateche,谢谢你的帮助,但现在我遇到了另一个问题。我可以访问$HOME,但无法访问其他用户定义的环境变量。如果你能帮我解决这个问题,那就太好了。你也可以使用
QDir::homePath()
获取主路径。对于
QDir::homePath(),可以使用
qgetenv
代替
std::getenv
+1
。这也适用于Windows。
$HOME
是POSIX。@Riateche,谢谢你帮了大忙,但现在我遇到了另一个问题。我可以访问$HOME,但无法访问其他用户定义的环境变量。如果你能帮我解决这个问题,那就太好了。谢谢你,这确实有帮助,但现在我想访问用户定义的环境变量Bles.qgetenv没有给我答案。请帮助我。谢谢,它确实有帮助,但现在我想访问用户定义的环境变量。qgetenv没有给我答案。请帮助我。