c++ - 如何通过 int-descriptor 找出文件名? (或 "can I..?")

标签 c++ file-io

我以这种方式打开文件:

errno_t err01;   
int fHandle;
err01 = _sopen_s(&fHandle, fileName, _O_RDWR, _SH_DENYRW, 0);

现在我应该使用 int 描述符(在本例中名为 fHandle)作为文件的标识符。

问题:我可以只知道这个int-descriptor,得到对应的文件名吗? (假设,我在打开文件后丢失了 fileName 变量的值)

最佳答案

您应该能够像这样获取文件句柄:

HANDLE hFile;
int fHandle;
err01 = _sopen_s(&fHandle, "blah.txt", _O_RDWR, _SH_DENYRW, 0);
hFile = (HANDLE) _get_osfhandle(fHandle);

例如,然后只使用处理文件 HANDLE 的函数

GetFinalPathNameByHandle(hFile, Path, BUFSIZE, VOLUME_NAME_NT);
_tprintf(TEXT("path is %s\n"), Path);

HTH

关于c++ - 如何通过 int-descriptor 找出文件名? (或 "can I..?"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359643/

相关文章:

c++ - 混淆的C递归代码请解释

c++ - 用字符串替换换行符 (\n)

c++ - 错误 C2668 对来自站点 http ://h264bitstream. sourceforge.net/的重载函数代码的模糊调用

c++ - C++ fstream:get()跳过第一行和最后一行

C++虚函数问题

python - 为什么我的缓冲区输出被切碎了? C++套接字编程

Java 进出

javascript - 文件 API FileReader() readAsText 函数不适用于类型 'file'

python - 如何在Python中读取带有包装列的数据?

ruby - 从 ruby​​ 中的单段中的标准输入或文件读取