文件系统
+ -

判断文件是否存在

2023-05-19 53 0

函数如下:

inline bool is_file_exist(const std::string& filepath)
{
    struct  _stat buffer;
    return _stat(filepath.c_str(), &buffer) == 0;
}

_stat_wstat函数用于获取文件的状态信息。
函数返加0表进成功,为-1表示失败即文件不存在。

参考链接:https://learn.microsoft.com/zh-cn/previous-versions/14h5k7ff(v=vs.110)

// crt_stat.c
// This program uses the _stat function to
// report information about the file named crt_stat.c.

#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <errno.h>

int main( void )
{
   struct _stat buf;
   int result;
   char timebuf[26];
   char* filename = "crt_stat.c";
   errno_t err;

   // Get data associated with "crt_stat.c": 
   result = _stat( filename, &buf );

   // Check if statistics are valid: 
   if( result != 0 )
   {
      perror( "Problem getting information" );
      switch (errno)
      {
         case ENOENT:
           printf("File %s not found.\n", filename);
           break;
         case EINVAL:
           printf("Invalid parameter to _stat.\n");
           break;
         default:
           /* Should never be reached. */
           printf("Unexpected error in _stat.\n");
      }
   }
   else
   {
      // Output some of the statistics: 
      printf( "File size     : %ld\n", buf.st_size );
      printf( "Drive         : %c:\n", buf.st_dev + 'A' );
      err = ctime_s(timebuf, 26, &buf.st_mtime);
      if (err)
      {
         printf("Invalid arguments to ctime_s.");
         exit(1);
      }
      printf( "Time modified : %s", timebuf );
   }
}

0 篇笔记 写笔记

WDDM 子设备关状态
WDDM中使用来DxgkDdiQueryChildStatus查询子设备的状态 InitialData.DxgkDdiQueryChildStatus = BddDdiQueryChildStatus;和其它的回调函数一样,最终的处理函数其实是BASIC_DIS......
Windows蓝屏分析-DRIVER_POWER_STATE_FAILURE键盘电源切换引起的蓝屏
昨天在回家的路上,老大说你处理一个手中的BUG。我回复说明天处理,今天来到公司一看,果然有一个,是蓝屏的问题。然后去测试那里看限象,测试组的同学说的是一顿猛操作摄像头和麦克风,然后按住电源关机后出现黑屏,然后蓝屏。心想坏了,不会是摄像头或麦克风驱动引起的蓝屏吧。不过幸好的是,当时机子开了dump。......
NTSTATUS(驱动错误码)代码对照
使用Windows编程时,NSTATUSR状态码表:值错语码00000000STATUS_SUCCESS00000000STATUS_WAIT_000000001STATUS_WAIT_100000002STATUS_WAIT_200000003......
DevCon Status命令
显示计算机上设备的驱动程序的 “正在运行”、”已停止” 或 “) 已禁用” 状态 (状态。 在本地和远程计算机上有效。在指定的远程计算机上运行命令。 必须使用反斜杠。注意 若要在远程计算机上运行 DevCon 命令,组策略设置必须允许即插即用服务在远程计算机上运行。 在运行 Windows Vi......
ASIO 获取音频参数init_asio_static_data函数
要打开音频设备,总得先获取参数吧。比如UAC设备,在打开MIC时,系统会通过特定类请求设置采样率,这样固件会源源不断地通过此采样率获取音频数据,然后通过USB要同步传输将数据发送给主机。在ASIO中,获取ASIO设备的参数有几个函数,详情可见:ASIO 函数功能介绍 。ASIO的测试用例是通过in......
删除锁IO_REMOVE_LOCK与STATUS_DELETE_PENDING
删除锁IO_REMOVE_LOCK很少见,但很重要。其结构体定义为:typedef struct _IO_REMOVE_LOCK { IO_REMOVE_LOCK_COMMON_BLOCK Common;#if DBG IO_REMOVE_LOCK_DBG_BLOCK Dbg;......
Windows系统USB驱动的断电异常处理STATUS_NO_SUCH_DEVICE
USB设备除非特殊需要,一般都是系统自带。所以我们根据不用开发相应的驱动,就算是我们要搞自定义的USB设备,微软也贴心的帮我们搞了一个WinUSB,只我们的的固件按照某定的要求,也可以实现自定义通讯。所以从上面的来看,没有什么特殊的地方要我们开发Windows系统的USB驱动。不过有的时候就是那么奇......
总线驱动IRP的中止AbortIrp
AbortIrp用于驱动即将卸载,但系统这时又下发了一个功能驱动过来。这时我们需要中止它,系统通过我们Abort它的状态也许不再下发功能IRP了。对于总线驱动,IRP一般分为三类:第一种是通用的功能IRP,如IRP_MJ_CLOSEIRP_MJ_CREATEIRP_MJ_DEVICE_CO......
判断文件是否存在
函数如下:inline bool is_file_exist(const std::string& filepath){ struct _stat buffer; return _stat(filepath.c_str(), &buffer) == 0;}_......
IOCTL_SERIAL_SET_LINE_CONTROL、IOCTL_SERIAL_GET_LINE_CONTROL和GetCommState、SetCommState
IOCTL_SERIAL_SET_LINE_CONTROL是Windows系统中用于设置串行端口通信行控制信息的一个设备I/O控制码。该控制码需要通过DeviceIoControl函数发送给串行端口驱动程序,以设置当前串行端口的数据传输率、数据位、停止位、奇偶校验等通信参数信息。在应用程序开发中,可......
Windbg观察窗口的NTSTATUS将十进制改为十六进制显示
在Windbg里调试驱动时,NTSTATUS Status的值总显示为on-1**的十进制形式,非常不利于我们查看其对应的问题。如下:这时,我们只需要使用dd命令显示变量的值即可。2: kd> dd sffff8000`56fbf840 c0000010 fffff803 000000......
STATUS_DELETE_PENDING
STATUS_DELETE_PENDING的官方解释为:A non-close operation has been requested of a file object that has a delete pending.这里指在进行文件操作时,出现了一种情况:请求对一个文件对象执行非关闭操作,......
GetSystemPowerStatus获取交流还是电池供电及电池状态信息
GetSystemPowerStatus 函数返回系统电源的一个电量状态,这个状态显示系统是否运行在AC(交流电)或者DC(直流电)电流下。电池当前是否在充电或者电量的剩余使用时间。BOOL GetSystemPowerStatus( LPSYSTEM_POWER_STATUS lpSyst......
使用SetSuspendState一键休眠
SetSuspendState 是一个 Windows 系统函数,用于将计算机切换到挂起状态(suspend)。它可以在程序中调用以实现将计算机设置为睡眠状态(hibernate)或待机状态(standby)。该函数通常用于系统管理或电源管理软件中。在 PowerShell 脚本或命令行中,可以使......
使用SetThreadExecutionState阻止系统进入睡眠状态或程序运行时关闭显示器
// Television recording is beginning. Enable away mode and prevent// the sleep idle time-out.//SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_RE......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!