STDIO.DEF 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * STDIO.DEF - Modula-2 interface to STDIO.H *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# project("#set tsc='on'") *)
  11. (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
  12. (*# module(implementation=>off, init_code=>off) *)
  13. (*# name(prefix=>c) *)
  14. DEFINITION MODULE stdio;
  15. IMPORT CoreFile;
  16. TYPE
  17. File = CoreFile.File;
  18. FileInf = CoreFile.FileInf;
  19. CONST
  20. _IOFBF = 0;
  21. _IOLBF = 1;
  22. _IONBF = 2;
  23. EOF = -1;
  24. OPEN_MAX = 20;
  25. SYS_OPEN = 20;
  26. CONST
  27. _F_READ = {0}; (* Read only file *)
  28. _F_WRIT = {1}; (* Write only file *)
  29. _F_UBUF = {2}; (* User allocated buffer *)
  30. _F_APP = {3}; (* Append data *)
  31. _F_ERR = {4}; (* Error *)
  32. _F_EOF = {5}; (* EOF *)
  33. _F_BIN = {6}; (* Binary file *)
  34. _F_IN = {7}; (* Data is incoming *)
  35. _F_OUT = {8}; (* Data is outgoing *)
  36. _F_DEV = {9}; (* File is terminal *)
  37. _F_RST = {10}; (* Newly opened stream *)
  38. _F_LBUF = {11}; (* line buffered stream *)
  39. _F_CTZ = {12};
  40. _F_RDWR = {0..1}; (* Read/write *)
  41. BUFSIZ = 512;
  42. SEEK_SET = 0;
  43. SEEK_CUR = 1;
  44. SEEK_END = 2;
  45. PROCEDURE clearerr(_st: FileInf);
  46. PROCEDURE fclose(_st: FileInf): INTEGER;
  47. PROCEDURE fflush(_st: FileInf): INTEGER;
  48. PROCEDURE fgetc(_st: FileInf): INTEGER;
  49. PROCEDURE fgets(VAR s: ARRAY OF CHAR; _n: CARDINAL; _st: FileInf): ADDRESS;
  50. PROCEDURE fopen(_path,_mode: ARRAY OF CHAR): FileInf;
  51. PROCEDURE fputc(_c: INTEGER; _st: FileInf): INTEGER;
  52. PROCEDURE fputs(_s: ARRAY OF CHAR; st: FileInf): INTEGER;
  53. PROCEDURE fread(_ptr: ADDRESS; _size,_n: CARDINAL; _st: FileInf): CARDINAL;
  54. PROCEDURE freopen(_path,_mode: ARRAY OF CHAR; _oldfile: FileInf): FileInf;
  55. PROCEDURE fseek(_st: FileInf; _offset: LONGINT; _whence: INTEGER): INTEGER;
  56. PROCEDURE ftell(_st: FileInf): INTEGER;
  57. PROCEDURE fwrite(_ptr: ADDRESS; _size,_n: CARDINAL; _st: FileInf): CARDINAL;
  58. PROCEDURE gets(VAR _s: ARRAY OF CHAR): ADDRESS;
  59. PROCEDURE perror(_s: ARRAY OF CHAR);
  60. PROCEDURE puts(_s: ARRAY OF CHAR): INTEGER;
  61. PROCEDURE rename(_oldname,_newname: ARRAY OF CHAR): INTEGER;
  62. PROCEDURE rewind(_st: FileInf);
  63. PROCEDURE rmtmp(): INTEGER;
  64. PROCEDURE setbuf(st: FileInf; _buf: ADDRESS);
  65. PROCEDURE setvbuf(_st: FileInf; _buf: ADDRESS; _type: INTEGER; _size: CARDINAL): INTEGER;
  66. PROCEDURE strerror(_errnum: INTEGER): ADDRESS;
  67. PROCEDURE tmpfile(): FileInf;
  68. PROCEDURE tmpname(_s: ARRAY OF CHAR): ADDRESS;
  69. PROCEDURE tempnam(_dir,_prefix: ARRAY OF CHAR): ADDRESS;
  70. PROCEDURE ungetc(_c: INTEGER; _st: FileInf): INTEGER;
  71. (*# save *)
  72. (*# call(c_conv=>on, var_arg=>on, reg_param=>()) *)
  73. PROCEDURE fprintf(_st: FileInf; _format: ARRAY OF CHAR): INTEGER;
  74. PROCEDURE fscanf(_st: FileInf; _format: ARRAY OF CHAR): INTEGER;
  75. PROCEDURE printf(_format: ARRAY OF CHAR): INTEGER;
  76. PROCEDURE sprintf(_s,_format: ARRAY OF CHAR): INTEGER;
  77. PROCEDURE sscanf(_s,_format: ARRAY OF CHAR): INTEGER;
  78. PROCEDURE scanf(_format: ARRAY OF CHAR): INTEGER;
  79. PROCEDURE vfprintf(_st: FileInf; _format: ARRAY OF CHAR; _argptr: ADDRESS): INTEGER;
  80. PROCEDURE vfscanf(_st: FileInf; _format: ARRAY OF CHAR; _argptr: ADDRESS): INTEGER;
  81. PROCEDURE vprintf(_format: ARRAY OF CHAR; _argptr: ADDRESS): INTEGER;
  82. PROCEDURE vscanf(_format: ARRAY OF CHAR; _argptr: ADDRESS): INTEGER;
  83. (*# restore *)
  84. PROCEDURE fcloseall(): INTEGER;
  85. PROCEDURE fdopen(_handle: INTEGER; _type: ARRAY OF CHAR): FileInf;
  86. PROCEDURE fgetchar(): INTEGER;
  87. PROCEDURE fgetpos(_st: FileInf; VAR _fp: LONGINT): INTEGER;
  88. PROCEDURE fsetpos(_st: FileInf; VAR _fp: LONGINT): INTEGER;
  89. PROCEDURE flushall(): INTEGER;
  90. PROCEDURE fputchar(_c: INTEGER): INTEGER;
  91. PROCEDURE getw(_st: FileInf): INTEGER;
  92. PROCEDURE putw(_w: INTEGER; _st: FileInf): INTEGER;
  93. PROCEDURE _strerror(_s: ARRAY OF CHAR): ADDRESS;
  94. PROCEDURE unlink(_path: ARRAY OF CHAR): INTEGER;
  95. PROCEDURE _filbuf(_stt: FileInf): INTEGER;
  96. PROCEDURE _flsbuf(_c: INTEGER; _stt: FileInf): INTEGER;
  97. PROCEDURE putchar(_c: INTEGER): INTEGER;
  98. PROCEDURE getchar(): INTEGER;
  99. PROCEDURE putc(_c: INTEGER; _st: FileInf): INTEGER;
  100. PROCEDURE getc(_st: FileInf): INTEGER;
  101. PROCEDURE remove(_path: ARRAY OF CHAR): INTEGER;
  102. PROCEDURE fileno(_st: FileInf): CARDINAL;
  103. PROCEDURE feof(_st: FileInf): INTEGER;
  104. PROCEDURE ferror(_st: FileInf): INTEGER;
  105. CONST
  106. P_tmpdir = '\';
  107. L_tmpname = SIZE(P_tmpdir)+13;
  108. FOPEN_MAX = 15;
  109. FILENAME_MAX = 80;
  110. TMP_MAX = 10000;
  111. END stdio.
  112.