• _stati64()获取文件信息


     

    Get status information on a file.

    int _stat( const char *path, struct _stat *buffer );

    __int64 _stati64( const char *path, struct _stat *buffer );

    int _wstat( const wchar_t *path, struct _stat *buffer );

    __int64 _wstati64( const wchar_t *path, struct _stat *buffer );

    Routine Required Header Optional Headers Compatibility
    _stat <sys/types.h> followed by <sys/stat.h> <errno.h> Win 95, Win NT
    _wstat <sys/types.h> followed by <sys/stat.h> or <wchar.h> <errno.h> Win NT
    _stati64 <sys/types.h> followed by <sys/stat.h> <errno.h> Win 95, Win NT
    _wstati64 <sys/types.h> followed by <sys/stat.h> or <wchar.h> <errno.h> Win NT

    For additional compatibility information, see Compatibility in the Introduction.

    Libraries

    LIBC.LIB Single thread static library, retail version
    LIBCMT.LIB Multithread static library, retail version
    MSVCRT.LIB Import library for MSVCRT.DLL, retail version

    Return Value

    Each of these functions returns 0 if the file-status information is obtained. A return value of –1 indicates an error, in which case errno is set to ENOENT, indicating that the filename or path could not be found.

    Parameters

    path

    Path of existing file

    buffer

    Pointer to structure that stores results

    Remarks

    The _stat function obtains information about the file or directory specified by path and stores it in the structure pointed to by buffer. _stat automatically handles multibyte-character string arguments as appropriate, recognizing multibyte-character sequences according to the multibyte code page currently in use.

    _wstat is a wide-character version of _stat; the path argument to _wstat is a wide-character string. _wstat and _stat behave identically except that _wstat does not handle multibyte-character strings.

    Generic-Text Routine Mappings

    TCHAR.H Routine _UNICODE & _MBCS Not Defined _MBCS Defined _UNICODE Defined
    _tstat _stat _stat _wstat
    _tstati64 _stati64 _stati64 _wstati64

    The _stat structure, defined in SYS/STAT.H, includes the following fields.

    st_gid

    Numeric identifier of group that owns file (UNIX-specific) This field will always be zero on NT systems. A redirected file is classified as an NT file.

    st_atime

    Time of last access of file.

    st_ctime

    Time of creation of file.

    st_dev

    Drive number of the disk containing the file (same as st_rdev).

    st_ino

    Number of the information node (the inode) for the file (UNIX-specific). On UNIX file systems, the inode describes the file date and time stamps, permissions, and content. When files are hard-linked to one another, they share the same inode. The inode, and therefore st_ino, has no meaning in the FAT, HPFS, or NTFS file systems.

    st_mode

    Bit mask for file-mode information. The _S_IFDIR bit is set if path specifies a directory; the _S_IFREG bit is set if path specifies an ordinary file or a device. User read/write bits are set according to the file’s permission mode; user execute bits are set according to the filename extension.

    st_mtime

    Time of last modification of file.

    st_nlink

    Always 1 on non-NTFS file systems.

    st_rdev

    Drive number of the disk containing the file (same as st_dev).

    st_size

    Size of the file in bytes; a 64-bit integer for _stati64 and _wstati64

    st_uid

    Numeric identifier of user who owns file (UNIX-specific). This field will always be zero on NT systems. A redirected file is classified as an NT file.

    If path refers to a device, the size, time, _dev, and _rdev fields in the _stat structure are meaningless. Because STAT.H uses the _dev_t type that is defined in TYPES.H, you must include TYPES.H before STAT.H in your code.

    Example

    /* STAT.C: This program uses the _stat function to
     * report information about the file named STAT.C.
     */
    
    #include <time.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <stdio.h>
    
    void main( void )
    {
       struct _stat buf;
       int result;
       char buffer[] = "A line to output";
    
       /* Get data associated with "stat.c": */
       result = _stat( "stat.c", &buf );
    
       /* Check if statistics are valid: */
       if( result != 0 )
          perror( "Problem getting information" );
       else
       {
          /* Output some of the statistics: */
          printf( "File size     : %ld/n", buf.st_size );
          printf( "Drive         : %c:/n", buf.st_dev + 'A' );
          printf( "Time modified : %s", ctime( &buf.st_atime ) );
       }
    }
    
    

    Output

    File size     : 745
    Drive         : C:
    Time modified : Tue May 03 00:00:00 1994
    
    

    File Handling Routines

    See Also   _access, _fstat, _getmbcp, _setmbcp

  • 相关阅读:
    dig批量获取域名对应IP
    文件和目录
    Linux程序设计的CD唱片应用程序
    LinuxRedhat7.0虚拟机配置双网卡
    Redhat7.0计划任务服务程序(at,crontab)
    RedHat7 修改主机名称 配置网卡信息 配置Yum软件仓库
    关于RedHat5.0不能提示找不到/media/cdrom/repodate/repomd.xml
    Redhat5静态IP分配,提示Error, some other host already uses address解决办法
    三种时间戳的解释
    RHEL 7 -解决“没有启用回购”消息
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167971.html
Copyright © 2020-2023  润新知