home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / IncPOS.lzx / pLib / StdIO.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-18  |  4.0 KB  |  142 lines

  1. ; /** execute p:/pOS/pLib/StdIO.c
  2. cc:c/storm/StormC_1_1_5 -o ram:StdIO1.o -d _M1_ -c p:pLib/StdIO.c -g20 -O9 -pc -i cc:include -i ci: -wEPRTcV -d NOMYDEBUG=1 -L
  3.  
  4. quit
  5. ; **/
  6.  
  7. #ifndef __INC_POS_PLIB_STDIO_C
  8. #define __INC_POS_PLIB_STDIO_C
  9. /*******************************************************************
  10.  $CRT 16 Mar 1996 : hb
  11.  
  12.  $AUT Holger Burkarth
  13.  $DAT >>StdIO.c<<   24 Sep 1996    09:01:56 - (C) ProDAD
  14. *******************************************************************/
  15.  
  16. // mcpp:cppc -c p:pLib/StdIO.c
  17.  
  18.  
  19. #include <p:pDOS/Files.h>
  20. #include <p:proto/pDOS2.h>
  21.  
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25.  
  26. #include <stdio.h>
  27. #include <string.h>
  28.  
  29. #ifdef __cplusplus
  30. }
  31. #endif
  32.  
  33.  
  34.  
  35.  
  36.  
  37. /*----------------------------------
  38. -----------------------------------*/
  39. int fgetc(FILE* file) {return(pOS_FileGetC(file));}
  40. int getc(FILE* file)  {return(pOS_FileGetC(file));}
  41. int getchar(void)     {return(pOS_FileGetC(stdin));}
  42. int ungetc(int ch,FILE* file) {return(pOS_FileUnGetC(file,ch));}
  43.  
  44. char *fgets(char* buf,int size, FILE* file)
  45.   {return((char*)pOS_FileGets(file,(UBYTE*)buf,size));}
  46.  
  47. static UBYTE getsBuffer[STREAM_MAXSTRING];
  48. char *gets(char* buf)
  49.   {return((char*)pOS_FileGets(stdin,(UBYTE*)getsBuffer,STREAM_MAXSTRING-1));}
  50.  
  51. int fputc(int Char, FILE* file) {return(pOS_FilePutC(file,Char));}
  52. int putc(int Char, FILE* file)  {return(pOS_FilePutC(file,Char));}
  53. int putchar(int Char)           {return(pOS_FilePutC(stdout,Char));}
  54. int fputs(const char* buf, FILE* file) {return(pOS_FilePuts(file,(UBYTE*)buf));}
  55. int puts(const char* buf)              {return(pOS_FilePuts(stdout,(UBYTE*)buf));}
  56. void perror(const char* str)  {pOS_FilePuts(stderr,(UBYTE*)str);}
  57.  
  58. FILE *fopen(const char* name, const char* mode)
  59. {
  60.   FILE* File=NULL;
  61.   if(strchr(mode,'w'))
  62.        File=pOS_OpenFile(NULL,name,FILEHDMOD_Write);
  63.   else if(strchr(mode,'a'))
  64.        File=pOS_OpenFile(NULL,name,FILEHDMOD_Append);
  65.   else File=pOS_OpenFile(NULL,name,FILEHDMOD_Read);
  66.   return(File);
  67. }
  68.  
  69.  
  70. FILE *freopen(const char* name, const char* mode, FILE* file)
  71. {
  72.   if(file) fclose(file);
  73.   return(fopen(name,mode));
  74. }
  75.  
  76. int fclose(FILE* file) {pOS_CloseFile(file); return(0);}
  77. int feof(FILE* file)   {return(pOS_FileEOF(file)); }
  78.  
  79. int ferror(FILE* file) {return(0);}
  80. void clearerr(FILE* file) {}
  81.  
  82. int setvbuf(FILE* file, char* buf, int mode, unsigned size) {return(0);}
  83. void setbuf(FILE* file, char* buf) {}
  84. int fflush(FILE* file) {return(0);}
  85.  
  86. int printf(const char* fmt, ...)
  87.             {return(pOS_VFWritef(stdout,fmt,(ULONG*)(&fmt)+1));}
  88. int fprintf(FILE* file, const char* fmt, ...)
  89.             {return(pOS_VFWritef(file,fmt,(ULONG*)(&fmt)+1));}
  90. //int sprintf(char*, const char*, ...);
  91. int vprintf(const char* fmt, va_list lst)
  92.             {return(pOS_VFWritef(stdout,fmt,(ULONG*)lst));}
  93. int vfprintf(FILE* file, const char* fmt, va_list lst)
  94.             {return(pOS_VFWritef(file,fmt,(ULONG*)lst));}
  95. //int vsprintf(char*, const char*, va_list);
  96.  
  97. //int scanf(const char*, ...);
  98. //int fscanf(FILE*, const char*, ...);
  99. //int sscanf(char*, const char*, ...);
  100.  
  101. int remove(const char* name) {return(pOS_DeleteObjectName(NULL,name));}
  102. //int rename(const char*, const char*);
  103.  
  104. //char *tmpnam (char s[L_tmpnam]);
  105. //FILE *tmpfile (void);
  106.  
  107. unsigned fread(void* buf, unsigned size, unsigned count, FILE* file)
  108. { return(pOS_FileFRead(file,buf,size,count)); }
  109.  
  110. unsigned fwrite(const void* buf, unsigned size, unsigned count, FILE* file)
  111. { return(pOS_FileFWrite(file,(APTR)buf,size,count)); }
  112.  
  113. int fseek(FILE* file, long offset, int mode)
  114. {
  115.   if     (mode==SEEK_SET) mode=FILEHDSEK_Begin;
  116.   else if(mode==SEEK_CUR) mode=FILEHDSEK_Current;
  117.   else if(mode==SEEK_END) mode=FILEHDSEK_End;
  118.   return(pOS_SeekFile(file,offset,mode));
  119. }
  120.  
  121. long ftell(FILE* file) {return(pOS_SeekFile(file,0,FILEHDSEK_Current));}
  122.  
  123. void rewind(FILE* file) {pOS_SeekFile(file,0,FILEHDSEK_Begin);}
  124.  
  125. int fgetpos(FILE* file, int* pos)
  126. {
  127.   int Pos=pOS_SeekFile(file,0,FILEHDSEK_Current);
  128.   if(pos) *pos=Pos;
  129.   return(0);
  130. }
  131.  
  132. int fsetpos(FILE* file,const int* pos)
  133. {
  134.   int Pos=pOS_SeekFile(file,*pos,FILEHDSEK_Begin);
  135.   return(0);
  136. }
  137.  
  138. //void exit(int);
  139.  
  140.  
  141. #endif
  142.