- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 GetHandleInformation 函数时遇到问题。下面是源码
#include <windows.h>
#include <stdio.h>
int main()
{
HANDLE hFile;
char Nazwa[]="C:\\testfile.txt";
BOOL test;
DWORD dFlags;
hFile=CreateFile(Nazwa,
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL |FILE_ATTRIBUTE_ARCHIVE | SECURITY_IMPERSONATION,
NULL);
if(hFile==INVALID_HANDLE_VALUE)
printf("Function CreateFile return error: %d\n",GetLastError());
printf("File handle is OK\n");
test=GetHandleInformation(hFile,&dFlags);
//printf("%x\n",dFlags);
printf("The return value is: %d, error: %d\n",test,GetLastError());
CloseHandle(hFile);
DeleteFile(Nazwa);
return 0;
}
我尝试读取 dFlags 变量中的标志值,但仍然设置为 0。有人可以告诉我问题出在哪里吗?我尝试与 HANDLE_FLAG_INHERIT 或 HANDLE_FLAG_PROTECT_FROM_CLOSE 进行比较,但它不起作用。
最佳答案
对于dwFlags
来说,零是一个完全有效的值。 。如果两者都不是HANDLE_FLAG_INHERIT
也不HANDLE_FLAG_PROTECT_FROM_CLOSE
设置后,标志将为 0。
发生的情况是 GetHandleInformation
函数有两个参数:第一个是文件句柄,第二个是指向 DWORD 的指针。如果该函数成功,它将用标志填充第二个参数。就您而言,这将是您的 dwFlags
多变的。如果函数失败,则 dwFlags
的值未定义。
函数的返回值是您可能尝试检查零或非零值的值。非零表示成功,而零 ( FALSE
) 表示失败。这是BOOL
Win32 术语中的值。另请注意,您只能期望 GetLastError
如果原始函数调用失败(即返回 FALSE
),则返回有意义的值。您不应该调用GetLastError
如果原始函数调用成功(即,返回非零值)!
关于c - 如何读取 GetHandleInformation 函数中的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40831917/
我在使用 GetHandleInformation 函数时遇到问题。下面是源码 #include #include int main() { HANDLE hFile; char
事实 1:由于某些客户端限制,我们无法使用异常机制。 事实 2:关闭已经关闭的句柄会引发异常。 不考虑提及事实的原因,将调用 GetHandleInformation() 来检测句柄是否仍然有效,并且
我是一名优秀的程序员,十分优秀!