-1

我发现API,

_tfsopen()

当我只给出相对文件路径(JUST FILE NAME)时不起作用

fopen_s(&fp,"FileName.txt",w+);

但是,如果我给出 txt 文件的绝对路径,那么它工作正常。所以问题在于获取当前工作目录(CWD)。我如何获得 CWD 并使这个 API 工作?

此 API 定义存在于:

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt\src\fopen.c

这就是 fopen.c 所拥有的:

errno_t __cdecl _tfopen_s (
        FILE ** pfile,
        const _TSCHAR *file,
        const _TSCHAR *mode
        )
{
    _VALIDATE_RETURN_ERRCODE((pfile != NULL), EINVAL);
    *pfile = _tfsopen(file, mode, _SH_SECURE);  // ERROR IS OCCURING AT THIS LINE. IT's NOT ABLE TO OPEN THE FILE.

    if(*pfile != NULL)
        return 0;

    return errno;
}
4

1 回答 1

0

此代码可让您获取当前工作目录:

#include <direct.h>

char cwd[MAX_PATH_SIZE];
_getcwd(cwd, MAX_PATH_SIZE);
于 2013-02-07T10:20:22.747 回答