-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 に答える