首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WIN32 上的 struct __stat64 和 struct _stati64 有什么区别?

在Windows 32位系统上,struct __stat64struct _stati64都是用于存储文件状态信息的结构体。它们之间的主要区别在于处理大文件时所需的64位文件长度。

  1. struct __stat64

struct __stat64结构体包含了一个64位的文件长度字段,因此它可以处理最大2^63-1字节的文件。这个结构体在Windows上主要用于处理大文件,例如超过2GB的文件。

代码语言:c
复制
struct __stat64 {
    _dev_t st_dev;
    _ino_t st_ino;
    unsigned short st_mode;
    short st_nlink;
    short st_uid;
    short st_gid;
    _dev_t st_rdev;
    __int64 st_size;
    __time64_t st_atime;
    __time64_t st_mtime;
    __time64_t st_ctime;
};
  1. struct _stati64

struct _stati64结构体也包含了一个64位的文件长度字段,因此它也可以处理最大2^63-1字节的文件。与struct __stat64相比,struct _stati64结构体主要用于处理UNIX风格的文件系统。

代码语言:c
复制
struct _stati64 {
    _dev_t st_dev;
    _ino_t st_ino;
    unsigned short st_mode;
    short st_nlink;
    short st_uid;
    short st_gid;
    _dev_t st_rdev;
    __int64 st_size;
    time_t st_atime;
    time_t st_mtime;
    time_t st_ctime;
};

