Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/posix/include/posix/stdio.h

    r1433ecda r4e6a610  
    4040
    4141#include "stddef.h"
    42 #include "unistd.h"
    4342#include "libc/io/verify.h"
    4443#include "sys/types.h"
     
    4645#include "limits.h"
    4746
    48 /*
    49  * These are the same as in HelenOS libc.
    50  * It would be possible to directly include <stdio.h> but
    51  * it is better not to pollute POSIX namespace with other functions
    52  * defined in that header.
    53  *
    54  * Because libposix is always linked with libc, providing only these
    55  * forward declarations ought to be enough.
    56  */
    57 #define EOF (-1)
    58 
    59 /** Size of buffers used in stdio header. */
    60 #define BUFSIZ  4096
    61 
    62 /** Maximum size in bytes of the longest filename. */
    63 #define FILENAME_MAX 4096
    64 
    65 typedef struct _IO_FILE FILE;
    66 
    67 extern FILE *stdin;
    68 extern FILE *stdout;
    69 extern FILE *stderr;
    70 
    71 extern int fgetc(FILE *);
    72 extern char *fgets(char *, int, FILE *);
    73 
    74 extern int getchar(void);
    75 extern char *gets(char *, size_t);
    76 
    77 extern int fputc(wchar_t, FILE *);
    78 extern int fputs(const char *, FILE *);
    79 
    80 extern int putchar(wchar_t);
    81 extern int puts(const char *);
    82 
    83 extern int fprintf(FILE *, const char *, ...) _HELENOS_PRINTF_ATTRIBUTE(2, 3);
    84 extern int vfprintf(FILE *, const char *, va_list);
    85 
    86 extern int printf(const char *, ...) _HELENOS_PRINTF_ATTRIBUTE(1, 2);
    87 extern int vprintf(const char *, va_list);
    88 
    89 extern int snprintf(char *, size_t, const char *, ...) _HELENOS_PRINTF_ATTRIBUTE(3, 4);
    90 #ifdef _GNU_SOURCE
    91 extern int vasprintf(char **, const char *, va_list);
    92 extern int asprintf(char **, const char *, ...) _HELENOS_PRINTF_ATTRIBUTE(2, 3);
    93 #endif
    94 extern int vsnprintf(char *, size_t, const char *, va_list);
    95 
    96 extern FILE *fopen(const char *, const char *);
    9747extern FILE *fdopen(int, const char *);
    98 extern int fclose(FILE *);
    99 
    100 extern size_t fread(void *, size_t, size_t, FILE *);
    101 extern size_t fwrite(const void *, size_t, size_t, FILE *);
    102 
    103 extern void rewind(FILE *);
    104 extern int feof(FILE *);
    10548extern int fileno(FILE *);
    10649
    107 extern int fflush(FILE *);
    108 extern int ferror(FILE *);
    109 extern void clearerr(FILE *);
    110 
    111 extern void setvbuf(FILE *, void *, int, size_t);
    112 extern void setbuf(FILE *, void *);
    113 
    114 /* POSIX specific stuff. */
     50#define P_tmpdir "/tmp"
    11551
    11652/* Identifying the Terminal */
     
    11955extern char *ctermid(char *s);
    12056
    121 /* Error Recovery */
    122 extern void clearerr(FILE *stream);
    123 
    12457/* Input/Output */
    125 #undef putc
    126 #define putc fputc
    127 extern int fputs(const char *__restrict__ s, FILE *__restrict__ stream);
    128 #undef getc
    129 #define getc fgetc
    130 extern int ungetc(int c, FILE *stream);
    13158extern ssize_t getdelim(char **__restrict__ lineptr, size_t *__restrict__ n,
    13259    int delimiter, FILE *__restrict__ stream);
     
    13461    FILE *__restrict__ stream);
    13562
    136 /* Opening Streams */
    137 extern FILE *freopen(const char *__restrict__ filename,
    138     const char *__restrict__ mode, FILE *__restrict__ stream);
    139 
    140 /* Error Messages */
    141 extern void perror(const char *s);
    142 
    143 /* File Positioning */
    144 typedef struct {
    145         off64_t offset;
    146 } fpos_t;
    147 
    148 extern int fsetpos(FILE *stream, const fpos_t *pos);
    149 extern int fgetpos(FILE *__restrict__ stream, fpos_t *__restrict__ pos);
    150 extern int fseek(FILE *stream, long offset, int whence);
    15163extern int fseeko(FILE *stream, off_t offset, int whence);
    152 extern long ftell(FILE *stream);
    15364extern off_t ftello(FILE *stream);
    154 
    155 /* Flushing Buffers */
    156 extern int fflush(FILE *stream);
    15765
    15866/* Formatted Output */
     
    16068    _HELENOS_PRINTF_ATTRIBUTE(2, 3);
    16169extern int vdprintf(int fildes, const char *__restrict__ format, va_list ap);
    162 extern int sprintf(char *__restrict__ s, const char *__restrict__ format, ...)
    163     _HELENOS_PRINTF_ATTRIBUTE(2, 3);
    164 extern int vsprintf(char *__restrict__ s, const char *__restrict__ format, va_list ap);
    165 
    166 /* Formatted Input */
    167 extern int fscanf(
    168     FILE *__restrict__ stream, const char *__restrict__ format, ...);
    169 extern int vfscanf(
    170     FILE *__restrict__ stream, const char *__restrict__ format, va_list arg);
    171 extern int scanf(const char *__restrict__ format, ...);
    172 extern int vscanf(const char *__restrict__ format, va_list arg);
    173 extern int sscanf(
    174     const char *__restrict__ s, const char *__restrict__ format, ...);
    175 extern int vsscanf(
    176     const char *__restrict__ s, const char *__restrict__ format, va_list arg);
    17770
    17871/* File Locking */
     
    18578extern int putchar_unlocked(int c);
    18679
    187 /* Deleting Files */
    188 extern int remove(const char *path);
    189 
    190 /* Renaming Files */
    191 extern int rename(const char *oldname, const char *newname);
    192 
    19380/* Temporary Files */
    194 #undef L_tmpnam
    195 #define L_tmpnam PATH_MAX
    196 extern char *tmpnam(char *s);
    19781extern char *tempnam(const char *dir, const char *pfx);
    198 extern FILE *tmpfile(void);
    199 
    20082
    20183#endif /* POSIX_STDIO_H_ */
Note: See TracChangeset for help on using the changeset viewer.