stdio_.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef AFUN_STDIO__H
  2. #define AFUN_STDIO__H
  3. #include <stdio.h>
  4. AFUN_TOOL_EXPORT int fgets_stdin(char **dest, int len);
  5. AFUN_TOOL_EXPORT bool checkStdin(void);
  6. AFUN_TOOL_EXPORT bool fclear_stdin(void);
  7. #define CLEAR_FERROR(file) (ferror(file) && (clearerr(file), ferror(file))) /* 出现错误后尝试修复, 并再次检查 */
  8. #define CLEAR_STDIN(file) ((ferror(stdin) || feof(stdin)) && (clearerr(stdin), (ferror(stdin) || feof(stdin))))
  9. #ifdef aFunWIN32_NO_CYGWIN
  10. AFUN_TOOL_EXPORT int fgetc_stdin(void);
  11. AFUN_TOOL_EXPORT char *fgets_stdin_(char *buf, size_t len);
  12. AFUN_TOOL_EXPORT int fungetc_stdin(int ch);
  13. AFUN_TOOL_EXPORT int fputs_stdout(char *str);
  14. AFUN_TOOL_EXPORT int fputs_stderr(char *str);
  15. AFUN_TOOL_EXPORT size_t vprintf_stdout(size_t buf_len, char *format, va_list ap);
  16. AFUN_TOOL_EXPORT size_t vprintf_stderr(size_t buf_len, char *format, va_list ap);
  17. AFUN_TOOL_EXPORT size_t printf_stdout(size_t buf_len, char *format, ...);
  18. AFUN_TOOL_EXPORT size_t printf_stderr(size_t buf_len, char *format, ...);
  19. #else
  20. #define fgetc_stdin() fgetc(stdin)
  21. #define fgets_stdin_(buf, len, stream) fgets(buf, len, stream)
  22. #define fungetc_stdin(ch) ungetc((ch), stdin)
  23. #define fputs_stdout(str) fputs((str), stdout)
  24. #define fputs_stderr(str) fputs((str), stderr)
  25. #define vprintf_stdout(buf_len, format, ap) vfprintf(stdout, (format), (ap))
  26. #define vprintf_stderr(buf_len, format, ap) vfprintf(stderr, (format), (ap))
  27. #define printf_stdout(buf_len, ...) fprintf(stdout, __VA_ARGS__)
  28. #define printf_stderr(buf_len, ...) fprintf(stderr, __VA_ARGS__)
  29. #endif
  30. #endif //AFUN_STDIO__H