Win32 permissions can be quite complex. For example, you may have rights to add information to a file, but you may not be able to create a new file in the same directory. That's why the easier way to check for permissions is to verify whether open() succeeds of fails.