zoukankan      html  css  js  c++  java
  • _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

  • 相关阅读:
    李阳疯狂英语精选365句
    线程 notify,与notifyAll 的区别
    关于Logger,Tomcat 的Logger是如何工作的
    知豆 源
    关于好多继承的问题,我们应该如何去理解
    5+1+2
    wu xing
    ALBPM Time Question
    推荐书集
    “疯狂”的定义
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167971.html
Copyright © 2011-2022 走看看