]> git.llucax.com Git - software/druntime.git/blob - import/core/sys/posix/stdio.d
Added static data segment support to the new Runtime.loadLibrary() features. This...
[software/druntime.git] / import / core / sys / posix / stdio.d
1 /**
2  * D header file for POSIX.
3  *
4  * Copyright: Public Domain
5  * License:   Public Domain
6  * Authors:   Sean Kelly
7  * Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
8  */
9 module core.sys.posix.stdio;
10
11 private import core.sys.posix.config;
12 public import core.stdc.stdio;
13 public import core.sys.posix.sys.types; // for off_t
14
15 extern (C):
16
17 //
18 // Required (defined in core.stdc.stdio)
19 //
20 /*
21 BUFSIZ
22 _IOFBF
23 _IOLBF
24 _IONBF
25 L_tmpnam
26 SEEK_CUR
27 SEEK_END
28 SEEK_SET
29 FILENAME_MAX
30 FOPEN_MAX
31 TMP_MAX
32 EOF
33 NULL
34 stderr
35 stdin
36 stdout
37 FILE
38 fpos_t
39 size_t
40
41 void   clearerr(FILE*);
42 int    fclose(FILE*);
43 int    feof(FILE*);
44 int    ferror(FILE*);
45 int    fflush(FILE*);
46 int    fgetc(FILE*);
47 int    fgetpos(FILE*, fpos_t *);
48 char*  fgets(char*, int, FILE*);
49 FILE*  fopen(in char*, in char*);
50 int    fprintf(FILE*, in char*, ...);
51 int    fputc(int, FILE*);
52 int    fputs(in char*, FILE*);
53 size_t fread(void *, size_t, size_t, FILE*);
54 FILE*  freopen(in char*, in char*, FILE*);
55 int    fscanf(FILE*, in char*, ...);
56 int    fseek(FILE*, c_long, int);
57 int    fsetpos(FILE*, in fpos_t*);
58 c_long ftell(FILE*);
59 size_t fwrite(in void *, size_t, size_t, FILE*);
60 int    getc(FILE*);
61 int    getchar();
62 char*  gets(char*);
63 void   perror(in char*);
64 int    printf(in char*, ...);
65 int    putc(int, FILE*);
66 int    putchar(int);
67 int    puts(in char*);
68 int    remove(in char*);
69 int    rename(in char*, in char*);
70 void   rewind(FILE*);
71 int    scanf(in char*, ...);
72 void   setbuf(FILE*, char*);
73 int    setvbuf(FILE*, char*, int, size_t);
74 int    snprintf(char*, size_t, in char*, ...);
75 int    sprintf(char*, in char*, ...);
76 int    sscanf(in char*, in char*, int ...);
77 FILE*  tmpfile();
78 char*  tmpnam(char*);
79 int    ungetc(int, FILE*);
80 int    vfprintf(FILE*, in char*, va_list);
81 int    vfscanf(FILE*, in char*, va_list);
82 int    vprintf(in char*, va_list);
83 int    vscanf(in char*, va_list);
84 int    vsnprintf(char*, size_t, in char*, va_list);
85 int    vsprintf(char*, in char*, va_list);
86 int    vsscanf(in char*, in char*, va_list arg);
87 */
88
89 version( linux )
90 {
91     static if( __USE_LARGEFILE64 )
92     {
93         int   fgetpos64(FILE*, fpos_t *);
94         alias fgetpos64 fgetpos;
95
96         FILE* fopen64(in char*, in char*);
97         alias fopen64 fopen;
98
99         FILE* freopen64(in char*, in char*, FILE*);
100         alias freopen64 freopen;
101
102         int   fseek64(FILE*, c_long, int);
103         alias fseek64 fseek;
104
105         int   fsetpos64(FILE*, in fpos_t*);
106         alias fsetpos64 fsetpos;
107
108         FILE* tmpfile64();
109         alias tmpfile64 tmpfile;
110     }
111     else
112     {
113         int   fgetpos(FILE*, fpos_t *);
114         FILE* fopen(in char*, in char*);
115         FILE* freopen(in char*, in char*, FILE*);
116         int   fseek(FILE*, c_long, int);
117         int   fsetpos(FILE*, in fpos_t*);
118         FILE* tmpfile();
119     }
120 }
121
122 //
123 // C Extension (CX)
124 //
125 /*
126 L_ctermid
127
128 char*  ctermid(char*);
129 FILE*  fdopen(int, in char*);
130 int    fileno(FILE*);
131 int    fseeko(FILE*, off_t, int);
132 off_t  ftello(FILE*);
133 char*  gets(char*);
134 FILE*  popen(in char*, in char*);
135 */
136
137 version( linux )
138 {
139     const L_ctermid = 9;
140
141   static if( __USE_FILE_OFFSET64 )
142   {
143     int   fseeko64(FILE*, off_t, int);
144     alias fseeko64 fseeko;
145   }
146   else
147   {
148     int   fseeko(FILE*, off_t, int);
149   }
150
151   static if( __USE_LARGEFILE64 )
152   {
153     off_t ftello64(FILE*);
154     alias ftello64 ftello;
155   }
156   else
157   {
158     off_t ftello(FILE*);
159   }
160 }
161 else
162 {
163     int   fseeko(FILE*, off_t, int);
164     off_t ftello(FILE*);
165 }
166
167 char*  ctermid(char*);
168 FILE*  fdopen(int, in char*);
169 int    fileno(FILE*);
170 //int    fseeko(FILE*, off_t, int);
171 //off_t  ftello(FILE*);
172 char*  gets(char*);
173 FILE*  popen(in char*, in char*);
174
175 //
176 // Thread-Safe Functions (TSF)
177 //
178 /*
179 void   flockfile(FILE*);
180 int    ftrylockfile(FILE*);
181 void   funlockfile(FILE*);
182 int    getc_unlocked(FILE*);
183 int    getchar_unlocked();
184 int    putc_unlocked(int, FILE*);
185 int    putchar_unlocked(int);
186 */
187
188 version( linux )
189 {
190     void   flockfile(FILE*);
191     int    ftrylockfile(FILE*);
192     void   funlockfile(FILE*);
193     int    getc_unlocked(FILE*);
194     int    getchar_unlocked();
195     int    putc_unlocked(int, FILE*);
196     int    putchar_unlocked(int);
197 }
198
199 //
200 // XOpen (XSI)
201 //
202 /*
203 P_tmpdir
204 va_list (defined in core.stdc.stdarg)
205
206 char*  tempnam(in char*, in char*);
207 */
208
209 version( linux )
210 {
211     const P_tmpdir  = "/tmp";
212
213     char*  tempnam(in char*, in char*);
214 }