总结:struct __stat64struct _stati64都是用于处理大文件的结构体,它们的主要区别在于处理UNIX风格文件系统的差异。在实际编程中,根据需要选择合适的结构体即可。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【DB笔试面试258】在Oracle中,执行计划里的access和filter有什么区别(上)?

    题目如下所示: 在Oracle中,执行计划里的access和filter有什么区别?...MGR" IS NOT NULL) 一般而言,access表示这个谓词条件的值将会影响数据的访问路径(表还是索引);filter表示谓词条件的值不会影响数据的访问路劲,只起到过滤的作用。...但是一旦重复匹配的较少,循环次数多,那么,filter操作将是严重影响性能的操作,可能会导致目标SQL几天都执行不完。...操作只有一个子节点ID2,在这种情况下的filter操作也就是单纯的过滤操作。...(二)多子节点: filter多子节点往往就是性能杀手,主要出现在子查询无法UNNEST查询转换,经常遇到的情况就是NOT IN子查询、子查询和OR连用、复杂子查询等情况。

    1.3K20

    cmake:find_package查找pthread for win32的实现脚本

    官方也没有提供,所以如果在cmake中要查找pthread for win32的库,就得自己实现,我参照FindJPEG.cmake自己写了个查找脚本FindPTHREADW32。...cmake官方提供的FindJPEG.cmake非常简单,只输出了include文件夹位置和JPEG库文件(JPEG_INCLUDE_DIR和JPEG_LIBRARIES),在写FindPTHREADW32...时,为了更方便的引用库,在输出PTHREADW32_INCLUDE_DIR和PTHREADW32_LIBRARY变量的基础上,还提供了imported target:pthreadw32, 有了imported...) return() endif() # 检查编译器是否支持pthread如果支持就返回, # POSIX版本的MinGW原生支持pthread,不需要额外的pthread for win32库 include...("struct timespec" tv_sec time.h HAVE_STRUCT_TIMESPEC LANGUAGE C ) if(HAVE_STRUCT_TIMESPEC) set_target_properties

    95510

    Linux 系统调用

    这些接口在应用程序和内核之间扮演了使者的角色,应用程序发出各种请求,而内核负责满足这些请求(或者无法满足时返回一个错误)。实际上提供这些接口主要是为了保证系统稳定可靠,避免应用程序恣意妄行。...与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层。该层主要作用有三个。 首先,它为用户空间提供了一种硬件的抽象接口。...作为硬件设备和应用程序之间的中间人,内核可以基于权限、用户类型和其他一些规则对需要进行的访问进行裁决。...在 Linux 中,系统调用是用户空间访问内核的唯一手段﹔除异常和陷入外,它们是内核唯一的合法入口。实际上,其他的像设备文件和/proc之类的方式,最终也还是要通过系统调用进行访问的。...函数返回 long,为了保证 32 位和 64 位系统的兼容,系统调用在用户空间和内核空间有不同的返回值类型,在用户空间为 int,在内核空间为 long。

    9.9K20

    几种服务器端IO模型的简单介绍及实现(上)

    一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程触发I/O操作以后便开始做自己的事情,而当...阻塞和非阻塞 阻塞和非阻塞是针对于进程在访问数据的时候,根据I/O操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值...在多线程的基础上,可以考虑使用“线程池”或“连接池”,“线程池”旨在减少创建和销毁线程的频率,其维持一定合理数量的线程,并让空闲的线程重新承担新的执行任务。...4、多路复用IO 支持I/O复用的系统调用有select、poll、epoll、kqueue等, 这里以Select函数为例,select函数用于探测多个文件句柄的状态变化,以下为一个使用了使用了Select...遗憾的是不同的操作系统特供的 epoll 接口有很大差异,所以使用类似于 epoll 的接口实现具有较好跨平台能力的服务器会比较困难。

    89770

    几种服务器端IO模型的简单介绍及实现(上)

    一些概念: 同步和异步 同步和异步是针对应用程序和内核的交互而言的,同步指的是用户进程触发I/O操作并等待或者轮询的去查看I/O操作是否就绪,而异步是指用户进程触发I/O操作以后便开始做自己的事情,而当...阻塞和非阻塞 阻塞和非阻塞是针对于进程在访问数据的时候,根据I/O操作的就绪状态来采取的不同方式,说白了是一种读取或者写入操作函数的实现方式,阻塞方式下读取或者写入函数将一直等待,而非阻塞方式下,读取或者写入函数会立即返回一个状态值...在多线程的基础上,可以考虑使用“线程池”或“连接池”,“线程池”旨在减少创建和销毁线程的频率,其维持一定合理数量的线程,并让空闲的线程重新承担新的执行任务。...4、多路复用IO 支持I/O复用的系统调用有select、poll、epoll、kqueue等, 这里以Select函数为例,select函数用于探测多个文件句柄的状态变化,以下为一个使用了使用了Select...遗憾的是不同的操作系统特供的 epoll 接口有很大差异,所以使用类似于 epoll 的接口实现具有较好跨平台能力的服务器会比较困难。

    1K80

    Win32C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt)

    在 Windows 上有 GDI+ 来操作位图,不止能完成很多的位图操作,还提供了与 Win32 窗口的互操作,可以截到 Win32 窗口的图片。 如果你希望对窗口截图,那么可使用本文提供的方法。...Win32 互操作需要用到的数据结构,所以本文代码中只会列出库中暂时没有的(不然代码太多了)。...var hBitmap = Gdi32.CreateCompatibleBitmap(wdc, width, height); // 关联兼容位图和兼容内存,不这么做,下面的像素位块(bit_block...) where T : struct { int size = Marshal.SizeOf(@struct); byte[] data = new byte[size]; IntPtr...更多截窗口方法 Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) - walterlv (本文)Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) - walterlv

    74220

    Internet Explorer漏洞分析(三)——VBScript Scripting Engine初探

    Internet Explorer漏洞分析(三)[上]——VBScript Scripting Engine初探 1.本文一共1514个字 28张图 预计阅读时间10分钟2.本文作者erfze 属于Gcow...安全团队复眼小组 未经过许可禁止转载3.本篇文章是文章Internet Explorer漏洞分析(三)[下]——CVE-2014-6332的前置知识,对vbscrip.dll组件进行逆向分析,以及VBScript...数据类型,数组,VarType函数,LenB函数详细分析,并介绍VBS脚本调试技巧4.本篇文章十分适合漏洞安全研究人员进行交流学习5.若文章中存在说得不清楚或者错误的地方 欢迎师傅到公众号后台留言中指出...其结构定义如下: typedef struct tagVARIANT { union { struct { VARTYPE vt; WORD wReserved1;...图6 传递给函数的参数有二——cDims对应维数,VAR对应n。cDims应介于1-64: ? 图7 先来看一维数组的创建: ? 图8 为rgsabound结构各字段赋值: ?

    91210

    从Win服务启动UI程序

    ,我想这篇文章介绍的应该比我权威的多。...Session隔离介绍 明白了Session的概念后,我将通过Win32 API来实现从windows服务启动一个带UI的界面(从Session 0中启动Session *的程序),这个实现过程是我从...实现的思路 找到一个除Session 0之外的活动Session 通过Session ID获取用户Token 通过Token来启动UI程序 涉及的Win32 API WTSGetActiveConsoleSessionId...return isOk; } } # 枚举活动Session ID 之前我们通过WTSGetActiveConsoleSessionId获取活动Session ID,当有多个用户登录时...主要涉及API WTSEnumerateSessions 检索在远程桌面会话主机 (RD 会话主机) 服务器上的会话的列表。 WTSFreeMemory 释放由远程桌面服务函数分配的内存。

    1.1K30
    领券