We currently face a problem porting pascal Oregon programs on GPC. These programs use files descriptors declared as global variables. These descriptors are declared in a module while they are used in another module. Trying to open one of these files in write mode (rewrite function), we get a strange error message: ?GPC runtime error: (gpc-rts) _p_initfdr() has not been called for file (#701) Does someone know how to manage file descriptors declared as global variables? (See included files for example). #ifndef VARIABLE #define VARIABLE module Variable interface; export Variable = ( GlobalFile,FileType ); type FileType = file of char; var GlobalFile : FileType; end. #endif #include "variable.ph" module Variable implementation; var GlobalFile : FileType; end. #include "variable.ph" program file_test; import variable; var Filename : string(20); procedure assign( var t : FileType; var name : string ); var b : Bindingtype; begin { assign } unbind( t ); b := binding( t ); b.name := name; bind( t, b ); b := binding( t ); end; { assign } begin Filename :='toto.txt'; assign(GlobalFile,Filename); rewrite(GlobalFile); end.
participants (3)
-
Frank Heckenbach -
nicolas bley -
Prof. A Olowofoyeku (The African Chief)