Windows篇
其路径:Windows Kits\10\Include\10.0.22000.0\ucrt\io.h (使用的VS2019)
内容: (实际内容在)
函数解释及使用案例:
注:未特殊说明情况下,前缀 w 为宽字符版本,后缀 _s 为CRT安全版本(部分省略)。
errno_t _access(const char *path, int mode); errno_t _waccess(const wchar_t *path, int mode); |
功能: 验证是否具有参数中指定的权限
参数: path 文件或者目录路径
mode 权限
返回值:EACCES 访问被拒绝。文件的权限设置不允许指定的访问。
ENOENT 找不到文件名或路径。
EINVAL 参数无效。
mod可选值
值 | 含义 |
00 | 仅存在 |
02 | 写入权限 |
04 | 读取权限 |
06 | 读取和写入权限 |
参考代码:
#include <io.h> #include <stdio.h> #include <stdlib.h> int main() { // 检测文件是否存在 if( (_access( "crt_ACCESS.C", 0 )) != -1 ) { printf_s( "File crt_ACCESS.C exists.\n" ); // 检测写入权限,假设文件是只读的 if( (_access( "crt_ACCESS.C", 2 )) == -1 ) printf_s( "File crt_ACCESS.C does not have write permission.\n" ); } } |
- _chmod,_wchmod
int _chmod( const char *filename, int pmode ); int _wchmod( const wchar_t *filename, int pmode ); |
功能: 改变文件权限
参数: path 文件或目录路径
pmode 参考下表
值 | 含义 |
_S_IREAD | 只读 |
_S_IWRITE | 允许写(实际上包含读) |
_S_IREAD | _S_IWRITE | 可读可写 |
返回值:如果成功更改了权限设置,则这些函数返回 0。返回值 -1 表示失败。如果找不到指定的文件,则将 errno 设置为 ENOENT;如果参数无效,则将 errno 设置为 EINVAL。
- _chsize
int _chsize(int _FileHandle, long _Size); |
功能: 改变文件大小。
参数: _FileHandle 文件描述符
_Size 新的大小
返回值:如果成功更改了文件大小,_chsize将返回值 0。返回值 -1 表示错误:如果指定的文件是只读的,或者指定的文件被锁定以防止访问,则 errno 设置为 EACCES,如果描述符无效,则设置为 EBADF,如果设备上没有剩余空间,则设置为 ENOSPC,如果大小小于零,则设置为 EINVAL。
注释:文件需打开并且可写入情况下才会成功,若新尺寸更大,则填充 ’\0’ ,若小于,则从新尺寸之后的文件都将截断。