source: CIVL/include/headers/stdio.h@ 1aaefd4

main test-branch
Last change on this file since 1aaefd4 was ea777aa, checked in by Alex Wilton <awilton@…>, 3 years ago

Moved examples, include, build_default.properties, common.xml, and README out from dev.civl.com into the root of the repo.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5704 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 5.3 KB
Line 
1/* The header stdio.h defines several macros, and declares three types and many
2 * functions for performing input and output.
3 */
4#ifndef _STDIO_
5#define _STDIO_
6
7#include<civl-stdio.cvh>
8
9/* Needed from stdarg.h: */
10
11#include <stdarg.h>
12#pragma CIVL ACSL
13/* Types */
14
15typedef unsigned long int size_t;
16
17typedef int fpos_t;
18
19/* Macros */
20
21#ifndef NULL
22#define NULL ((void*)0)
23#endif
24#define _IOFBF 1
25#define _IOLBF 2
26#define _IONBF 3
27#define BUFSIZ 100
28#define EOF (-100)
29#define FOPEN_MAX 100
30#define FILENAME_MAX 500
31#define L_tmpnam 500
32#define SEEK_CUR 1
33#define SEEK_END 2
34#define SEEK_SET 3
35#define TMP_MAX 100
36//#define stdin (FILE*)0
37//#define stdout (FILE*)1
38//#define stderr (FILE*)2
39
40/* external variables */
41
42extern FILE * stdout;
43extern FILE * stdin;
44extern FILE * stderr;
45
46/* Functions */
47
48int remove(const char *filename);
49int rename(const char *old, const char *new);
50FILE *tmpfile(void);
51char *tmpnam(char *s);
52/*@ depends_on \access(stream);
53 @ executes_when \true;
54 @*/
55$system int fclose(FILE *stream);
56/*@ depends_on \access(stream);
57 @ executes_when \true;
58 @*/
59$system int fflush(FILE *stream);
60FILE *fopen(const char * restrict filename,
61 const char * restrict mode);
62FILE *freopen(const char * restrict filename,
63 const char * restrict mode,
64 FILE * restrict stream);
65void setbuf(FILE * restrict stream,
66 char * restrict buf);
67int setvbuf(FILE * restrict stream,
68 char * restrict buf,
69 int mode, size_t size);
70/*@ depends_on \access(stream, format);
71 @ executes_when \true;
72 @*/
73$system int fprintf(FILE * restrict stream,
74 const char * restrict format, ...);
75/*@ depends_on \access(stream, format);
76 @ executes_when \true;
77 @*/
78$system int fscanf(FILE * restrict stream,
79 const char * restrict format, ...);
80/*@ depends_on \access(format);
81 @ executes_when \true;
82 @*/
83$system int printf(const char * restrict format, ...);
84/*@ depends_on \access(format);
85 @ executes_when \true;
86 @*/
87$system int scanf(const char * restrict format, ...);
88int snprintf(char * restrict s, size_t n,
89 const char * restrict format, ...);
90$system int sprintf(char * restrict s,
91 const char * restrict format, ...);
92/*@ depends_on \access(s, format);
93 @ executes_when \true;
94 @*/
95$system int sscanf(const char * restrict s,
96 const char * restrict format, ...);
97int vfprintf(FILE * restrict stream,
98 const char * restrict format, va_list arg);
99int vfscanf(FILE * restrict stream,
100 const char * restrict format, va_list arg);
101int vprintf(const char * restrict format, va_list arg);
102int vscanf(const char * restrict format, va_list arg);
103int vsnprintf(char * restrict s, size_t n,
104 const char * restrict format, va_list arg);
105int vsprintf(char * restrict s,
106 const char * restrict format, va_list arg);
107int vsscanf(const char * restrict s,
108 const char * restrict format, va_list arg);
109int fgetc(FILE *stream);
110$system char *fgets(char * restrict s, int n,
111 FILE * restrict stream);
112int fputc(int c, FILE *stream);
113int fputs(const char * restrict s,
114 FILE * restrict stream);
115int getc(FILE *stream);
116int getchar(void);
117int putc(int c, FILE *stream);
118int putchar(int c);
119int puts(const char *s);
120int ungetc(int c, FILE *stream);
121size_t fread(void * restrict ptr,
122 size_t size, size_t nmemb,
123 FILE * restrict stream);
124size_t fwrite(const void * restrict ptr,
125 size_t size, size_t nmemb,
126 FILE * restrict stream);
127int fgetpos(FILE * restrict stream,
128 fpos_t * restrict pos);
129int fseek(FILE *stream, long int offset, int whence);
130int fsetpos(FILE *stream, const fpos_t *pos);
131long int ftell(FILE *stream);
132void rewind(FILE *stream);
133void clearerr(FILE *stream);
134int feof(FILE *stream);
135int ferror(FILE *stream);
136void perror(const char *s);
137
138/* Optional Extensions */
139
140#define __STDC_WANT_LIB_EXT1__ 1
141#define L_tmpnam_s 100
142#define TMP_MAX_S 100
143typedef int errno_t;
144typedef size_t rsize_t;
145errno_t tmpfile_s(FILE * restrict * restrict streamptr);
146errno_t tmpnam_s(char *s, rsize_t maxsize);
147errno_t fopen_s(FILE * restrict * restrict streamptr,
148 const char * restrict filename,
149 const char * restrict mode);
150errno_t freopen_s(FILE * restrict * restrict newstreamptr,
151 const char * restrict filename,
152 const char * restrict mode,
153 FILE * restrict stream);
154int fprintf_s(FILE * restrict stream,
155 const char * restrict format, ...);
156int fscanf_s(FILE * restrict stream,
157 const char * restrict format, ...);
158int printf_s(const char * restrict format, ...);
159int scanf_s(const char * restrict format, ...);
160int snprintf_s(char * restrict s, rsize_t n,
161 const char * restrict format, ...);
162int sprintf_s(char * restrict s, rsize_t n,
163 const char * restrict format, ...);
164int sscanf_s(const char * restrict s,
165 const char * restrict format, ...);
166int vfprintf_s(FILE * restrict stream,
167 const char * restrict format,
168 va_list arg);
169int vfscanf_s(FILE * restrict stream,
170 const char * restrict format,
171 va_list arg);
172int vprintf_s(const char * restrict format,
173 va_list arg);
174int vscanf_s(const char * restrict format,
175 va_list arg);
176int vsnprintf_s(char * restrict s, rsize_t n,
177 const char * restrict format,
178 va_list arg);
179int vsprintf_s(char * restrict s, rsize_t n,
180 const char * restrict format,
181 va_list arg);
182int vsscanf_s(const char * restrict s,
183 const char * restrict format,
184 va_list arg);
185char *gets_s(char *s, rsize_t n);
186
187#endif
Note: See TracBrowser for help on using the repository browser.