是否可以获取Windows中指针的文件名?
Is it possible to get the file name of a pointer in Windows?
据我对SO的研究,为了从指针(可能是内存位置)获取文件名,我们需要获取它的文件描述符号,然后可以用来间接请求OS 作为文件名。也许通过导航它的 proc 目录,或者可能有不同的方法 OS-依赖的方法来做到这一点。
但真正的问题是,
Windows可以吗?
我正在寻找一种专门使用 C 来完成此操作的方法,因为我的代码是用 C 编写的。
===
仅供参考,
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char *buffer; /* Data transfer buffer */
unsigned char *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE;
看来您也可以使用 GetFileInformationByHandleEx function with the argument FileNameInfo
. I am not on Windows and cannot test, but it's suggested by this answer。
据我对SO的研究,为了从指针(可能是内存位置)获取文件名,我们需要获取它的文件描述符号,然后可以用来间接请求OS 作为文件名。也许通过导航它的 proc 目录,或者可能有不同的方法 OS-依赖的方法来做到这一点。
但真正的问题是,
Windows可以吗?
我正在寻找一种专门使用 C 来完成此操作的方法,因为我的代码是用 C 编写的。
===
仅供参考,
typedef struct {
int level; /* fill/empty level of buffer */
unsigned flags; /* File status flags */
char fd; /* File descriptor */
unsigned char hold; /* Ungetc char if no buffer */
int bsize; /* Buffer size */
unsigned char *buffer; /* Data transfer buffer */
unsigned char *curp; /* Current active pointer */
unsigned istemp; /* Temporary file indicator */
short token; /* Used for validity checking */
} FILE;
看来您也可以使用 GetFileInformationByHandleEx function with the argument FileNameInfo
. I am not on Windows and cannot test, but it's suggested by this answer。