mirror of
https://github.com/dlang/phobos.git
synced 2025-04-29 22:50:38 +03:00
266 lines
5.6 KiB
D
266 lines
5.6 KiB
D
|
|
module std.c.stdio;
|
|
|
|
extern (C):
|
|
|
|
version (Win32)
|
|
{
|
|
const int _NFILE = 60;
|
|
const int BUFSIZ = 0x4000;
|
|
const int EOF = -1;
|
|
const int FOPEN_MAX = 20;
|
|
const int FILENAME_MAX = 256; // 255 plus NULL
|
|
const int TMP_MAX = 32767;
|
|
const int _SYS_OPEN = 20;
|
|
const int SYS_OPEN = _SYS_OPEN;
|
|
const wchar WEOF = 0xFFFF;
|
|
}
|
|
|
|
version (linux)
|
|
{
|
|
const int EOF = -1;
|
|
const int FOPEN_MAX = 16;
|
|
const int FILENAME_MAX = 4095;
|
|
const int TMP_MAX = 238328;
|
|
const int L_tmpnam = 20;
|
|
}
|
|
|
|
enum { SEEK_SET, SEEK_CUR, SEEK_END }
|
|
|
|
alias uint size_t;
|
|
|
|
struct _iobuf
|
|
{
|
|
align (1):
|
|
version (Win32)
|
|
{
|
|
char *_ptr;
|
|
int _cnt;
|
|
char *_base;
|
|
int _flag;
|
|
int _file;
|
|
int _charbuf;
|
|
int _bufsiz;
|
|
int __tmpnum;
|
|
}
|
|
version (linux)
|
|
{
|
|
char* _read_ptr;
|
|
char* _read_end;
|
|
char* _read_base;
|
|
char* _write_base;
|
|
char* _write_ptr;
|
|
char* _write_end;
|
|
char* _buf_base;
|
|
char* _buf_end;
|
|
char* _save_base;
|
|
char* _backup_base;
|
|
char* _save_end;
|
|
void* _markers;
|
|
_iobuf* _chain;
|
|
int _fileno;
|
|
int _blksize;
|
|
int _old_offset;
|
|
ushort _cur_column;
|
|
byte _vtable_offset;
|
|
char[1] _shortbuf;
|
|
void* _lock;
|
|
}
|
|
}
|
|
|
|
alias _iobuf FILE;
|
|
|
|
enum
|
|
{
|
|
_F_RDWR = 0x0003,
|
|
_F_READ = 0x0001,
|
|
_F_WRIT = 0x0002,
|
|
_F_BUF = 0x0004,
|
|
_F_LBUF = 0x0008,
|
|
_F_ERR = 0x0010,
|
|
_F_EOF = 0x0020,
|
|
_F_BIN = 0x0040,
|
|
_F_IN = 0x0080,
|
|
_F_OUT = 0x0100,
|
|
_F_TERM = 0x0200,
|
|
}
|
|
|
|
version (Win32)
|
|
{
|
|
FILE _iob[_NFILE]; // BUG: should be extern
|
|
}
|
|
|
|
version (Win32)
|
|
{
|
|
enum
|
|
{
|
|
_IOREAD = 1,
|
|
_IOWRT = 2,
|
|
_IONBF = 4,
|
|
_IOMYBUF = 8,
|
|
_IOEOF = 0x10,
|
|
_IOERR = 0x20,
|
|
_IOLBF = 0x40,
|
|
_IOSTRG = 0x40,
|
|
_IORW = 0x80,
|
|
_IOFBF = 0,
|
|
_IOAPP = 0x200,
|
|
_IOTRAN = 0x100,
|
|
}
|
|
}
|
|
|
|
version (linux)
|
|
{
|
|
enum
|
|
{
|
|
_IOFBF = 0,
|
|
_IOLBF = 1,
|
|
_IONBF = 2,
|
|
}
|
|
}
|
|
|
|
version (Win32)
|
|
{
|
|
const FILE *stdin = &_iob[0];
|
|
const FILE *stdout = &_iob[1];
|
|
const FILE *stderr = &_iob[2];
|
|
const FILE *stdaux = &_iob[3];
|
|
const FILE *stdprn = &_iob[4];
|
|
}
|
|
|
|
version (linux)
|
|
{
|
|
FILE *stdin;
|
|
FILE *stdout;
|
|
FILE *stderr;
|
|
}
|
|
|
|
version (Win32)
|
|
{
|
|
const char[] _P_tmpdir = "\\";
|
|
const wchar[] _wP_tmpdir = "\\";
|
|
const int L_tmpnam = _P_tmpdir.length + 12;
|
|
}
|
|
|
|
alias int fpos_t;
|
|
|
|
alias ubyte* va_list;
|
|
|
|
char * tmpnam(char *);
|
|
FILE * fopen(char *,char *);
|
|
FILE * _fsopen(char *,char *,int );
|
|
FILE * freopen(char *,char *,FILE *);
|
|
int fseek(FILE *,int,int);
|
|
int ftell(FILE *);
|
|
char * fgets(char *,int,FILE *);
|
|
int fgetc(FILE *);
|
|
int _fgetchar();
|
|
int fflush(FILE *);
|
|
int fclose(FILE *);
|
|
int fputs(char *,FILE *);
|
|
char * gets(char *);
|
|
int fputc(int,FILE *);
|
|
int _fputchar(int);
|
|
int puts(char *);
|
|
int ungetc(int,FILE *);
|
|
size_t fread(void *,size_t,size_t,FILE *);
|
|
size_t fwrite(void *,size_t,size_t,FILE *);
|
|
//int printf(char *,...);
|
|
int fprintf(FILE *,char *,...);
|
|
int vfprintf(FILE *,char *,va_list);
|
|
int vprintf(char *,va_list);
|
|
int sprintf(char *,char *,...);
|
|
int vsprintf(char *,char *,va_list);
|
|
int scanf(char *,...);
|
|
int fscanf(FILE *,char *,...);
|
|
int sscanf(char *,char *,...);
|
|
void setbuf(FILE *,char *);
|
|
int setvbuf(FILE *,char *,int,size_t);
|
|
int remove(char *);
|
|
int rename(char *,char *);
|
|
void perror(char *);
|
|
int fgetpos(FILE *,fpos_t *);
|
|
int fsetpos(FILE *,fpos_t *);
|
|
FILE * tmpfile();
|
|
int _rmtmp();
|
|
int _fillbuf(FILE *);
|
|
int _flushbu(int, FILE *);
|
|
|
|
int getw(FILE *FHdl);
|
|
int putw(int Word, FILE *FilePtr);
|
|
|
|
int getchar() { return getc(stdin); }
|
|
int putchar(int c) { return putc(c,stdout); }
|
|
int getc(FILE *fp) { return fgetc(fp); }
|
|
int putc(int c,FILE *fp) { return fputc(c,fp); }
|
|
|
|
version (Win32)
|
|
{
|
|
int ferror(FILE *fp) { return fp._flag&_IOERR; }
|
|
int feof(FILE *fp) { return fp._flag&_IOEOF; }
|
|
void clearerr(FILE *fp) { fp._flag &= ~(_IOERR|_IOEOF); }
|
|
void rewind(FILE *fp) { fseek(fp,0L,SEEK_SET); fp._flag&=~_IOERR; }
|
|
int _bufsize(FILE *fp) { return fp._bufsiz; }
|
|
int fileno(FILE *fp) { return fp._file; }
|
|
int _snprintf(char *,size_t,char *,...);
|
|
int _vsnprintf(char *,size_t,char *,va_list);
|
|
}
|
|
|
|
version (linux)
|
|
{
|
|
int ferror(FILE *fp);
|
|
int feof(FILE *fp);
|
|
void clearerr(FILE *fp);
|
|
void rewind(FILE *fp);
|
|
int _bufsize(FILE *fp);
|
|
int fileno(FILE *fp);
|
|
int snprintf(char *,size_t,char *,...);
|
|
int vsnprintf(char *,size_t,char *,va_list);
|
|
}
|
|
|
|
int unlink(char *);
|
|
FILE * fdopen(int, char *);
|
|
int fgetchar();
|
|
int fputchar(int);
|
|
int fcloseall();
|
|
int filesize(char *);
|
|
int flushall();
|
|
int getch();
|
|
int getche();
|
|
int kbhit();
|
|
char * tempnam (char *dir, char *pfx);
|
|
|
|
wchar * _wtmpnam(wchar *);
|
|
FILE * _wfopen(wchar *, wchar *);
|
|
FILE * _wfsopen(wchar *, wchar *, int);
|
|
FILE * _wfreopen(wchar *, wchar *, FILE *);
|
|
wchar * fgetws(wchar *, int, FILE *);
|
|
int fputws(wchar *, FILE *);
|
|
wchar * _getws(wchar *);
|
|
int _putws(wchar *);
|
|
//int wprintf(wchar *, ...);
|
|
int fwprintf(FILE *, wchar *, ...);
|
|
int vwprintf(wchar *, va_list);
|
|
int vfwprintf(FILE *, wchar *, va_list);
|
|
int swprintf(wchar *, wchar *, ...);
|
|
int vswprintf(wchar *, wchar *, va_list);
|
|
int _snwprintf(wchar *, size_t, wchar *, ...);
|
|
int _vsnwprintf(wchar *, size_t, wchar *, va_list);
|
|
int wscanf(wchar *, ...);
|
|
int fwscanf(FILE *, wchar *, ...);
|
|
int swscanf(wchar *, wchar *, ...);
|
|
int _wremove(wchar *);
|
|
void _wperror(wchar *);
|
|
FILE * _wfdopen(int, wchar *);
|
|
wchar * _wtempnam(wchar *, wchar *);
|
|
wchar fgetwc(FILE *);
|
|
wchar _fgetwchar();
|
|
wchar fputwc(wchar, FILE *);
|
|
wchar _fputwchar(wchar);
|
|
wchar ungetwc(wchar, FILE *);
|
|
|
|
wchar getwchar() { return fgetwc(stdin); }
|
|
wchar putwchar(wchar c) { return fputwc(c,stdout); }
|
|
wchar getwc(FILE *fp) { return fgetwc(fp); }
|
|
wchar putwc(wchar c, FILE *fp) { return fputwc(c, fp); }
|
|
|