home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / oberon / jacob-v0.1 / jacob-v0 / jacob / lib / RawFiles.ob2 < prev    next >
Encoding:
Text File  |  1996-04-04  |  2.6 KB  |  76 lines

  1. MODULE RawFiles;
  2. IMPORT SysLib,SYSTEM;
  3.  
  4. CONST StdIn*    = SysLib.stdin;
  5.       StdOut*   = SysLib.stdout;
  6.       StdErr*   = SysLib.stderr;
  7. TYPE  File*     = SysLib.int;
  8.       tFilename = ARRAY 1024 OF CHAR; 
  9.  
  10. (************************************************************************************************************************)
  11. PROCEDURE OpenInput*(VAR f:File; name:ARRAY OF CHAR);
  12. VAR fn:tFilename;
  13. BEGIN (* OpenInput *)
  14.  IF name='-' THEN 
  15.     f:=SysLib.stdin; 
  16.  ELSE
  17.     COPY(name,fn); 
  18.     f:=SysLib.open(SYSTEM.ADR(fn),SysLib.O_RDONLY,0); 
  19.  END; (* IF *)
  20. END OpenInput;
  21.  
  22. (************************************************************************************************************************)
  23. PROCEDURE OpenOutput*(VAR f:File; name:ARRAY OF CHAR);
  24. VAR fn:tFilename;
  25. BEGIN (* OpenOutput *)
  26.  IF name='-' THEN 
  27.     f:=SysLib.stdout; 
  28.  ELSE
  29.     COPY(name,fn); 
  30.     f:=SysLib.creat(SYSTEM.ADR(fn)
  31.                    ,SysLib.S_IRUSR+SysLib.S_IWUSR
  32.                    +SysLib.S_IRGRP+SysLib.S_IWGRP
  33.                    +SysLib.S_IROTH+SysLib.S_IWOTH);
  34.  END; (* IF *)
  35. END OpenOutput;
  36.  
  37. (************************************************************************************************************************)
  38. PROCEDURE Close*(f:File);
  39. VAR dummy:SysLib.int;
  40. BEGIN (* Close *)    
  41.  IF f>SysLib.stderr THEN dummy:=SysLib.close(f); END; (* IF *)
  42. END Close;
  43.  
  44. (************************************************************************************************************************)
  45. PROCEDURE Read*(f:File; adr,n:LONGINT; VAR bytesread:LONGINT); 
  46. BEGIN (* Read *)                
  47.  bytesread:=SysLib.read(f,adr,n); 
  48. END Read;
  49.  
  50. (************************************************************************************************************************)
  51. PROCEDURE Write*(f:File; adr,n:LONGINT); 
  52. VAR dummy:LONGINT; 
  53. BEGIN (* Write *)
  54.  dummy:=SysLib.write(f,adr,n); 
  55. END Write;        
  56.  
  57. (************************************************************************************************************************)
  58. PROCEDURE Accessible*(VAR name:ARRAY OF CHAR; ForWriting:BOOLEAN):BOOLEAN; 
  59. VAR fn:tFilename; amode:LONGINT; 
  60. BEGIN (* Accessible *)         
  61.  IF ForWriting THEN amode:=SysLib.R_OK; ELSE amode:=SysLib.W_OK; END; (* IF *)
  62.  COPY(name,fn); 
  63.  RETURN (SysLib.access(SYSTEM.ADR(fn),amode)=0); 
  64. END Accessible;
  65.  
  66. (************************************************************************************************************************)
  67. PROCEDURE Erase*(VAR name:ARRAY OF CHAR; VAR ok:BOOLEAN);
  68. VAR fn:tFilename;
  69. BEGIN (* Erase *)
  70.  COPY(name,fn); 
  71.  ok:=(SysLib.unlink(SYSTEM.ADR(fn))=0); 
  72. END Erase;
  73.  
  74. (************************************************************************************************************************)
  75. END RawFiles.
  76.