查找正在执行文件的目录?

时间:2012-08-15 21:27:24

标签: c++ file boost filesystems filenames

我想用运行程序的目录的参数调用opendir()。如果可能,它将是一种独立于平台的方式。我很困惑,因为similar question的接受答案看起来不是平台独立的。其他答案说使用Boost但不推荐回复this question个州initial_path()。如果无法在独立的平台上完成,则目标是Windows。

3 个答案:

答案 0 :(得分:1)

这是跨平台的,并告诉您程序的当前工作目录。

char * getcwd(char * buf,size_t size);

这是一个posix函数,应该在Linux,OsX和Windows上受支持。在这里阅读:

http://linux.die.net/man/3/getcwd

答案 1 :(得分:1)

initial_path()已弃用,但它在程序开头为您有效地调用current_path(),然后在任何后续调用中返回该结果。所以你需要做的就是在程序开头调用current_path()并将其存储在某个地方。

答案 2 :(得分:0)

大致相同的问题是here

您也可以从此处获得帮助:Makefile Tutorial

您也可以使用这些命令

initial_path()
current_path()