io.h 之 Windows篇

Windows篇

其路径:Windows Kits\10\Include\10.0.22000.0\ucrt\io.h (使用的VS2019)

内容: (实际内容在)

结构体及函数解释:(来源MSDN,网址_findfirst、_findfirst32、_findfirst32i64、_findfirst64、_findfirst64i32、_findfirsti64、_wfindfirst、_wfindfirst32、_wfindfirst32i64、_wfindfirst64、_wfindfirst64i32、_wfindfirsti64 | Microsoft Learn

函数解释及使用案例:

注:未特殊说明情况下,前缀 w 为宽字符版本,后缀 _s 为CRT安全版本(部分省略)。

  1. _access,_waccess(以及他们的安全版本_access_s,_waccess_s)

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" );

    }

}

  1. _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。

  1. _chsize

int _chsize(int _FileHandle, long _Size);

功能:    改变文件大小。

参数:    _FileHandle        文件描述符

              _Size                    新的大小

返回值:如果成功更改了文件大小,_chsize将返回值 0。返回值 -1 表示错误:如果指定的文件是只读的,或者指定的文件被锁定以防止访问,则 errno 设置为 EACCES,如果描述符无效,则设置为 EBADF,如果设备上没有剩余空间,则设置为 ENOSPC,如果大小小于零,则设置为 EINVAL。

注释:文件需打开并且可写入情况下才会成功,若新尺寸更大,则填充 ’\0’ ,若小于,则从新尺寸之后的文件都将截断。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值