我正在使用Cygwin gcc编译器使用Code :: Blocks编译和测试C程序。我对“ getcwd”函数的输出(unistd.h)有疑问:
#include <unistd.h>
#include <limits.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
char workingDir[PATH_MAX];
if (getcwd(workingDir, sizeof(workingDir)) != NULL) {
fprintf(stdout, "Working directory: %s\n", workingDir);
}
}
在Code :: Blocks中运行时,getcwd函数返回完整的Cygwin路径:
C:\Users\mrosh\CodeBlocks\GetcwdTest\bin\Debug\GetcwdTest.exe
Working directory: /cygdrive/c/Users/mrosh/GetcwdTest/GetcwdTest/bin/Debug
从Windows命令行运行时,我仅获得当前的工作文件夹:
C:\Users\mrosh\CodeBlocks\GetcwdTest\bin\Debug>GetcwdTest.exe
Working directory: /Debug
从Windows命令行运行时,我确实需要从程序内部访问完整路径。知道我如何实现吗?