📄 z-stat.h
字号:
#ifndef __amiga_z_stat_h#define __amiga_z_stat_h/* Since older versions of the Lattice C compiler for Amiga, and all current *//* versions of the Manx Aztec C compiler for Amiga, either provide no stat() *//* function or provide one inadequate for unzip (Aztec's has no st_mode *//* field), we provide our own stat() function in stat.c by Paul Wells, and *//* this fake stat.h file by Paul Kienitz. Paul Wells originally used the *//* Lattice stat.h but that does not work for Aztec and is not distributable *//* with this package, so I made a separate one. This has to be pulled into *//* unzip.h when compiling an Amiga version, as "amiga/z-stat.h". *//* We also provide here a "struct dirent" for use with opendir() & readdir() *//* functions included in amiga/stat.c. If you use amiga/stat.c, this must *//* be included wherever you use either readdir() or stat(). */#ifdef AZTEC_C# define __STAT_H#else /* __SASC *//* do not include the following header, replacement definitions are here */# define _STAT_H /* do not include SAS/C <stat.h> */# define _DIRENT_H /* do not include SAS/C <dirent.h> */# define _SYS_DIR_H /* do not include SAS/C <sys/dir.h> */# define _COMMIFMT_H /* do not include SAS/C <sys/commifmt.h> */# include <dos.h>#endif#include <libraries/dos.h>#include "amiga/z-time.h"struct stat { unsigned short st_mode; time_t st_ctime, st_atime, st_mtime; long st_size; long st_ino; long st_blocks; short st_attr, st_dev, st_nlink, st_uid, st_gid, st_rdev;};#define S_IFDIR (1<<11)#define S_IFREG (1<<10)#if 0 /* these values here are totally random: */# define S_IFLNK (1<<14)# define S_IFSOCK (1<<13)# define S_IFCHR (1<<8)# define S_IFIFO (1<<7)# define S_IFMT (S_IFDIR|S_IFREG|S_IFCHR|S_IFLNK)#else# define S_IFMT (S_IFDIR|S_IFREG)#endif#define S_IHIDDEN (1<<7)#define S_ISCRIPT (1<<6)#define S_IPURE (1<<5)#define S_IARCHIVE (1<<4)#define S_IREAD (1<<3)#define S_IWRITE (1<<2)#define S_IEXECUTE (1<<1)#define S_IDELETE (1<<0)int stat(char *name, struct stat *buf);int fstat(int handle, struct stat *buf); /* returns dummy values */typedef struct dirent { struct dirent *d_cleanuplink, **d_cleanupparent; BPTR d_parentlock; struct FileInfoBlock d_fib;} DIR;#define d_name d_fib.fib_FileNameextern unsigned short disk_not_mounted; /* flag set by opendir() */DIR *opendir(char *);void closedir(DIR *);void close_leftover_open_dirs(void); /* call this if aborted in mid-run */struct dirent *readdir(DIR *);int umask(void);#ifdef AZTEC_Cint rmdir(char *);int chmod(char *filename, int bits);#endif#endif /* __amiga_z_stat_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -